🇰🇷 한글 설명
Linux 커널의 Thunderbolt 드라이버에서 u32 정수 오버플로 취약점이 발견되었습니다. 악의적인 XDomain 피어가 조작된 값을 전송할 경우, 메모리 경계를 넘어선 영역을 읽어 시스템 정보를 유출할 수 있습니다.
💡 쉬운 설명
컴퓨터의 Thunderbolt 연결을 통해 들어오는 데이터의 크기를 계산할 때 숫자가 너무 커져서 오류가 발생하는 문제입니다. 이 오류를 이용하면 해커가 컴퓨터 내부의 중요한 정보를 몰래 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
thunderbolt: property: Reject u32 wrap in tb_property_entry_valid()
entry->value is u32 and entry->length is u16; the sum is performed in
u32 and wraps. A malicious XDomain peer can pick
value = 0xffffff00, length = 0x100 so the sum 0x100000000 wraps to 0
and passes the > block_len check. tb_property_parse() then passes
entry->value to parse_dwdata() as a dword offset into the property
block, reading attacker-directed memory far past the allocation.
For TEXT-typed entries with the "deviceid" or "vendorid" keys this
lands in xd->device_name / xd->vendor_name and is readable back via
the per-XDomain device_name / vendor_name sysfs attributes; the leak
is NUL-bounded (kstrdup() stops at the first zero byte) and
untargeted (the attacker picks a delta, not an absolute address).
DATA-typed entries are parsed into property->value.data but not
generically surfaced to userspace.
Use check_add_overflow() so a wrapped sum is rejected.
📍 영향받는 시스템
Thunderbolt 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
악의적인 XDomain 피어를 통한 조작된 u32/u16 값 전송
🛡️ 대응 방법
check_add_overflow() 함수를 사용하여 정수 오버플로를 방지하도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인하십시오.