🇰🇷 한글 설명
리눅스 커널의 TLS 구현에서 잘못된 헤더를 처리할 때 스트림을 중단하지 않아 발생하는 취약점입니다. 공격자가 작은 크기의 데이터를 조작하여 전송할 경우, 데이터 파싱 과정에서 할당된 메모리 공간을 초과하는 버퍼 오버플로우가 발생할 수 있습니다.
💡 쉬운 설명
인터넷 보안 연결을 처리하는 과정에서 가짜 데이터를 보내 컴퓨터의 메모리 공간을 넘치게 만드는 오류입니다. 이를 통해 해커가 시스템을 마비시키거나 제어권을 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tls: make sure to abort the stream if headers are bogus
Normally we wait for the socket to buffer up the whole record
before we service it. If the socket has a tiny buffer, however,
we read out the data sooner, to prevent connection stalls.
Make sure that we abort the connection when we find out late
that the record is actually invalid. Retrying the parsing is
fine in itself but since we copy some more data each time
before we parse we can overflow the allocated skb space.
Constructing a scenario in which we're under pressure without
enough data in the socket to parse the length upfront is quite
hard. syzbot figured out a way to do this by serving us the header
in small OOB sends, and then filling in the recvbuf with a large
normal send.
Make sure that tls_rx_msg_size() aborts strp, if we reach
an invalid record there's really no way to recover.
📍 영향받는 시스템
TLS 기능을 사용하는 리눅스 커널 (패치 전 버전)
⚔️ 공격 벡터
조작된 TLS 헤더를 작은 크기의 데이터 조각으로 나누어 전송하여 메모리 오버플로우 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인