🇰🇷 한글 설명
리눅스 커널의 netfilter synproxy 구성 요소에서 TCP 옵션을 파싱할 때 경계 외 메모리를 읽는 취약점이 발견되었습니다. TCP 옵션의 길이가 1인 경우, 특정 조건에서 루프 내에서 유효하지 않은 바이트를 추가로 읽어 메모리 경계를 초과하게 됩니다.
💡 쉬운 설명
네트워크 연결을 도와주는 기능이 잘못된 형식의 데이터를 받았을 때, 허용된 메모리 범위를 벗어나 데이터를 읽어버리는 문제입니다. 이로 인해 시스템이 불안정해지거나 보안 문제가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: synproxy: Fix out of bounds when parsing TCP options
The TCP option parser in synproxy (synproxy_parse_options) could read
one byte out of bounds. When the length is 1, the execution flow gets
into the loop, reads one byte of the opcode, and if the opcode is
neither TCPOPT_EOL nor TCPOPT_NOP, it reads one more byte, which exceeds
the length of 1.
This fix is inspired by commit 9609dad263f8 ("ipv4: tcp_input: fix stack
out of bounds when parsing TCP options.").
v2 changes:
Added an early return when length < 0 to avoid calling
skb_header_pointer with negative length.
📍 영향받는 시스템
Linux kernel (netfilter: synproxy 구성 요소 포함 버전)
⚔️ 공격 벡터
조작된 TCP 옵션을 포함한 패킷을 전송하여 synproxy의 옵션 파싱 로직을 트리거함
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인하십시오.