🇰🇷 한글 설명
Linux 커널의 airoha 드라이버 내 airoha_dev_xmit() 함수에서 초기화되지 않은 프래그먼트 주소와 길이를 읽는 취약점이 발견되었습니다. 루프의 마지막 반복 과정에서 초기화되지 않은 데이터를 참조하여 페이지 폴트(page fault)를 유발할 수 있으며, 이를 방지하기 위해 프래그먼트 읽기 로직을 수정하고 skb 포인터 관리 방식을 개선했습니다.
💡 쉬운 설명
컴퓨터의 네트워크 통신을 담당하는 부품의 소프트웨어에서 아직 준비되지 않은 정보를 읽으려다 시스템이 멈출 수 있는 오류입니다. 이 오류를 통해 시스템이 갑자기 꺼지거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: airoha: Do not read uninitialized fragment address in airoha_dev_xmit()
The transmit loop in airoha_dev_xmit() reads fragment address and length
during its final iteration, when the loop index equals
skb_shinfo(skb)->nr_frags, at which point the fragment data is
uninitialized. While these values are never consumed, the read itself is
unsafe and may trigger a page fault. Fix this by avoiding the fragment
read on the last iteration.
Additionally, move the skb pointer from the first to the last used packet
descriptor, so that airoha_qdma_tx_napi_poll() defers freeing the skb
until the final descriptor is processed.
📍 영향받는 시스템
Linux kernel (airoha driver 포함 버전)
⚔️ 공격 벡터
네트워크 패킷 전송 과정에서 특정 조건의 데이터 조작을 통한 시스템 오류 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인