🇰🇷 한글 설명
Linux 커널의 batman-adv 모듈에서 mcast 처리 중 num_dests 헤더에 대한 경계 외 읽기(OOB Read) 취약점이 발견되었습니다. offsetof() 함수를 잘못 사용하여 네트워크 헤더의 실제 크기를 정확히 검증하지 못함으로써 발생하는 문제입니다.
💡 쉬운 설명
데이터의 길이를 확인하는 과정에서 계산 오류가 발생하여, 실제 데이터보다 더 많은 부분을 읽으려고 시도하는 보안 결함입니다. 이로 인해 시스템 정보가 유출되거나 프로그램이 예기치 않게 종료될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
batman-adv: mcast: avoid OOB read of num_dests header
Before the access to struct batadv_tvlv_mcast_tracker's num_dests, it is
attempted to check whether enough space is actually in the network header.
But instead of using offsetofend() to check for the whole size (2) which
must be accessible, offsetof() of is called. The latter is always returning
0. The comparison with the network header length will always return that
enough data is available - even when only 1 or 0 bytes are accessible.
Instead of using offsetofend(), use the more common check for the whole
header.
📍 영향받는 시스템
Linux kernel (batman-adv 모듈을 사용하는 시스템)
⚔️ 공격 벡터
조작된 네트워크 패킷을 전송하여 커널 메모리의 경계 외 영역을 읽도록 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인