integer divide fault in tcp_mss()

Mark Johnston markj at freebsd.org
Thu May 20 20:31:57 UTC 2021


Hi,

My syzkaller instance managed to trigger an integer divide fault in
tcp_mss().  I attached a reproducer with debugging info.

I'm not sure if it's a recent regression or not.  Interestingly, syzbot
doesn't appear to have discovered this one.

#14 <signal handler called> 
#15 0xffffffff80dee710 in tcp_mss (tp=tp at entry=0xfffffe00cb99e428, offer=offer at entry=-1) at /usr/home/markj/src/freebsd/sys/netinet/tcp_input.c:3903
#16 0xffffffff80e0cc70 in tcp_usr_send (so=<optimized out>, flags=<optimized out>, m=0x0, nam=0xfffff800038c9dc0, control=<optimized out>, 
    td=0xfffffe00cb995740) at /usr/home/markj/src/freebsd/sys/netinet/tcp_usrreq.c:1144
#17 0xffffffff80cbe3f7 in sosend_generic (so=0xfffff8006806db10, addr=0xfffff800038c9dc0, uio=<optimized out>, top=0xfffff80004a18900, 
    control=<optimized out>, flags=128, td=0xfffffe00cb995740) at /usr/home/markj/src/freebsd/sys/kern/uipc_socket.c:1759
#18 0xffffffff80cbe706 in sosend (so=0x0, so at entry=0xfffff8006806db10, addr=0x10000, uio=0x0, uio at entry=0xfffffe0084f248a8, top=0xffff, top at entry=0x0, 
    control=control at entry=0x0, flags=16, flags at entry=128, td=0xfffffe00cb995740) at /usr/home/markj/src/freebsd/sys/kern/uipc_socket.c:1809
#19 0xffffffff80cc54ec in kern_sendit (td=<optimized out>, td at entry=0xfffffe00cb995740, s=3, mp=<optimized out>, mp at entry=0xfffffe0084f24980, flags=128, 
    control=0x0, segflg=segflg at entry=UIO_USERSPACE) at /usr/home/markj/src/freebsd/sys/kern/uipc_syscalls.c:798
#20 0xffffffff80cc588b in sendit (td=0xfffffe00cb995740, s=65536, mp=mp at entry=0xfffffe0084f24980, flags=65535)
    at /usr/home/markj/src/freebsd/sys/kern/uipc_syscalls.c:723
#21 0xffffffff80cc569d in sys_sendto (td=0x0, uap=<optimized out>) at /usr/home/markj/src/freebsd/sys/kern/uipc_syscalls.c:841
#22 0xffffffff810cf77e in syscallenter (td=<optimized out>) at /usr/home/markj/src/freebsd/sys/amd64/amd64/../../kern/subr_syscall.c:189
#23 amd64_syscall (td=0xfffffe00cb995740, traced=0) at /usr/home/markj/src/freebsd/sys/amd64/amd64/trap.c:1156
-------------- next part --------------
Syzkaller hit 'Fatal trap 18: integer divide fault in tcp_mss' bug.

Fatal trap 18: integer divide fault while in kernel mode
cpuid = 1; apic id = 01
instruction pointer	= 0x20:0xffffffff81396340
stack pointer	        = 0x28:0xfffffe00517ae690
frame pointer	        = 0x28:0xfffffe00517ae700
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags	= interrupt enabled, resume, IOPL = 0
current process		= 724 (syz-executor0129033)
trap number		= 18
panic: integer divide fault
cpuid = 1
time = 1621455096
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x47/frame 0xfffffe00517ae360
vpanic() at vpanic+0x1c7/frame 0xfffffe00517ae3c0
panic() at panic+0x43/frame 0xfffffe00517ae420
trap_fatal() at trap_fatal+0x4cd/frame 0xfffffe00517ae4a0
trap() at trap+0xf7/frame 0xfffffe00517ae5c0
calltrap() at calltrap+0x8/frame 0xfffffe00517ae5c0
--- trap 0x12, rip = 0xffffffff81396340, rsp = 0xfffffe00517ae690, rbp = 0xfffffe00517ae700 ---
tcp_mss() at tcp_mss+0x230/frame 0xfffffe00517ae700
tcp_usr_send() at tcp_usr_send+0x931/frame 0xfffffe00517ae7d0
sosend_generic() at sosend_generic+0x9ae/frame 0xfffffe00517ae8d0
sosend() at sosend+0xc6/frame 0xfffffe00517ae940
kern_sendit() at kern_sendit+0x35b/frame 0xfffffe00517ae9f0
sendit() at sendit+0x229/frame 0xfffffe00517aea50
sys_sendto() at sys_sendto+0x5c/frame 0xfffffe00517aeab0
amd64_syscall() at amd64_syscall+0x247/frame 0xfffffe00517aebf0
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe00517aebf0
--- syscall (0, FreeBSD ELF64, nosys), rip = 0x400a4a, rsp = 0x7fffffffea98, rbp = 0x7fffffffeab0 ---
KDB: enter: panic
[ thread pid 724 tid 100102 ]
Stopped at      kdb_enter+0x67: movq    $0,0x14393fe(%rip)
db> 
db> set $lines = 0
db> set $maxwidth = 0
db> show registers
cs                        0x20
ds                        0x3b
es                        0x3b
fs                        0x13
gs                        0x1b
ss                        0x28
rax                       0x12
rcx                       0x80
rdx         0xffffffff81a049f3
rbx                          0
rsp         0xfffffe00517ae340
rbp         0xfffffe00517ae360
rsi                        0x1
rdi                          0
r8                           0
r9          0x8080808080808080
r10         0xfffffe00517ae230
r11              0x1ffaefff59c
r12         0xffffffff82067b80  ddb_dbbe
r13                          0
r14         0xffffffff81a603d1
r15         0xffffffff81a603d1
rip         0xffffffff8112ea07  kdb_enter+0x67
rflags                    0x86
kdb_enter+0x67: movq    $0,0x14393fe(%rip)
db> show proc
Process 724 (syz-executor0129033) at 0xfffff8001650f000:
 state: NORMAL
 uid: 0  gids: 0, 0, 5
 parent: pid 722 at 0xfffff8001698ba70
 ABI: FreeBSD ELF64
 flag: 0x10004000  flag2: 0
 arguments: /root/syz-executor012903385
 reaper: 0xfffff8000354c538 reapsubtree: 1
 sigparent: 20
 vmspace: 0xfffffe0051db43e0
   (map 0xfffffe0051db43e0)
   (map.pmap 0xfffffe0051db44a0)
   (pmap 0xfffffe0051db4500)
 threads: 1
