DF-4893 / manifest.json
{ "finding_id": "DF-4893", "file": "sys/dev/netif/ath/ath_hal/ah_osdep.c", "verdict": "untested", "impact": "none", "latent": true, "title": "AH_DEBUG_ALQ block: unlocked global `ath_hal_alq` TOCTOU (UAF of struct alq) — dead code on DF", "reproduce": { "build": "sh build.sh (cc -Wall -Wextra -o trigger trigger.c)", "run": "sh run.sh (on stock DF: exits 3 TARGET ABSENT — this is the expected result; the race target is not compiled into any stock kernel)", "expected": "hw.ath.hal.alq / hw.ath.hal.alq_logfile ABSENT; sys/alq.h ABSENT; trigger_rc=3. To actually exercise the race one would need a hand-built kernel with AH_DEBUG_ALQ+AH_DEBUG plus an imported alq(9) and an Atheros NIC (root-gated sysctl toggle vs concurrent HAL register traffic)." }, "kernel_refs": [ "sys/dev/netif/ath/ath_hal/ah_osdep.c:188-364", "sys/dev/netif/ath/ath_hal/ah_osdep.c:202", "sys/dev/netif/ath/ath_hal/ah_osdep.c:216-256", "sys/dev/netif/ath/ath_hal/ah_osdep.c:258-280", "sys/dev/netif/ath/ath_hal/ah_osdep.c:297-307", "sys/dev/netif/ath/ath_hal/ah_osdep.c:316-348", "sys/dev/netif/ath/ath_hal/ah_osdep.c:350-364", "sys/conf/options:551" ], "artifacts": [ "README.md", "VERDICT.md", "trigger.c", "build.sh", "run.sh", "build.log", "run.log", "run.2.log", "sysctl_proof.txt", "env.txt", "fix.diff", "manifest.json", "verdict.json" ] } |