Host-root triggerable kernel panic via IFM_ETH_MASTER on non-1000baseT media
Summary
mii_phy_set_media reads MASTER from mii->mii_media.ifm_media (user word) L372 but switches on IFM_SUBTYPE(ife->ifm_media) (entry word) L373. mii_phy_add_media L313/321 adds IFM_ETH_MASTER to ifm_mask for any 1000T-capable PHY. ifmedia_match if_media.c:393-413 matches on (ifm_media&~ifm_mask) so MASTER in mask lets user-supplied media word with MASTER match ANY registered entry (100_TX/10_T/100_T4). ifmedia_ioctl if_media.c:280-281 sets ifm_cur=match (entry word MASTER-less) but ifm_media=newmedia (user word WITH MASTER). mii_phy_set_media: MASTER from user word passes check L372; switch on entry word subtype falls through case IFM_1000_T to default panic(mii_phy_setmedia: MASTER on wrong media) L378-379. Trigger: ifconfig <iface> media 100baseTX mediaopt master OR SIOCSIFMEDIA IFM_ETHER|IFM_100_TX|IFM_ETH_MASTER. Host root only (SYSCAP_RESTRICTEDEDROOT if.c:2341). Any gigabit copper NIC. DoS panic. Fix: default:break silently ignore MASTER on non-1000T.
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-1902 Β· 4 files| File | Type | Description | Size | |
|---|---|---|---|---|
| fix.diff | suggested-fix | git-apply-able fix for the cited bug | 300 B | view raw |
| VERDICT.md | verdict | source-confirmation analysis | 717 B | β raw |
| build.sh | build-script | N/A (source-only) | 61 B | view raw |
| run.sh | run-script | N/A (source-only) | 87 B | view raw |
DF-1902 VERDICT
Verdict: REPRODUCED (source-confirmed)
Impact: Low (driver-level NULL deref / OOB / leak / DoS β hardware-gated)
Mechanism: mii_phy_set_media reads MASTER from mii->mii_media.ifm_media (user word) L372 but switches on IFM_SUBTYPE(ife->ifm_media) (entry word) L373. mii_phy_add_media L313/321 adds IFM_ETH_MASTER to ifm_mask
Citation: sys/dev/netif/mii_layer/mii_physubr.c:372-379
Fix: Applied fix.diff β compiles in batch kernel build (rc=0, -Werror).
Verification method: Source-only line-by-line trace of cited path:line. Low-severity driver bug; PoC trigger requires specific hardware or root context. Confirmed the cited vulnerable pattern exists in source.
Fix verification
fixedfix.diff compiled in batch kernel build rc=0 -Werror
fix.diff compiled in batch kernel build rc=0 -Werror
Confirmed kernel references
β
Detail
Exploit chain
none (Low severity)
Evidence (decisive lines)
Source-confirmed: IFM_ETH_MASTER on non-1000T triggers panic() (mii_physubr.c:372-379)
Verified recommended fix
Source-confirmed: IFM_ETH_MASTER on non-1000T triggers panic() (mii_physubr.c:372-379)
Verdict
Source-confirmed: IFM_ETH_MASTER on non-1000T triggers panic() (mii_physubr.c:372-379)
No comments yet.