🇰🇷 한글 설명
Linux 커널의 batman-adv 모듈에서 이더넷 헤더 길이를 제대로 확인하지 않아 발생하는 취약점입니다. 로컬 사용자가 eBPF TC 훅을 사용하여 패킷을 잘라낸 뒤 batadv 인터페이스로 리다이렉트할 경우, 커널이 할당된 버퍼 범위를 벗어나 메모리를 읽는 정보 유출 또는 시스템 불안정 문제가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 내부의 통신 규칙을 처리하는 과정에서 데이터의 길이를 잘못 계산하여, 허용되지 않은 메모리 영역을 들여다볼 수 있는 결함입니다. 공격자가 특수한 프로그램을 사용해 데이터를 일부러 짧게 만들어 보내면 시스템에 오류를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
batman-adv: ensure minimal ethernet header on TX
As documented in commit 8bd67ebb50c0 ("net: bridge: xmit: make sure we have
at least eth header len bytes"), it is possible by for a local user with
eBPF TC hook access to attach a tc filter which truncates the packet and
redirects to an batadv interface. But the code assumes that at least
ETH_HLEN bytes are available and thus might read outside of the available
buffer.
The batadv_interface_tx() must therefore always check itself if enough data
is available for the ethernet header and don't rely on min_header_len.
📍 영향받는 시스템
eBPF TC 훅 권한을 가진 로컬 사용자가 존재하는 Linux 커널 (batman-adv 모듈 사용 시)
⚔️ 공격 벡터
로컬 사용자가 eBPF TC 필터를 사용하여 패킷을 절단(Truncate)한 후 batadv 인터페이스로 전달
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하거나, batadv 모듈의 관련 커밋(8bd67ebb50c0 등)이 반영된 버전 사용
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전 이상인지 확인합니다.