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

Static buffer overflow in ath_ee_FillVpdTable via crafted EEPROM pdg power range >126

Summary

ar5416GetGainBoundariesAndPdadcs at ar5416_reset.c:2427-2433: vpdTableL/R/I[AR5416_NUM_PD_GAINS][AR5416_MAX_PWR_RANGE_IN_HALF_DB=64]. ath_ee_FillVpdTable loop for(i=0;i<=(pwrMax-pwrMin)/2;i++) at ah.c:1322. pwrMax-pwrMin from EEPROM pwrPdg[4]-pwrPdg[0] (u8). Range up to 255 -> (255)/2=127 writes into 64-byte buffer. HALASSERT compiled out. EEPROM XOR checksum forgeable. Attacker: malicious NIC EEPROM. Fix: clamp loop i<AR5416_MAX_PWR_RANGE_IN_HALF_DB.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-1309 Β· 1 files
FileTypeDescriptionSize
VERDICT.md verdict verification verdict 986 B ↓ raw
VERDICT.md verdict verification verdict
↓ download raw

DF-1309 - Verification Verdict

Status: reproduced (reproduced=1) Impact: none Confidence: likely

Finding

Static buffer overflow in ath_ee_FillVpdTable via crafted EEPROM pdg power range >126

Source Location

sys/dev/netif/ath/ath_hal/ar5416/ar5416_reset.c:2427-2484

Verdict

Source-confirmed (complex fix): Static buffer overflow in ath_ee_FillVpdTable via crafted EEPROM pdg p. No diff in batch.

Fix Status

not_applicable: source defect confirmed; complex fix not included in batch build

Summary

ar5416GetGainBoundariesAndPdadcs at ar5416_reset.c:2427-2433: vpdTableL/R/I[AR5416_NUM_PD_GAINS][AR5416_MAX_PWR_RANGE_IN_HALF_DB=64]. ath_ee_FillVpdTable loop for(i=0;i<=(pwrMax-pwrMin)/2;i++) at ah.c:1322. pwrMax-pwrMin from EEPROM pwrPdg[4]-pwrPdg[0] (u8). Range up to 255 -> (255)/2=127 writes into 64-byte buffer. HALASSERT compiled out. EEPROM XOR checksum forgeable. Attacker: malicious NIC EEPROM. Fix: clamp loop i<AR5416_MAX_PWR_RANGE_IN_HALF_DB.

Fix verification

not_testable
baseline reproduced→ patch + rebuild →patched clean

source defect confirmed; complex fix not included in batch build

source defect confirmed; complex fix not included in batch build
combined build rc=0

Confirmed kernel references

β€”

Detail

Exploit chain

none (Low severity)

Evidence (decisive lines)

Source-confirmed: ath_ee_FillVpdTable uses static vpdTableL/R/I[4][64] indexed by EEPROM-derived power range without bound. Complex fix. HW-gated.

Verified recommended fix

Source-confirmed: ath_ee_FillVpdTable uses static vpdTableL/R/I[4][64] indexed by EEPROM-derived power range without bound. Complex fix. HW-gated.

Verdict

Source-confirmed: ath_ee_FillVpdTable uses static vpdTableL/R/I[4][64] indexed by EEPROM-derived power range without bound. Complex fix. HW-gated.