DF-5296
uhci_pci_attach never validates the device-reported I/O BAR size against the fixed 0x14-byte UHCI register file β every UREAD/UWRITE can touch port-I/O outside the allocated resource window (DF-5268/DF-5282 register-geometry class, UHCI variant)
Summary
sc_io_size = rman_get_size() (device-controlled BAR size) stored with no minimum check while the fixed register file spans 0x00..0x13 - on an undersized BAR every PORTSC1/2 access lands on port-I/O outside the rman window: strictly weaker than the xhci/ehci variants (fixed offsets, max 12-byte excursion, x86 port I/O never faults) - silent cross-device port-register corruption ceiling, hardware-attacker-only. No UHCI controller on the current guest; source-proof only. Reject-undersized-BAR + didinit-gated-detach fix.
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-5296 Β· 1 files| File | Type | Description | Size | |
|---|---|---|---|---|
| verdict.json | file | 1.0 KB | view raw |
Fix verification
not_testablebaseline noβ patch + rebuild βpatched clean
per-fix-DF-5296
Confirmed kernel references
Detail
Evidence (decisive lines)
static trace: sc_io_size never consulted by UREAD/UWRITE (grep-verified)
Verified recommended fix
reject sc_io_size < 0x14 at attach; gate detach reset on sc_didinit
Verdict
untested (Low hardening; needs attacker-controlled PCI hardware; no UHCI controller on current guest)
No comments yet.