100102                   Run     CPU 1                       syz-executor0129033
db> ps
  pid  ppid  pgrp   uid  state   wmesg   wchan               cmd
  724   722   722     0  R       CPU 1                       syz-executor0129033
  722   720   722     0  Ss      pause   0xfffff8001698bb20  csh
  720   642   720     0  Ss      select  0xfffff800164b7cc0  sshd
  694     1   694     0  Ss+     ttyin   0xfffff8000359f8b0  getty
  692     1    22     0  S+      piperd  0xfffff80003d082e8  logger
  691   690    22     0  S+      nanslp  0xffffffff8253b560  sleep
  690     1    22     0  S+      wait    0xfffff800163cc000  sh
  646     1   646     0  Ss      nanslp  0xffffffff8253b561  cron
  642     1   642     0  Ss      select  0xfffff800037592c0  sshd
  450     1   450     0  Ss      select  0xfffff80003e651c0  syslogd
  379     1   379     0  Ss      select  0xfffff80003e653c0  devd
  378     1   378    65  Ss      select  0xfffff80003e65340  dhclient
  308     1   308     0  Ss      select  0xfffff80003e65240  dhclient
  305     1   305     0  Ss      select  0xfffff8000376c6c0  dhclient
   90     1    90     0  Ss      pause   0xfffff80003e68b20  adjkerntz
   21     0     0     0  DL      syncer  0xffffffff8262a9d0  [syncer]
   20     0     0     0  DL      vlruwt  0xfffff80003b1c538  [vnlru]
   19     0     0     0  DL      (threaded)                  [bufdaemon]
100069                   D       qsleep  0xffffffff82629a80  [bufdaemon]
100072                   D       -       0xffffffff8200ae80  [bufspacedaemon-0]
100084                   D       sdflush 0xfffff80003e4ece8  [/ worker]
   18     0     0     0  DL      psleep  0xffffffff8264f7c8  [vmdaemon]
   17     0     0     0  DL      (threaded)                  [pagedaemon]
100067                   D       psleep  0xffffffff82643c38  [dom0]
100070                   D       launds  0xffffffff82643c44  [laundry: dom0]
100071                   D       umarcl  0xffffffff815ba850  [uma]
   16     0     0     0  DL      -       0xffffffff8236f908  [rand_harvestq]
   15     0     0     0  DL      -       0xffffffff826270dc  [soaiod4]
    9     0     0     0  DL      -       0xffffffff826270dc  [soaiod3]
    8     0     0     0  DL      -       0xffffffff826270dc  [soaiod2]
    7     0     0     0  DL      -       0xffffffff826270dc  [soaiod1]
    6     0     0     0  DL      (threaded)                  [cam]
100044                   D       -       0xffffffff82246dc0  [doneq0]
100045                   D       -       0xffffffff82246d40  [async]
100066                   D       -       0xffffffff82246c10  [scanner]
   14     0     0     0  DL      seqstat 0xfffff80003652888  [sequencer 00]
    5     0     0     0  DL      crypto_ 0xfffff80003647d80  [crypto returns 1]
    4     0     0     0  DL      crypto_ 0xfffff80003647d30  [crypto returns 0]
    3     0     0     0  DL      crypto_ 0xffffffff82641160  [crypto]
   13     0     0     0  DL      (threaded)                  [geom]
100035                   D       -       0xffffffff8251ada0  [g_event]
100036                   D       -       0xffffffff8251ada8  [g_up]
100037                   D       -       0xffffffff8251adb0  [g_down]
    2     0     0     0  DL      (threaded)                  [KTLS]
100028                   D       -       0xfffff80003524d00  [thr_0]
100029                   D       -       0xfffff80003524d80  [thr_1]
   12     0     0     0  WL      (threaded)                  [intr]
100013                   I                                   [swi6: task queue]
100016                   I                                   [swi6: Giant taskq]
100019                   I                                   [swi5: fast taskq]
100030                   I                                   [swi1: netisr 0]
100031                   I                                   [swi3: vm]
100032                   I                                   [swi4: clock (0)]
100033                   I                                   [swi4: clock (1)]
100046                   I                                   [irq40: virtio_pci0]
100047                   I                                   [irq41: virtio_pci0]
100048                   I                                   [irq42: virtio_pci0]
100051                   I                                   [irq43: virtio_pci1]
100052                   I                                   [irq44: virtio_pci1]
100053                   I                                   [irq1: atkbd0]
100054                   I                                   [irq12: psm0]
100055                   I                                   [swi0: uart uart++]
   11     0     0     0  RL      (threaded)                  [idle]
100003                   Run     CPU 0                       [idle: cpu0]
100004                   CanRun                              [idle: cpu1]
    1     0     1     0  SLs     wait    0xfffff8000354c538  [init]
   10     0     0     0  DL      audit_w 0xffffffff82641670  [audit]
    0     0     0     0  DLs     (threaded)                  [kernel]
