โฌข DragonFlyBSD Kernel Audit
DF-2548 / leak_sample.txt
โ† back to finding โ†“ download raw
=== DF-2548 kern.ttys pointer leak โ€” raw leaked pointers (unpatched #0 baseline) ===
=== Read as uid 1001 (maxx, NOT in wheel). 3 consecutive runs, byte-identical (deterministic). ===

--- Run 1 (decisive baseline run, full output in run.log) ---
  blob off    24  TEXT/FN : 0xffffffff80c64d8d
  blob off    48  HEAP/DM : 0xfffff801168fb400
  blob off    80  HEAP/DM : 0xfffff801168db800
  blob off   112  HEAP/DM : 0xfffff8008d4a3800
  blob off   160  HEAP/DM : 0xfffff8011690f808
  blob off   168  HEAP/DM : 0xfffff8011692de10
  blob off   256  TEXT/FN : 0xffffffff80b8c0f0
  blob off   264  TEXT/FN : 0xffffffff806b87a0
  blob off   272  TEXT/FN : 0xffffffff80b87220
  blob off   352  HEAP/DM : 0xfffff8011865b600
  blob off   360  TEXT/FN : 0xffffffff810e5200
  blob off   400  TEXT/FN : 0xffffffff80c64d8d
  blob off   424  HEAP/DM : 0xfffff8008bbb6c00
  blob off   456  HEAP/DM : 0xfffff8008dcf1800
  blob off   488  HEAP/DM : 0xfffff8008d200200
  blob off   536  HEAP/DM : 0xfffff8004f1c6208
  blob off   544  HEAP/DM : 0xfffff8008bb1fee8
  blob off   632  TEXT/FN : 0xffffffff80b8c0f0
  blob off   640  TEXT/FN : 0xffffffff806b87a0
  blob off   648  TEXT/FN : 0xffffffff80b87220
  blob off   728  HEAP/DM : 0xfffff8011865b600
  blob off   736  HEAP/DM : 0xfffff8004f2e5f00
  blob off   776  TEXT/FN : 0xffffffff80c64d8d
  blob off   800  HEAP/DM : 0xfffff801182bd800
  blob off   832  HEAP/DM : 0xfffff80118295800
  blob off   864  HEAP/DM : 0xfffff8008d5d6a00
  blob off   912  HEAP/DM : 0xfffff80118058bb0
  blob off   920  HEAP/DM : 0xfffff80116d4e630
  blob off  1008  TEXT/FN : 0xffffffff80b8c0f0
  blob off  1016  TEXT/FN : 0xffffffff806b87a0
  blob off  1024  TEXT/FN : 0xffffffff80b87220
  blob off  1104  HEAP/DM : 0xfffff8011865b600
  blob off  1112  HEAP/DM : 0xfffff8004f2e5d80
  blob off  1152  TEXT/FN : 0xffffffff80c64d8d
  blob off  1176  HEAP/DM : 0xfffff801182a0400
  blob off  1208  HEAP/DM : 0xfffff80118296000
  blob off  1240  HEAP/DM : 0xfffff8008d5d7c00
  blob off  1288  HEAP/DM : 0xfffff80118058c28
  blob off  1296  HEAP/DM : 0xfffff80116d4e698
  blob off  1384  TEXT/FN : 0xffffffff80b8c0f0
  blob off  1392  TEXT/FN : 0xffffffff806b87a0
  blob off  1400  TEXT/FN : 0xffffffff80b87220
  blob off  1480  HEAP/DM : 0xfffff8011865b600
  blob off  1488  HEAP/DM : 0xfffff8004f2e5c00
  blob off  1528  TEXT/FN : 0xffffffff80c64d8d
  blob off  1552  HEAP/DM : 0xfffff80118312400
  blob off  1584  HEAP/DM : 0xfffff801182f6800
  blob off  1616  HEAP/DM : 0xfffff8008d6f7c00
TOTAL kernel-range pointers leaked      : 102
  of which kernel .text/.rodata (FN)    : 38
  of which heap/direct-map              : 64
VERDICT: LEAK CONFIRMED โ€” unprivileged user obtained 102 raw kernel pointers from kern.ttys (KASLR-defeating).

--- Run 2 (run.2.log) โ€” variance check ---
TOTAL kernel-range pointers leaked      : 102
  of which kernel .text/.rodata (FN)    : 38
  of which heap/direct-map              : 64

--- Run 3 (run.3.log) โ€” variance check ---
TOTAL kernel-range pointers leaked      : 102
  of which kernel .text/.rodata (FN)    : 38
  of which heap/direct-map              : 64

=== Cross-reference: leaked .text addresses vs /boot/kernel/kernel symbols ===
  0xffffffff806b87a0  (appears at intra-record off 264/640/1016/1392 = t_stop)
    -> near ttyread (0xffffffff806b87b0), ptsstart (0xffffffff806bac90),
       ptsstop (0xffffffff806bac00), ptsunhold (0xffffffff806b9ce0)
  These are kernel .text addresses -> directly defeats KASLR base.

=== Pattern: driver function pointers repeat identically across records ===
  (t_oproc/t_stop/t_param/t_unhold are static driver symbols; same addr every record)
  offsets 256/264/272/360 == 632/640/648/728 == 1008/1016/1024/1104 == 1384/1392/1400/1480
  (intra-record mod 376: 256/264/272/360 โ€” the t_oproc/t_stop/t_param/t_unhold fields)

=== Patched kernel (#1) ===
TOTAL kernel-range pointers leaked      : 0
  of which kernel .text/.rodata (FN)    : 0
  of which heap/direct-map              : 0
VERDICT: NO LEAK โ€” pointer fields are sanitized (fixed kernel).