🔍 CVE-2026-64089

9.8
CVSS Score
CRITICAL
2026-07-19
2026-08-11 15:33
✅ 완료

🇰🇷 한글 설명

Linux 커널의 batman-adv 모듈에서 last_changeset_len 변수가 s16 타입으로 선언되어 정수 오버플로가 발생할 수 있는 취약점입니다. 값이 32767을 초과할 경우 음수로 변환되어 메모리 할당 시 초기화되지 않은 영역을 남겨두는 타입 혼동 문제가 발생합니다.

💡 쉬운 설명

데이터 크기를 나타내는 숫자가 너무 커지면 컴퓨터가 이를 마이너스 숫자로 잘못 인식하는 오류입니다. 이로 인해 메모리 공간이 제대로 채워지지 않아 보안상 위험한 빈 공간이 생길 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: batman-adv: tt: fix negative last_changeset_len batadv_piv_tt::last_changeset_len len was declared as s16, but the field is never intended to hold a negative value. When a value greater than 32767 is assigned, it wraps to a negative signed integer. In batadv_send_my_tt_response(), last_changeset_len is temporarily widened to s32. The incorrectly negative s16 value propagates into the s32, causing batadv_tt_prepare_tvlv_local_data() to allocate a full sized buffer but populates only a small portion of it with the collected changeset. All remaining bits are kept uninitialized. Using an u16 avoids this type confusion and ensures that no (negative) sign extension is performed in batadv_send_my_tt_response().

📍 영향받는 시스템

Linux kernel (batman-adv 모듈을 사용하는 시스템)

⚔️ 공격 벡터

조작된 네트워크 패킷을 통해 batman-adv 프로토콜의 changeset 길이를 비정상적으로 크게 설정하여 공격

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 last_changeset_len 타입을 u16으로 수정

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel