DragonFlyBSD Kernel Audit
DF-0874 / harness_B.out
← back to finding ↓ download raw
=== DF-0874 harness ===
f_dirblbuf         = 4096 bytes (kmalloc)
INDEX_ROOT rdsize = 122 bytes (valid data)
evil entry[0]     : reclen=0x0060 ie_flag=0 (NOT LAST)
terminal LAST     : ABSENT (crafted)
residue [122..4096)  : 0xdeadc0de (INVARIANTS poison)

[subr.c:1176 BOUNDED walk] find entry 0:
  walked to off=32 (rdsize=122): IN-BOUNDS (safe)
  returned @ off 32: ie_number=0x41414141 reclen=0x0060 ie_flag=0x00000000

[vnops.c:585 UNBOUNDED walk] from returned entry:
  [vnops] reclen==0 at off=57152 -> kernel infinite-loop hang (DoS)
  steps=3  max_off=57152 (bufsz=4096, rdsize=122)  oob_derefs=2
  => BUG CONFIRMED: ntfs_readdir dereferenced index entries 2 time(s) PAST the INDEX_ROOT valid data (rdsize=122) using attacker reclen=0x0060 as stride.