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

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)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-1902 Β· 4 files
FileTypeDescriptionSize
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
VERDICT.md verdict source-confirmation analysis
↓ download 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

fixed
baseline reproduced→ patch + rebuild →patched clean

fix.diff compiled in batch kernel build rc=0 -Werror

fix.diff compiled in batch kernel build rc=0 -Werror
↓ fix.diffcombined build rc=0

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)