100000                   D       swapin  0xffffffff8251b330  [swapper]
100005                   D       -       0xfffff80003143d00  [if_io_tqg_0]
100006                   D       -       0xfffff80003143c00  [if_io_tqg_1]
100007                   D       -       0xfffff80003143b00  [if_config_tqg_0]
100008                   D       -       0xfffff80003143a00  [softirq_0]
100009                   D       -       0xfffff80003143900  [softirq_1]
100010                   D       -       0xfffff8000352cd00  [kqueue_ctx taskq]
100011                   D       -       0xfffff8000352cc00  [pci_hp taskq]
100012                   D       -       0xfffff8000352cb00  [linuxkpi_irq_wq]
100014                   D       -       0xfffff8000352c800  [in6m_free taskq]
100015                   D       -       0xfffff8000352c700  [inm_free taskq]
100017                   D       -       0xfffff8000352c400  [thread taskq]
100018                   D       -       0xfffff8000352c300  [aiod_kick taskq]
100020                   D       -       0xfffff8000352c000  [linuxkpi_short_wq_0]
100021                   D       -       0xfffff8000352c000  [linuxkpi_short_wq_1]
100022                   D       -       0xfffff8000352c000  [linuxkpi_short_wq_2]
100023                   D       -       0xfffff8000352c000  [linuxkpi_short_wq_3]
100024                   D       -       0xfffff80003524e00  [linuxkpi_long_wq_0]
100025                   D       -       0xfffff80003524e00  [linuxkpi_long_wq_1]
100026                   D       -       0xfffff80003524e00  [linuxkpi_long_wq_2]
100027                   D       -       0xfffff80003524e00  [linuxkpi_long_wq_3]
100034                   D       -       0xfffff80003524700  [firmware taskq]
100038                   D       -       0xfffff80003524500  [crypto_0]
100039                   D       -       0xfffff80003524500  [crypto_1]
100049                   D       -       0xfffff800035b8600  [vtnet0 rxq 0]
100050                   D       -       0xfffff800035b8500  [vtnet0 txq 0]
100060                   D       -       0xffffffff81e0cb71  [deadlkres]
100062                   D       -       0xfffff8000387a400  [acpi_task_0]
100063                   D       -       0xfffff8000387a400  [acpi_task_1]
100064                   D       -       0xfffff8000387a400  [acpi_task_2]
100065                   D       -       0xfffff80003524400  [CAM taskq]
db> show all locks
Process 724 (syz-executor0129033) thread 0xfffffe00877da3a0 (100102)
exclusive sleep mutex so_rcv (so_rcv) r = 0 (0xfffff800164dd8a8) locked @ /usr/home/markj/src/freebsd/sys/netinet/tcp_input.c:3897
exclusive rw tcpinp (tcpinp) r = 0 (0xfffff800164489a8) locked @ /usr/home/markj/src/freebsd/sys/netinet/tcp_usrreq.c:989
exclusive sx so_snd_sx (so_snd_sx) r = 0 (0xfffff800164dd9e0) locked @ /usr/home/markj/src/freebsd/sys/kern/uipc_sockbuf.c:469
db> show malloc
              Type        InUse        MemUse     Requests
         sysctloid        29282         1727K        29321
              kobj          325         1300K          522
            linker          304         1157K          342
            newblk          525         1155K          566
            devbuf         1362         1150K         1386
          vfscache            3         1025K            3
          inodedep           45          529K           67
         ufs_quota            1          512K            1
          vfs_hash            1          512K            1
           callout            2          512K            2
              intr            4          472K            4
               pcb           16          393K           36
         vnet_data            1          168K            1
           subproc           89          168K          777
           tidhash            3          141K            3
              SWAP            1          132K            1
           pagedep           13          131K           19
        tfo_ccache            1          128K            1
               sem            4          106K            4
            DEVFS1           92           92K          106
               bus          970           78K         2574
            bus-sc           31           76K         1054
          mtx_pool            2           72K            2
          syncache            1           68K            1
          acpitask            1           64K            1
       ddb_capture            1           64K            1
            module          499           63K          499
         pfs_nodes          155           59K          155
            acpica          420           39K        61005
               LRO            2           33K            2
              temp           18           33K         1496
         hostcache            1           32K            1
               shm            1           32K            1
               msg            4           30K            4
            DEVFS3          114           29K          132
           kdtrace          141           29K          829
              umtx          220           28K          220
        gtaskqueue           18           26K           18
         ufs_mount            5           25K            6
            kbdmux            5           22K            5
        DEVFS_RULE           56           20K           56
           ithread          101           18K          101
               BPF           10           18K           10
              proc            3           17K            3
           devstat            8           17K            8
              vmem            3           14K            4
            KTRACE          100           13K          100
              GEOM           79           13K          662
              rman          102           12K          526
            ifaddr           30           12K           32
          routetbl           52           11K          178
              kenv           63           11K           63
      eventhandler          115           10K          115
         bmsafemap            2            9K           41
       pfs_vncache            6            9K            6
              UART           12            9K           12
               rpc            2            8K            2
             shmfd            1            8K            1
     audit_evclass          236            8K          294
       ufs_dirhash           36            8K           36
         taskqueue           51            6K           51
            sglist            3            6K            3
              cred           17            5K          277
             ifnet            3            5K            3
           io_apic            1            4K            1
            dirrem           16            4K           28
               tty            4            4K            4
             evdev            4            4K            4
          filedesc            1            4K            1
               UMA          240            4K          240
             mount           76            4K          153
             hhook           13            4K           13
           lltable           11            4K           11
       fpukern_ctx            3            3K            3
            diradd           24            3K           37
           acpisem           21            3K           21
            kqueue           37            3K          725
           pwddesc           37            3K          725
           uidinfo            3            3K            9
            plimit            9            3K          208
             linux           33            3K           33
       ether_multi           26            3K           36
        local_apic            1            2K            1
         ipsec-saq            2            2K            2
           CAM DEV            1            2K            2
         in6_multi           15            2K           15
             selfd           27            2K        10693
               msi           13            2K           13
            Unitno           27            2K           51
           session           13            2K           22
             lockf           15            2K           22
          pci_link           16            2K           16
           acpidev           22            2K           22
         toponodes           10            2K           10
         proc-args           32            2K          435
           softdep            1            1K            1
       ipsecpolicy            1            1K            1
            sahead            1            1K            1
          secasvar            1            1K            1
             clone            8            1K            8
       vnodemarker            2            1K           10
      NFSD session            1            1K            1
            select            7            1K           23
          indirdep            3            1K            3
             nhops            6            1K            6
            crypto            4            1K            4
            ip6ndp            4            1K            5
            isadev            5            1K            5
           CAM XPT           11            1K           12
         CAM queue            2            1K            5
         newdirblk            4            1K            8
             mkdir            4            1K           16
          in_multi            2            1K            4
              pfil            4            1K            4
              cdev            2            1K            2
 encap_export_host            8            1K            8
    chacha20random            1            1K            1
        CAM periph            2            1K           14
            prison           12            1K           12
               osd            3            1K           10
     NFSD V4client            1            1K            1
             DEVFS            9            1K           10
               MCA            2            1K            2
               mld            2            1K            2
              igmp            2            1K            2
            vnodes            1            1K            1
           CAM SIM            1            1K            1
              ktls            1            1K            1
      NFSD lckfile            1            1K            1
       inpcbpolicy            7            1K           79
            feeder            7            1K            7
        loginclass            3            1K            7
             linux            5            1K            6
        aesni_data            2            1K            2
            soname            5            1K         2702
            DEVFSP            2            1K            2
            apmdev            1            1K            1
          atkbddev            2            1K            2
         vm_pgdata            1            1K            1
          procdesc            1            1K            2
          pmchooks            1            1K            1
          filecaps            4            1K           55
          nexusdev            6            1K            6
               tun            3            1K            3
        debugfsint            2            1K            2
     CAM dev queue            1            1K            1
           tcpfunc            1            1K            1
              vnet            1            1K            1
          acpiintr            1            1K            1
               pmc            1            1K            1
              cpus            2            1K            2
          freework            1            1K           20
    vnet_data_free            1            1K            1
          CAM path            1            1K           12
           entropy            1            1K           34
           Per-cpu            1            1K            1
             cache            1            1K            1
       fdesc_mount            1            1K            1
          p1003.1b            1            1K            1
          futex wp            0            0K            0
             futex            0            0K            0
            lepoll            0            0K            0
          ktls_ocf            0            0K            0
       NFSD V4lock            0            0K            0
      NFSD V4state            0            0K            0
        madt_table            0            0K            2
          smartpqi            0            0K            0
     NFSD srvcache            0            0K            0
       msdosfs_fat            0            0K            0
     msdosfs_mount            0            0K            0
      msdosfs_node            0            0K            0
              iavf            0            0K            0
               ixl            0            0K            0
            DEVFS4            0            0K            0
            DEVFS2            0            0K            0
            gntdev            0            0K            0
       privcmd_dev            0            0K            0
        evtchn_dev            0            0K            0
        ice-resmgr            0            0K            0
         ice-osdep            0            0K            0
               ice            0            0K            0
             axgbe            0            0K            0
          xenstore            0            0K            0
         ciss_data            0            0K            0
         BACKLIGHT            0            0K            0
               xnb            0            0K            0
              xbbd            0            0K            0
               xbd            0            0K            0
           Balloon            0            0K            0
          sysmouse            0            0K            0
            vtfont            0            0K            0
           memdesc            0            0K            0
                vt            0            0K            0
          xen_intr            0            0K            0
             vtbuf            0            0K            0
           ath_hal            0            0K            0
           xen_hvm            0            0K            0
         legacydrv            0            0K            0
            qpidrv            0            0K            0
            athdev            0            0K            0
           ata_pci            0            0K            0
      dmar_idpgtbl            0            0K            0
          dmar_dom            0            0K            0
          dmar_ctx            0            0K            0
           ata_dma            0            0K            0
       ata_generic            0            0K            0
               amr            0            0K            0
              isci            0            0K            0
      iommu_dmamap            0            0K            0
            pvscsi            0            0K            0
     hyperv_socket            0            0K            0
           bxe_ilt            0            0K            0
            xenbus            0            0K            0
           scsi_da            0            0K            0
            ata_da            0            0K            0
     vm_fictitious            0            0K            0
           scsi_ch            0            0K            0
           scsi_cd            0            0K            0
       AHCI driver            0            0K            0
            USBdev            0            0K            0
               USB            0            0K            0
               agp            0            0K            0
           nvme_da            0            0K            0
 CAM I/O Scheduler            0            0K            0
           acpipwr            0            0K            0
           UMAHash            0            0K            0
         acpi_perf            0            0K            0
            twsbuf            0            0K            0
           jblocks            0            0K            0
          savedino            0            0K            9
          sentinel            0            0K            0
            jfsync            0            0K            0
            jtrunc            0            0K            0
             sbdep            0            0K            3
           jsegdep            0            0K            0
              jseg            0            0K            0
         jfreefrag            0            0K            0
          jfreeblk            0            0K            0
           jnewblk            0            0K            0
            jmvref            0            0K            0
           jremref            0            0K            0
           jaddref            0            0K            0
           freedep            0            0K            0
          freefile            0            0K           10
          freeblks            0            0K           19
          freefrag            0            0K            4
        allocindir            0            0K            0
       allocdirect            0            0K            0
          ufs_trim            0            0K            0
           mactemp            0            0K            0
     audit_trigger            0            0K            0
 audit_pipe_presel            0            0K            0
     audit_pipeent            0            0K            0
        audit_pipe            0            0K            0
      audit_evname            0            0K            0
         audit_bsm            0            0K            0
      audit_gidset            0            0K            0
        audit_text            0            0K            0
        audit_path            0            0K            0
        audit_data            0            0K            0
        audit_cred            0            0K            0
             xform            0            0K            0
      twe_commands            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
         MLX5E_TLS            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
            MLX5EN            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
          MLX5DUMP            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
          seq_file            0            0K            0
             radix            0            0K            0
               idr            0            0K            0
            lkpifw            0            0K            0
               NLM            0            0K            0
    ipsec-spdcache            0            0K            0
         ipsec-reg            0            0K            0
        ipsec-misc            0            0K            0
      ipsecrequest            0            0K            0
            ip6opt            0            0K            0
       ip6_msource            0            0K            0
      ip6_moptions            0            0K            0
       in6_mfilter            0            0K            0
             frag6            0            0K            0
            tcplog            0            0K            0
      newreno data            0            0K            0
        ip_msource            0            0K            0
       ip_moptions            0            0K            0
        in_mfilter            0            0K            0
              ipid            0            0K            0
         80211scan            0            0K            0
      80211ratectl            0            0K            0
        80211power            0            0K            0
       80211nodeie            0            0K            0
         80211node            0            0K            0
      80211mesh_gt            0            0K            0
      80211mesh_rt            0            0K            0
         80211perr            0            0K            0
         80211prep            0            0K            0
         80211preq            0            0K            0
          80211dfs            0            0K            0
       80211crypto            0            0K            0
          80211vap            0            0K            0
             iflib            0            0K            0
              vlan            0            0K            0
               gif            0            0K            0
           ifdescr            0            0K            0
              zlib            0            0K            0
           fadvise            0            0K            0
           VN POLL            0            0K            0
      twa_commands            0            0K            0
            statfs            0            0K          206
     namei_tracker            0            0K            1
       export_host            0            0K            0
        cl_savebuf            0            0K            7
       tcp_log_dev            0            0K            0
      midi buffers            0            0K            0
             mixer            0            0K            0
              ac97            0            0K            0
             hdacc            0            0K            0
              hdac            0            0K            0
              hdaa            0            0K            0
         acpicmbat            0            0K            0
       SIIS driver            0            0K            0
           CAM CCB            0            0K            0
               PUC            0            0K            0
          ppbusdev            0            0K            0
