CVE-2026-31552 in Linux
요약
\~에 의해 VulDB • 2026. 05. 20.
리눅스 커널에서 다음 취약점이 해결되었습니다:
wifi: wlcore: 헤드룸(headroom)이 충분하지 않을 때 -EAGAIN 대신 -ENOMEM 반환
상위(upstream) 커밋 e75665dd0968("wifi: wlcore: skb_push 전 skb 헤드룸 확인") 이후, pskb_expand_head()이 실패할 경우 wl1271_tx_allocate()와 이로 인해 wl1271_prepare_tx_frame()가 -EAGAIN을 반환합니다. 그러나 wlcore_tx_work_locked()에서는 wl1271_prepare_tx_frame()로부터의 -EAGAIN 반환값을 집계(aggregation) 버퍼가 가득 찼다고 해석합니다. 이로 인해 코드는 버퍼를 플러시하고, skb를 큐의 맨 앞으로 되돌리며, 동일한 skb를 엄격한 while 루프에서 즉시 재시도합니다.
wlcore_tx_work_locked()가 wl->mutex를 보유하고 있고, 재시도가 GFP_ATOMIC 플래그와 함께 즉시 발생하므로, 이는 무한 루프와 CPU 소프트 락업(soft lockup)을 초래합니다. 패킷이 드롭되고 루프가 종료되도록 대신 -ENOMEM을 반환합니다.
이 문제는 v6.18.y로의 백포트(backport)를 검토하는 동안 gemini-3.1-pro 기반의 실험적 코드 리뷰 에이전트에 의해 발견되었습니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.