🇰🇷 한글 설명
Linux 커널의 batman-adv 모듈에서 글로벌 TT 응답 버퍼의 크기를 계산할 때 16비트 정수 오버플로가 발생합니다. 공격자가 조작된 대형 TT 페이로드를 전송하면 메모리 할당 크기가 실제 필요한 크기보다 작게 계산되어 힙 오버플로가 발생할 수 있습니다.
💡 쉬운 설명
네트워크 통신 중 데이터 크기를 계산하는 과정에서 숫자가 너무 커져서 오류가 발생하는 문제입니다. 이 오류를 이용하면 해커가 컴퓨터의 메모리 영역을 넘어서 데이터를 써넣어 시스템을 장악할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
batman-adv: reject oversized global TT response buffers
batadv_tt_prepare_tvlv_global_data() builds the allocation length for a
global TT response in 16-bit temporaries. When a remote originator
advertises a large enough global TT, the TT payload length plus the VLAN
header offset can exceed 65535 and wrap before kmalloc().
The full-table response path still uses the original TT payload length when
it fills tt_change, so the wrapped allocation is too small and
batadv_tt_prepare_tvlv_global_data() writes past the end of the heap object
before the later packet-size check runs.
Fix this by rejecting TT responses whose TVLV value length cannot fit in
the 16-bit TVLV payload length field.
📍 영향받는 시스템
Linux kernel (batman-adv 모듈을 사용하는 시스템)
⚔️ 공격 벡터
조작된 대형 글로벌 TT(Topology Table) 응답 패킷을 전송하여 힙 오버플로 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인