agtiapi_MemAlloc malloc            0            0K            0
    osti_cacheable            0            0K            0
          tempbuff            0            0K            0
            biobuf            0            0K            0
              aios            0            0K            0
               lio            0            0K            0
               acl            0            0K            0
          tempbuff            0            0K            0
          mbuf_tag            0            0K           27
ag_tgt_map_t malloc            0            0K            0
ag_slr_map_t malloc            0            0K            0
lDevFlags * malloc            0            0K            0
tiDeviceHandle_t * malloc            0            0K            0
ag_portal_data_t malloc            0            0K            0
ag_device_t malloc            0            0K            0
     STLock malloc            0            0K            0
          CCB List            0            0K            0
            sr_iov            0            0K            0
               OCS            0            0K            0
               OCS            0            0K            0
              nvme            0            0K            0
               nvd            0            0K            0
            netmap            0            0K            0
            mwldev            0            0K            0
        MVS driver            0            0K            0
     CAM ccb queue            0            0K            0
          mrsasbuf            0            0K            0
          mpt_user            0            0K            0
          mps_user            0            0K            0
              accf            0            0K            0
               pts            0            0K            0
               iov            0            0K        11915
          ioctlops            0            0K           76
           eventfd            0            0K            0
           Witness            0            0K            0
          terminal            0            0K            0
             stack            0            0K            0
            MPSSAS            0            0K            0
               mps            0            0K            0
          mpr_user            0            0K            0
            MPRSAS            0            0K            0
               mpr            0            0K            0
            mfibuf            0            0K            0
              sbuf            0            0K          478
        md_sectors            0            0K            0
          firmware            0            0K            0
        compressor            0            0K            0
           md_disk            0            0K            0
           malodev            0            0K            0
               LED            0            0K            0
         sysctltmp            0            0K          526
            sysctl            0            0K            1
              ekcd            0            0K            0
            dumper            0            0K            0
          sendfile            0            0K            0
              rctl            0            0K            0
          ix_sriov            0            0K            0
        aacraidcam            0            0K            0
       aacraid_buf            0            0K            0
                ix            0            0K            0
            ipsbuf            0            0K            0
            iirbuf            0            0K            0
          kcovinfo            0            0K            0
      prison_racct            0            0K            0
       Fail Points            0            0K            0
             sigio            0            0K            1
