🇰🇷 한글 설명
Linux 커널의 batman-adv 모듈에서 TT 유니캐스트 TVLV 내 VLAN 개수를 처리할 때 정수 오버플로가 발생합니다. u16 타입의 변수가 VLAN 개수와 구조체 크기의 곱셈 과정에서 오버플로를 일으켜, 결과적으로 경계 검사(OOB check)를 무력화하고 메모리 손상을 초래할 수 있습니다.
💡 쉬운 설명
네트워크 관리 도구에서 숫자를 계산할 때, 숫자가 너무 커져서 계산 결과가 엉뚱하게 바뀌는 오류가 발견되었습니다. 이로 인해 해커가 시스템의 허용된 범위를 벗어나 메모리에 접근할 수 있는 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
batman-adv: tt: prevent TVLV OOB check overflow
A TT unicast TVLV contains the number of VLANs stored in it. This number is
an u16 and gets multiplied by the size of the struct
batadv_tvlv_tt_vlan_data (8 bytes). The size can therefore overflow the u16
used to store the tt_vlan_len. All additional safety checks to prevent
out-of-bounds access of the TVLV buffer are invalid due to this overflow.
Using size_t prevents this overflow and ensures that the safety checks
compare against the actual buffer requirements.
📍 영향받는 시스템
Linux kernel (batman-adv 모듈을 사용하는 시스템)
⚔️ 공격 벡터
조작된 TVLV(TT unicast TVLV) 데이터를 전송하여 정수 오버플로 유도 및 메모리 경계 검사 우회
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 u16 대신 size_t를 사용하도록 수정
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인