DF-3748 / manifest.json
{ "finding_id": "DF-3748", "title": "rt2860: STA-mode AID->WCID truncation writes ieee80211_node pointer past wcid2ni[] into txq[0] (remote OOB write via rogue AP)", "verdict": "not_reproduced (guest lacks Ralink hardware; source-certain)", "impact_class": "kernel heap OOB write, unauthenticated remote trigger (adjacent/802.11)", "reproduce": { "precondition": "host with RT2860/RT3xxx NIC + if_ral.ko; attacker-run 802.11 AP", "steps": [ "victim: ifconfig wlan0 create wlandev ral0 mode 11ng; ifconfig wlan0 up scan", "attacker AP: respond to association with AID field = 254 (0x00FE or 0xC0FE)", "victim associates -> rt2860_newassoc writes wcid2ni[254]=ni == &txq[0].txd", "first data frame on AC-BE -> rt2860_tx writes 16-byte TXDs across the node -> panic" ], "expected": "kernel panic in rt2860_tx / net80211 immediately after association + first TX; txq[0].txd != DMA block" }, "kernel_refs": [ "sys/dev/netif/ral/rt2860.c:885", "sys/dev/netif/ral/rt2860.c:887", "sys/dev/netif/ral/rt2860.c:1587", "sys/dev/netif/ral/rt2860.c:1136", "sys/dev/netif/ral/rt2860var.h:148", "sys/netproto/802_11/wlan/ieee80211_sta.c:1688" ], "artifacts": [ "README.md", "VERDICT.md", "fix.diff", "verdict.json", "env.txt", "manifest.json" ] } |