filedesc_to_leader            0            0K            0
               pwd            0            0K            0
       tty console            0            0K            0
            aaccam            0            0K            0
            aacbuf            0            0K            0
              zstd            0            0K            0
            XZ_DEC            0            0K            0
            nvlist            0            0K            0
          SCSI ENC            0            0K            0
           SCSI sa            0            0K            0
         scsi_pass            0            0K            0
        isofs_node            0            0K            0
       isofs_mount            0            0K            0
     tr_raid5_data            0            0K            0
    tr_raid1e_data            0            0K            0
     tr_raid1_data            0            0K            0
     tr_raid0_data            0            0K            0
    tr_concat_data            0            0K            0
       md_sii_data            0            0K            0
   md_promise_data            0            0K            0
    md_nvidia_data            0            0K            0
   md_jmicron_data            0            0K            0
     md_intel_data            0            0K            0
       md_ddf_data            0            0K            0
         raid_data            0            0K           96
     geom_flashmap            0            0K            0
         tmpfs dir            0            0K            0
        tmpfs name            0            0K            0
       tmpfs mount            0            0K            0
           NFS FHA            0            0K            0
         newnfsmnt            0            0K            0
  newnfsclient_req            0            0K            0
   NFSCL layrecall            0            0K            0
     NFSCL session            0            0K            0
     NFSCL sockreq            0            0K            0
     NFSCL devinfo            0            0K            0
     NFSCL flayout            0            0K            0
      NFSCL layout            0            0K            0
     NFSD rollback            0            0K            0
      NFSCL diroff            0            0K            0
       NEWdirectio            0            0K            0
        NEWNFSnode            0            0K            0
         NFSCL lck            0            0K            0
      NFSCL lckown            0            0K            0
      NFSCL client            0            0K            0
       NFSCL deleg            0            0K            0
        NFSCL open            0            0K            0
       NFSCL owner            0            0K            0
            NFS fh            0            0K            0
           NFS req            0            0K            0
     NFSD usrgroup            0            0K            0
       NFSD string            0            0K            0
