🇰🇷 한글 설명
리눅스 커널의 NFC NCI 드라이버에서 nci_rx_work() 함수가 수신된 패킷을 처리할 때 페이로드 길이가 0인 경우 초기화되지 않은 값을 참조하는 취약점이 발견되었습니다. 이로 인해 KMSAN과 같은 도구에서 uninit-value 접근 문제가 감지되었으며, 패킷 크기를 사전에 검사하여 이를 방지하도록 수정되었습니다.
💡 쉬운 설명
NFC 통신 과정에서 데이터 크기가 0인 잘못된 신호를 받았을 때, 컴퓨터가 비어있는 메모리 공간을 잘못 읽어 들여 문제가 발생할 수 있는 보안 약점입니다. 이 문제는 데이터가 비어있는지 먼저 확인하는 과정을 추가함으로써 해결되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet
syzbot reported the following uninit-value access issue [1][2]:
nci_rx_work() parses and processes received packet. When the payload
length is zero, each message type handler reads uninitialized payload
and KMSAN detects this issue. The receipt of a packet with a zero-size
payload is considered unexpected, and therefore, such packets should be
silently discarded.
This patch resolved this issue by checking payload size before calling
each message type handler codes.
📍 영향받는 시스템
NFC NCI 드라이버를 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
페이로드 길이가 0인 특수하게 조작된 NFC 패킷을 전송하여 발생
🛡️ 대응 방법
NFC NCI 관련 패치가 적용된 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인