🇰🇷 한글 설명
리눅스 커널의 Thunderbolt 드라이버에서 __tb_property_parse_dir() 함수가 재귀 호출 시 깊이 제한을 확인하지 않아 발생하는 취약점입니다. 악의적으로 조작된 DIRECTORY 엔트리를 통해 무한 루프를 유도하면 커널 스택이 고갈되어 시스템이 중단될 수 있습니다.
💡 쉬운 설명
썬더볼트 장치를 연결했을 때, 장치가 가짜 정보를 보내 컴퓨터의 메모리 공간을 순식간에 가득 채워 시스템을 멈추게 만들 수 있는 문제입니다. 인증 없이도 연결된 장치를 통해 공격이 가능합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
thunderbolt: property: Cap recursion depth in __tb_property_parse_dir()
A DIRECTORY entry's value field is used as the dir_offset for a
recursive call into __tb_property_parse_dir() with no depth counter.
A crafted peer that chains DIRECTORY entries into a back-reference
loop drives the parser until the kernel stack is exhausted and the
guard page fires. Any untrusted XDomain peer (cable, dock, in-line
inspector, adjacent host) that reaches the PROPERTIES_REQUEST
control-plane exchange can trigger this without authentication.
Thread a depth counter through tb_property_parse() and
__tb_property_parse_dir(), and reject blocks that exceed
TB_PROPERTY_MAX_DEPTH = 8. That is comfortably larger than any
observed legitimate XDomain layout.
Operators who do not need XDomain host-to-host discovery can disable
the path entirely with thunderbolt.xdomain=0 on the kernel command
line.
📍 영향받는 시스템
Thunderbolt XDomain 기능을 사용하는 리눅스 커널 시스템
⚔️ 공격 벡터
인증되지 않은 악의적인 XDomain 피어(케이블, 독, 인라인 인스펙터 등)를 통한 조작된 속성 데이터 전송
🛡️ 대응 방법
커널을 업데이트하여 재귀 깊이 제한(TB_PROPERTY_MAX_DEPTH=8)을 적용하거나, 커널 파라미터에 thunderbolt.xdomain=0을 추가하여 기능을 비활성화합니다.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 패치된 최신 버전인지 보안 공지(Linux Kernel Mailing List 등)와 대조합니다.