db> show uma
              Zone   Size    Used    Free    Requests  Sleeps  Bucket  Total Mem    XFree
   mbuf_jumbo_page   4096    1088    1034       13374       0     254    8691712        0
              pbuf   2624       0     778           0       0       2    2041472        0
          BUF TRIE    144     184   13312         464       0      62    1943424        0
       malloc-4096   4096     325       1         522       0       2    1335296        0
        malloc-128    128    9626      46        9632       0     126    1238016        0
         FFS inode   1160     524      15         534       0       8     625240        0
              mbuf    256    1347    1053       20574       0     254     614400        0
        malloc-512    512    1029      11        1037       0      30     532480        0
      malloc-65536  65536       7       0           7       0       1     458752        0
            lkpimm    160       1    2324           1       0      62     372000        0
          lkpicurr    160       2    2323           2       0      62     372000        0
       UMA Slabs 0    112    3049       8        3049       0     126     342384        0
        RADIX NODE    144    1960     193       17922       0      62     310032        0
       malloc-2048   2048     129       1         129       0       8     266240        0
      malloc-65536  65536       2       2         109       0       1     262144        0
      malloc-65536  65536       4       0           4       0       1     262144        0
             VNODE    448     555      21         567       0      30     258048        0
         VM OBJECT    264     852      48       11694       0      30     237600        0
         malloc-64     64    3475     179        4180       0     254     233856        0
        256 Bucket   2048      96      18        2707       0       8     233472        0
       malloc-4096   4096      50       3         738       0       2     217088        0
            DEVCTL   1024       0     200          97       0       0     204800        0
         malloc-16     16   12173     327       12222       0     254     200000        0
            THREAD   1808     103       7         103       0       8     198880        0
         UMA Zones    768     212       2         212       0      16     164352        0
        malloc-256    256     606       9        1035       0      62     157440        0
         malloc-32     32    4319      91        4346       0     254     141120        0
       FFS2 dinode    256     524      16         534       0      62     138240        0
      malloc-65536  65536       2       0           2       0       1     131072        0
      malloc-32768  32768       4       0           4       0       1     131072        0
        malloc-128    128     880      50        1896       0     126     119040        0
          ksiginfo    112      34    1010          47       0     126     116928        0
       S VFS Cache    104    1003      89        1058       0     126     113568        0
       malloc-1024   1024      93      11         114       0      16     106496        0
      mbuf_cluster   2048      45       1          45       0     254      94208        0
         MAP ENTRY     96     668     298       35277       0     126      92736        0
         vmem btag     56    1596      48        1596       0     254      92064        0
            clpbuf   2624       0      32          33       0      16      83968        0
          UMA Kegs    384     197       6         197       0      30      77952        0
       malloc-8192   8192       8       1          98       0       1      73728        0
        128 Bucket   1024      35      32         510       0      16      68608        0
              PROC   1336      36      15         724       0       8      68136        0
      malloc-65536  65536       1       0           1       0       1      65536        0
      malloc-65536  65536       1       0           1       0       1      65536        0
      malloc-16384  16384       4       0          76       0       1      65536        0
      malloc-16384  16384       4       0           4       0       1      65536        0
        malloc-384    384     155       5         155       0      30      61440        0
           DIRHASH   1024      54       2          54       0      16      57344        0
           VMSPACE   2544      16       5         705       0       4      53424        0
             g_bio    408       0     130        5146       0      30      53040        0
         filedesc0   1072      37      12         725       0       8      52528        0
        malloc-128    128     359      44       30501       0     126      51584        0
        malloc-256    256     157      38         585       0      62      49920        0
         malloc-64     64     605      88         853       0     254      44352        0
        malloc-128    128     284      57         530       0     126      43648        0
         32 Bucket    256      43     122        4799       0      62      42240        0
       Mountpoints   2752       6       8           6       0       4      38528        0
        malloc-256    256     121      29         145       0      62      38400        0
             NAMEI   1024       0      36       10796       0      16      36864        0
         64 Bucket    512      53      19        1051       0      30      36864        0
      malloc-32768  32768       0       1          52       0       1      32768        0
      malloc-32768  32768       1       0           1       0       1      32768        0
      malloc-32768  32768       1       0           1       0       1      32768        0
       malloc-8192   8192       4       0           4       0       1      32768        0
       malloc-8192   8192       4       0           4       0       1      32768        0
       malloc-4096   4096       6       2         272       0       2      32768        0
           pcpu-64     64     453      59         453       0     254      32768        0
        malloc-384    384      53      27          87       0      30      30720        0
        malloc-384    384      66      14          66       0      30      30720        0
       malloc-4096   4096       5       2         212       0       2      28672        0
            pcpu-8      8    3154     430        3166       0     254      28672        0
        malloc-256    256      87      18         135       0      62      26880        0
        malloc-384    384      52       8          52       0      30      23040        0
            socket    944      15       9        1024       0     254      22656        0
       malloc-2048   2048       6       4          62       0       8      20480        0
       malloc-2048   2048       9       1           9       0       8      20480        0
        malloc-128    128     115      40         163       0     126      19840        0
              pipe    744       7      18         274       0      16      18600        0
         TURNSTILE    136     111      15         111       0      62      17136        0
      malloc-16384  16384       0       1           2       0       1      16384        0
      malloc-16384  16384       1       0           1       0       1      16384        0
       malloc-4096   4096       3       1          49       0       2      16384        0
       malloc-1024   1024       8       8         966       0      16      16384        0
       malloc-1024   1024      13       3          13       0      16      16384        0
       malloc-1024   1024      11       5          11       0      16      16384        0
         malloc-64     64     132     120        1556       0     254      16128        0
         malloc-64     64     185      67       13379       0     254      16128        0
         malloc-32     32     323     181         432       0     254      16128        0
             tcpcb   1064       4      10           8       0     254      14896        0
        SLEEPQUEUE     88     111      49         111       0     126      14080        0
       malloc-4096   4096       1       2           5       0       2      12288        0
       malloc-2048   2048       3       3          12       0       8      12288        0
       malloc-2048   2048       1       5         212       0       8      12288        0
       malloc-1024   1024       7       5          11       0      16      12288        0
       malloc-1024   1024       4       8          15       0      16      12288        0
        malloc-512    512      12      12          12       0      30      12288        0
         malloc-64     64      84     105       10774       0     254      12096        0
         udp_inpcb    488       2      22          70       0     254      11712        0
       mbuf_packet    256       0      45          97       0     254      11520        0
        malloc-256    256      18      27         528       0      62      11520        0
        malloc-256    256      10      35         319       0      62      11520        0
       malloc-8192   8192       1       0           1       0       1       8192        0
       malloc-8192   8192       1       0           1       0       1       8192        0
       malloc-1024   1024       0       8           4       0      16       8192        0
       malloc-1024   1024       6       2           6       0      16       8192        0
        malloc-512    512       3      13         230       0      30       8192        0
        malloc-512    512       6      10           7       0      30       8192        0
           rtentry    176      13      33          17       0      62       8096        0
              PGRP     88      13      79          22       0     126       8096        0
          rl_entry     40      28     174          28       0     254       8080        0
             udpcb     32       2     250          70       0     254       8064        0
               PWD     32      11     241         101       0     254       8064        0
         malloc-64     64     112      14         140       0     254       8064        0
         malloc-64     64      18     108         248       0     254       8064        0
         malloc-32     32       5     247           6       0     254       8064        0
         malloc-32     32      89     163         243       0     254       8064        0
         malloc-32     32      39     213         629       0     254       8064        0
         malloc-32     32      46     206        4978       0     254       8064        0
         malloc-32     32      32     220         167       0     254       8064        0
         16 Bucket    144      36      20         207       0      62       8064        0
          4 Bucket     48       6     162          51       0     254       8064        0
          2 Bucket     32      40     212         478       0     254       8064        0
      vtnet_tx_hdr     24       1     333        6372       0     254       8016        0
            ttyinq    160      15      35          45       0      62       8000        0
             Files     80      63      37        5800       0     126       8000        0
         malloc-16     16      54     446          93       0     254       8000        0
         malloc-16     16     276     224         532       0     254       8000        0
         malloc-16     16      20     480          21       0     254       8000        0
         malloc-16     16     180     320         957       0     254       8000        0
         malloc-16     16      32     468       26661       0     254       8000        0
         malloc-16     16      15     485          21       0     254       8000        0
          8 Bucket     80      32      68         307       0     126       8000        0
        malloc-128    128       5      57          12       0     126       7936        0
        malloc-128    128      32      30          46       0     126       7936        0
        malloc-128    128      10      52          70       0     126       7936        0
         tcp_inpcb    488       4      12           8       0     254       7808        0
              kenv    258       2      28         697       0      30       7740        0
     routing nhops    256      10      20          17       0      62       7680        0
             unpcb    256       7      23         929       0     254       7680        0
           ttyoutq    256       8      22          24       0      62       7680        0
        malloc-384    384       0      20          16       0      30       7680        0
        malloc-384    384       5      15         183       0      30       7680        0
        malloc-384    384       7      13           7       0      30       7680        0
        malloc-384    384       0      20           3       0      30       7680        0
        malloc-256    256      14      16          89       0      62       7680        0
        malloc-256    256      16      14          26       0      62       7680        0
     FPU_save_area    832       1       8           1       0      16       7488        0
            cpuset    104       7      55           7       0     126       6448        0
 epoch_record pcpu    256       4      12           4       0      62       4096        0
       malloc-2048   2048       1       1           1       0       8       4096        0
       malloc-2048   2048       1       1           2       0       8       4096        0
       malloc-2048   2048       1       1           1       0       8       4096        0
        malloc-512    512       0       8           1       0      30       4096        0
           pcpu-16     16      14     242          14       0     254       4096        0
         hostcache     64       1      62           1       0     254       4032        0
          syncache    168       0      24           5       0     254       4032        0
         malloc-64     64       6      57           7       0     254       4032        0
         malloc-32     32       2     124           4       0     254       4032        0
         malloc-16     16       0     250           4       0     254       4000        0
             ripcb    488       1       7           1       0     254       3904        0
       UMA Slabs 1    176       6      16           6       0      62       3872        0
        KMAP ENTRY     96      21      18          25       0       0       3744        0
              vmem   1856       1       1           1       0       8       3712        0
           SMR CPU     32       3      60           3       0     254       2016        0
        SMR SHARED     24       3      60           3       0     254       1512        0
             swblk    136       0       0           0       0      62          0        0
          swpctrie    144       0       0           0       0      62          0        0
           ada_ccb    272       0       0           0       0      30          0        0
            da_ccb    544       0       0           0       0      16          0        0
       FFS1 dinode    128       0       0           0       0     126          0        0
    IPsec SA lft_c     16       0       0           0       0     254          0        0
     udplite_inpcb    488       0       0           0       0     254          0        0
      tcp_log_node    120       0       0           0       0     126          0        0
    tcp_log_bucket    176       0       0           0       0      62          0        0
           tcp_log    416       0       0           0       0     254          0        0
          tcpreass     48       0       0           0       0     254          0        0
