CVE-2026-80944 in Linux
요약
\~에 의해 VulDB • 2026. 09. 12.
리눅스 커널에서 다음 취약점이 해결되었습니다:
wifi: mwifiex: 중단된 대기 중 동기화 명령 버퍼 분리(mwifex sync cmd buffer detach)
mwifiex의 동기식 명령은 호출자가 제공한 데이터 버퍼를 `cmd_node->data_buf`에 유지합니다. 여러 호출자는 여기에 스택 할당 객체를 전달합니다.
만약 `wait_event_interruptible_timeout()`이 중단되면, 호출자는 반환하여 해당 스택 객체를 해제할 수 있지만 펌웨어 명령은 여전히 현재 실행 중인 상태가 됩니다. 이후 늦게 도착하는 펌웨어 응답은 정상적인 응답 핸들러에 도달하며, 이는 `cmd_node->data_buf`를 통해 데이터를 만료된(stale) 스택 주소로 복사할 수 있습니다.
이 수정은 반복적인 연결 및 해지(association/disassociation) 주기 동안 관찰된 스택 손상 문제를 해결합니다. 패닉 트레이스(panic trace)는 명령 대기 중도가 나쁜 포인터 역참조(bad pointer dereference) 직전에 발생했음을 보여주었습니다:
cmd_wait_q terminated: -512 Unable to handle kernel paging request at virtual address 002c583837384662 Kernel panic - not syncing: stack-protector: Kernel stack is corrupted ... Tainted: [M]=MACHINE_CHECK
고장 주소는 리틀 엔디안 ASCII로 디코딩됩니다:
0x002c583837384662 -> "bF878X,\0"
이는 debugfs "verext"로 노출된 VERSION_EXT 펌웨어 문자열의 일부입니다:
w8997o-V4, RF878X, FP92, 16.92.21.p153.7
동일한 테스트 실행에서는 다음과 같은 손상된 제어 데이터도 확인되었습니다:
0x2400372e333531 -> "153.7\0$"
이는 동일한 VERSION_EXT 문자열의 끝부분입니다. 이는 중단된 대기가 반환한 후, 만료된 스택 기반 data_buf를 통해 늦게 도착하는 VERSION_EXT 응답이 작성되었음을 시사합니다.
중단되거나 시간 초과된 대기 중 보류 중인 명령을 취소한 후, 호출자가 소유한 데이터 버퍼를 여전히 현재 상태인 명령에서 분리(detach)합니다. 이는 기존 명령 취소 동작을 유지하면서, 수명 주기(waiting caller의 반환 시 종료됨)가 끝난 포인터를 통한 늦은 응답 작성을 방지합니다.
88W8997이 탑재된 i.MX8MP 보드에서 테스트되었습니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.