🇰🇷 한글 설명
Linux 커널의 SCTP 프로토콜 구현에서 COOKIE_ECHO 처리 시 캐시된 INIT 청크의 길이를 검증하지 않는 취약점이 발견되었습니다. 공격자가 길이를 조작한 청크를 보내면 버퍼 범위를 벗어난 읽기(Out-of-bounds read)가 발생하여 메모리 오염 및 시스템 장애를 유발할 수 있습니다.
💡 쉬운 설명
네트워크 통신 규약인 SCTP를 사용하는 서버가 잘못된 길이 정보가 담긴 데이터를 받았을 때, 허용된 메모리 범위를 넘어서 데이터를 읽으려다 발생하는 오류입니다. 이를 통해 해커가 시스템의 메모리 정보를 훔쳐보거나 시스템을 중단시킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sctp: validate cached peer INIT chunk length in COOKIE_ECHO processing
When a listening SCTP server processes a COOKIE_ECHO chunk, the cached
peer INIT chunk embedded after the cookie is parsed and its parameters
are later walked by sctp_process_init() using sctp_walk_params().
However, the chunk header length of this cached INIT chunk was not
validated against the remaining buffer in the COOKIE_ECHO payload. If
the length field is inflated, the parameter walk can run beyond the
actual received data, leading to out-of-bounds reads and potential
memory corruption during later parameter handling (e.g. STATE_COOKIE
processing and kmemdup() copies).
Add a bounds check in sctp_unpack_cookie() to ensure the cached INIT
chunk length does not exceed the available data in the COOKIE_ECHO
buffer before it is used.
📍 영향받는 시스템
SCTP 프로토콜을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
조작된 길이 값을 가진 SCTP COOKIE_ECHO 청크를 서버로 전송
🛡️ 대응 방법
sctp_unpack_cookie() 함수에 경계 검사 로직이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 패치된 최신 보안 업데이트 버전인지 확인