tfo_ccache_entries     80       0       0           0       0     126          0        0
               tfo      4       0       0           0       0     254          0        0
          sackhole     32       0       0           0       0     254          0        0
             tcptw     88       0       0           0       0     254          0        0
               ipq     56       0       0           0       0     254          0        0
             KNOTE    160       0       0           0       0      62          0        0
            itimer    352       0       0           0       0      30          0        0
            AIOLIO    272       0       0           0       0      30          0        0
             AIOCB    552       0       0           0       0      16          0        0
              AIOP     32       0       0           0       0     254          0        0
               AIO    208       0       0           0       0      62          0        0
           NCLNODE    584       0       0           0       0      16          0        0
        TMPFS node    224       0       0           0       0      62          0        0
     LTS VFS Cache    360       0       0           0       0      30          0        0
       L VFS Cache    320       0       0           0       0      30          0        0
     STS VFS Cache    144       0       0           0       0      62          0        0
           cryptop    280       0       0           0       0      30          0        0
  linux_dma_object     24       0       0           0       0     254          0        0
  linux_dma_pctrie    144       0       0           0       0      62          0        0
   IOMMU_MAP_ENTRY    120       0       0           0       0     126          0        0
      ktls_session    192       0       0           0       0      62          0        0
    mbuf_jumbo_16k  16384       0       0           0       0     254          0        0
     mbuf_jumbo_9k   9216       0       0           0       0     254          0        0
      audit_record   1280       0       0           0       0       8          0        0
         domainset     40       0       0           0       0     254          0        0
        MAC labels     40       0       0           0       0     254          0        0
            vnpbuf   2624       0       0           0       0      64          0        0
            mdpbuf   2624       0       0           0       0       3          0        0
           nfspbuf   2624       0       0           0       0      16          0        0
            swwbuf   2624       0       0           0       0       8          0        0
            swrbuf   2624       0       0           0       0      16          0        0
          umtx_shm     88       0       0           0       0     126          0        0
           umtx pi     96       0       0           0       0     126          0        0
