🇰🇷 한글 설명
Linux 커널의 wifi rsi 드라이버에서 키를 제거할 때 힙 영역의 경계를 벗어난 쓰기(OOB Write) 취약점이 발견되었습니다. 키 제거 과정에서 잘못된 오프셋 계산으로 인해 메모리의 다른 객체를 손상시킬 수 있는 문제가 있었습니다.
💡 쉬운 설명
와이파이 연결을 끊거나 키를 삭제할 때, 컴퓨터 메모리의 잘못된 위치에 데이터를 써서 시스템을 불안정하게 만들 수 있는 오류입니다. 이 과정에서 메모리 데이터가 엉뚱한 곳에 덮어씌워질 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: rsi: fix heap OOB write on key removal
When a key is removed (data == NULL), rsi_hal_load_key() runs:
memset(&set_key[FRAME_DESC_SZ], 0, frame_len - FRAME_DESC_SZ);
set_key is a struct rsi_set_key *, so the subscript is scaled by
sizeof(struct rsi_set_key) (160 bytes): &set_key[FRAME_DESC_SZ] is
skb->data + 2560, and the memset writes 144 zero bytes starting
2.4KB past the end of the 160-byte skb data buffer, corrupting
unrelated heap objects. The intended byte offset would have been
(u8 *)set_key + FRAME_DESC_SZ.
The write fires on every DISABLE_KEY callback, so plain disconnects,
roams and interface teardowns trigger it on real networks.
The memset is redundant: the whole buffer is zeroed right after
allocation, so the frame sent to the device is byte-identical
without it. Drop the else branch; normal operation is unaffected.
Discovered by Atuin - Automated Vulnerability Discovery Engine.
📍 영향받는 시스템
Linux kernel (wifi rsi driver 포함 버전)
⚔️ 공격 벡터
네트워크 연결 해제, 로밍 또는 인터페이스 종료 시 발생하는 DISABLE_KEY 콜백을 통한 메모리 오염
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.