β¬’ DragonFlyBSD Kernel Audit
← triage Β· dashboard
DF-5290

pmap_extract()/pmap_kextract() return (va & PAGE_MASK)-only garbage as a physical address when the PT exists but the PTE is empty β€” vkernel twin of pc64 DF-5245; live caller kvm_access_check() (/dev/kmem) then accepts unmapped KVA and mem I/O lands on guest-physical page 0

Summary

Both extract fns test the PDE only: with a present PT page but zero PTE they return rtval = 0|offset - a non-zero bogus PA for unmapped VA. Live caller kvm_access_check uses kextract==0 as the unmapped test: root-in-guest /dev/kmem I/O to hole KVA passes and resolves to guest-phys page 0 instead of EFAULT. Other callers landmine-only (no live vkernel drivers do user-pmap bus_dma). Test-the-PTE fix, twin of DF-5245.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-5290 Β· 1 files
FileTypeDescriptionSize
verdict.json file 891 B view raw

Fix verification

not_testable
baseline no→ patch + rebuild →patched clean
per-fix-DF-5290

Confirmed kernel references

Detail

Evidence (decisive lines)

static trace in finding markdown

Verified recommended fix

see finding markdown

Verdict

untested (Low/Info; root-in-guest gated / latent)