rangeset pctrie nodes    144       0       0           0       0      62          0        0
      malloc-65536  65536       0       0           0       0       1          0        0
      malloc-65536  65536       0       0           0       0       1          0        0
      malloc-32768  32768       0       0           0       0       1          0        0
      malloc-32768  32768       0       0           0       0       1          0        0
      malloc-32768  32768       0       0           0       0       1          0        0
      malloc-32768  32768       0       0           0       0       1          0        0
      malloc-16384  16384       0       0           0       0       1          0        0
      malloc-16384  16384       0       0           0       0       1          0        0
      malloc-16384  16384       0       0           0       0       1          0        0
      malloc-16384  16384       0       0           0       0       1          0        0
       malloc-8192   8192       0       0           0       0       1          0        0
       malloc-8192   8192       0       0           0       0       1          0        0
       malloc-8192   8192       0       0           0       0       1          0        0
       malloc-4096   4096       0       0           0       0       2          0        0
       malloc-4096   4096       0       0           0       0       2          0        0
        malloc-512    512       0       0           0       0      30          0        0
        malloc-512    512       0       0           0       0      30          0        0
        malloc-512    512       0       0           0       0      30          0        0
           pcpu-32     32       0       0           0       0     254          0        0
            pcpu-4      4       0       0           0       0     254          0        0
            fakepg    104       0       0           0       0     126          0        0
          UMA Hash    256       0       0           0       0      62          0        0


Syzkaller reproducer:
# {Threaded:false Collide:false Repeat:false RepeatTimes:0 Procs:1 Slowdown:1 Sandbox: Fault:false FaultCall:-1 FaultNth:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false UseTmpDir:false HandleSegv:false Repro:false Trace:false}
r0 = socket$inet6_tcp(0x1c, 0x1, 0x0)
sendto$inet6(r0, 0x0, 0x0, 0x101, &(0x7f0000000200)={0x1c, 0x1c, 0x1, 0x0, @local={0xfe, 0x80, '\x00', 0x0}}, 0x1c)
sendto$inet6(r0, 0x0, 0x0, 0x80, &(0x7f0000000000)={0x1c, 0x1c, 0x1, 0x0, @loopback}, 0x1c)


C reproducer:
// autogenerated by syzkaller (https://github.com/google/syzkaller)

#define _GNU_SOURCE

#include <pwd.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/endian.h>
#include <sys/syscall.h>
#include <unistd.h>

uint64_t r[1] = {0xffffffffffffffff};

int main(void)
{
  syscall(SYS_mmap, 0x20000000ul, 0x1000000ul, 7ul, 0x1012ul, -1, 0ul);
  intptr_t res = 0;
  res = syscall(SYS_socket, 0x1cul, 1ul, 0);
  if (res != -1)
    r[0] = res;
  *(uint8_t*)0x20000200 = 0x1c;
  *(uint8_t*)0x20000201 = 0x1c;
  *(uint16_t*)0x20000202 = htobe16(0x4e21);
  *(uint32_t*)0x20000204 = 0;
  *(uint8_t*)0x20000208 = 0xfe;
  *(uint8_t*)0x20000209 = 0x80;
  memset((void*)0x2000020a, 0, 12);
  *(uint8_t*)0x20000216 = 0;
  *(uint8_t*)0x20000217 = 0xaa;
  *(uint32_t*)0x20000218 = 0;
  syscall(SYS_sendto, r[0], 0ul, 0ul, 0x101ul, 0x20000200ul, 0x1cul);
  *(uint8_t*)0x20000000 = 0x1c;
  *(uint8_t*)0x20000001 = 0x1c;
  *(uint16_t*)0x20000002 = htobe16(0x4e21);
  *(uint32_t*)0x20000004 = 0;
  *(uint64_t*)0x20000008 = htobe64(0);
  *(uint64_t*)0x20000010 = htobe64(1);
  *(uint32_t*)0x20000018 = 0;
  syscall(SYS_sendto, r[0], 0ul, 0ul, 0x80ul, 0x20000000ul, 0x1cul);
  return 0;
}




More information about the freebsd-transport mailing list