⬢ DragonFlyBSD Kernel Audit
DF-5816 / run.log
← back to finding ↓ download raw
pcblist_ptrleak.c: In function 'main':
pcblist_ptrleak.c:328:46: warning: '%s' directive output may be truncated writing up to 127 bytes into a region of size 104 [-Wformat-truncation=]
  snprintf(ua.sun_path, sizeof(ua.sun_path), "%s", path);
                                              ^~   ~~~~
pcblist_ptrleak.c:328:2: note: 'snprintf' output between 1 and 128 bytes into a destination of size 104
  snprintf(ua.sun_path, sizeof(ua.sun_path), "%s", path);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BUILD_OK
uid=1001(maxx) gid=1001(maxx) groups=1001(maxx)
DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul  2 06:02:54 UTC 2026     root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC  x86_64
===== RUN 0 =====
uid=1001 euid=1001  mirror xunpcb size=912 unpcb=208 xsocket=168
stream pcblist: 4 records (3648 bytes)
global: 24 non-NULL exported pointers, 0 outside kernel range, so_pcb==xu_unpp held for all 4 records

socketpair(): 2 new stream records
  new unpcb @ 0xfffff8011788b2b0 (unp_socket 0xfffff8011722fdc0)
  new unpcb @ 0xfffff8011788b110 (unp_socket 0xfffff80117231940)
our socketpair kernel object graph (unprivileged):
 record A: xu_unpp      = 0xfffff8011788b2b0
           unp_socket   = 0xfffff8011722fdc0
           unp_conn     = 0xfffff8011788b110  == B.xu_unpp
           xso_so       = 0xfffff8011722fdc0  so_pcb = 0xfffff8011788b2b0
 record B: xu_unpp      = 0xfffff8011788b110
           unp_socket   = 0xfffff80117231940
           unp_conn     = 0xfffff8011788b2b0  == A.xu_unpp

bound dgram: 1 new dgram record(s)
 dgram record:
  xu_unpp                0xfffff8011788af70 KERNEL-RANGE
  unp_socket             0xfffff8011722f840 KERNEL-RANGE
  unp_addr (sockaddr*)   0xfffff8008d580c68 KERNEL-RANGE
  unp_vnode (vnode*)     0xfffff8008f529300 KERNEL-RANGE
  unp_rvnode (vnode*)    0xfffff8008f520f00 KERNEL-RANGE
  xu_addr.sun_path     "/tmp/pcbptrleak.1038��"  (record is ours)
  path prefix matches -- record identified as ours

==================================================
LEAK CONFIRMED: unprivileged uid=1001 obtained live kernel
pointers (unpcb, socket, sockaddr, vnode) plus the socket
connection graph from net.local.*.pcblist
===== RUN 1 =====
uid=1001 euid=1001  mirror xunpcb size=912 unpcb=208 xsocket=168
stream pcblist: 4 records (3648 bytes)
global: 24 non-NULL exported pointers, 0 outside kernel range, so_pcb==xu_unpp held for all 4 records

socketpair(): 2 new stream records
  new unpcb @ 0xfffff8011788af70 (unp_socket 0xfffff8011722f840)
  new unpcb @ 0xfffff8011788b110 (unp_socket 0xfffff80117231940)
our socketpair kernel object graph (unprivileged):
 record A: xu_unpp      = 0xfffff8011788af70
           unp_socket   = 0xfffff8011722f840
           unp_conn     = 0xfffff8011788b110  == B.xu_unpp
           xso_so       = 0xfffff8011722f840  so_pcb = 0xfffff8011788af70
 record B: xu_unpp      = 0xfffff8011788b110
           unp_socket   = 0xfffff80117231940
           unp_conn     = 0xfffff8011788af70  == A.xu_unpp

bound dgram: 1 new dgram record(s)
 dgram record:
  xu_unpp                0xfffff8011788b2b0 KERNEL-RANGE
  unp_socket             0xfffff8011722fdc0 KERNEL-RANGE
  unp_addr (sockaddr*)   0xfffff8008d580cf8 KERNEL-RANGE
  unp_vnode (vnode*)     0xfffff8008f529300 KERNEL-RANGE
  unp_rvnode (vnode*)    0xfffff8008f520f00 KERNEL-RANGE
  xu_addr.sun_path     "/tmp/pcbptrleak.1039��"  (record is ours)
  path prefix matches -- record identified as ours

==================================================
LEAK CONFIRMED: unprivileged uid=1001 obtained live kernel
pointers (unpcb, socket, sockaddr, vnode) plus the socket
connection graph from net.local.*.pcblist
===== RUN 2 =====
uid=1001 euid=1001  mirror xunpcb size=912 unpcb=208 xsocket=168
stream pcblist: 4 records (3648 bytes)
global: 24 non-NULL exported pointers, 0 outside kernel range, so_pcb==xu_unpp held for all 4 records

socketpair(): 2 new stream records
  new unpcb @ 0xfffff8011788b2b0 (unp_socket 0xfffff8011722fdc0)
  new unpcb @ 0xfffff8011788b110 (unp_socket 0xfffff80117231940)
our socketpair kernel object graph (unprivileged):
 record A: xu_unpp      = 0xfffff8011788b2b0
           unp_socket   = 0xfffff8011722fdc0
           unp_conn     = 0xfffff8011788b110  == B.xu_unpp
           xso_so       = 0xfffff8011722fdc0  so_pcb = 0xfffff8011788b2b0
 record B: xu_unpp      = 0xfffff8011788b110
           unp_socket   = 0xfffff80117231940
           unp_conn     = 0xfffff8011788b2b0  == A.xu_unpp

bound dgram: 1 new dgram record(s)
 dgram record:
  xu_unpp                0xfffff8011788af70 KERNEL-RANGE
  unp_socket             0xfffff8011722f840 KERNEL-RANGE
  unp_addr (sockaddr*)   0xfffff8008d580c68 KERNEL-RANGE
  unp_vnode (vnode*)     0xfffff8008f529300 KERNEL-RANGE
  unp_rvnode (vnode*)    0xfffff8008f520f00 KERNEL-RANGE
  xu_addr.sun_path     "/tmp/pcbptrleak.1040��"  (record is ours)
  path prefix matches -- record identified as ours

==================================================
LEAK CONFIRMED: unprivileged uid=1001 obtained live kernel
pointers (unpcb, socket, sockaddr, vnode) plus the socket
connection graph from net.local.*.pcblist