🇰🇷 한글 설명
Linux 커널의 SCTP 프로토콜 구현 중 sctp_cookie 구조체의 auth_hmacs 배열 크기 계산 오류가 발견되었습니다. 이 오류로 인해 sctp_association_init() 함수가 배열 범위를 초과하여 데이터를 복사함으로써 인접한 필드를 손상시키고, 이후 sctp_auth_get_hmac()에서 경계 외 읽기(Out-of-bounds read)를 유발할 수 있습니다.
💡 쉬운 설명
데이터를 저장하는 바구니의 크기를 실제 필요한 것보다 작게 설정하여, 넘쳐흐른 데이터가 옆에 있는 중요한 정보를 망가뜨리는 문제입니다. 이로 인해 시스템이 잘못된 정보를 읽거나 보안 검사를 통과할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sctp: fix auth_hmacs array size in struct sctp_cookie
The auth_hmacs array in struct sctp_cookie is supposed to store a complete
SCTP_AUTH_HMAC_ALGO parameter, which consists of a struct sctp_paramhdr
followed by N HMAC identifiers.
However, the array size was calculated using an extra 2 bytes instead of
sizeof(struct sctp_paramhdr), which is 4 bytes. When four HMAC identifiers
are configured, the HMAC-ALGO parameter stored in the endpoint is larger
than the auth_hmacs buffer in the cookie.
As a result, sctp_association_init() copies beyond the end of auth_hmacs
when initializing the association, corrupting the adjacent auth_chunks
field. This can lead to an invalid HMAC identifier being accepted and later
cause an out-of-bounds read in sctp_auth_get_hmac().
Fix the array size calculation by including the full SCTP parameter header
size.
📍 영향받는 시스템
SCTP 프로토콜을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
조작된 SCTP 인증 파라미터를 포함한 패킷을 전송하여 커널 메모리 오염 유도
🛡️ 대응 방법
SCTP 관련 보안 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인합니다.