🔍 CVE-2026-98123

5.5
CVSS Score
MEDIUM
2026-09-25
2026-10-22 16:46
✅ 완료

🇰🇷 한글 설명

Linux 커널의 SCTP 프로토콜 구현에서 ASCONF-ACK 파라미터 처리 시 패딩 계산 방식의 불일치로 인해 발생하는 취약점입니다. 공격자가 조작된 길이를 가진 파라미터를 전송하면 커널이 무한 루프에 빠져 소프트 락업(soft lockup)이 발생하며, 이로 인해 원격 서비스 거부(DoS)가 가능합니다. 또한 특정 상황에서 경계 검사 미흡으로 인한 Out-of-bounds Read 취약점도 포함되어 있습니다.

💡 쉬운 설명

해커가 특수하게 조작된 네트워크 신호를 보내면 컴퓨터의 핵심 엔진인 커널이 무한 반복 작업에 빠져 멈춰버릴 수 있습니다. 이로 인해 서버가 응답하지 않게 되어 서비스를 이용할 수 없는 상태가 됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: sctp: fix soft lockup from unpadded ASCONF-ACK parameter iteration sctp_verify_asconf() walks ASCONF-ACK parameters with sctp_walk_params(), which advances by SCTP_PAD4(length), while the consumer sctp_get_asconf_response() iterates the same parameters advancing by the raw length, without padding. A single odd-length parameter desynchronises the two walks and makes the consumer interpret attacker-controlled bytes at a misaligned offset. When those bytes yield a length of zero, the while loop over asconf_ack_len makes no progress, spinning forever in softirq context, and the watchdog reports a soft lockup. All reads stay within the received skb, so the lockup is a pure remote denial of service. A remote peer can trigger it with a crafted ASCONF-ACK on an ADD-IP enabled association with an outstanding ASCONF (RFC 5061 section 4.1.2 requires the chunk to be authenticated, but the predefined empty key id 0 allows the peer to compute the same association HMAC from publicly exchanged parameters, so the gate does not help). The SCTP_PARAM_ERR_CAUSE case of sctp_verify_asconf() also performs no length check, letting a parameter without a complete error header reach the consumer, which reads errhdr.cause past the end of the parameter, an out-of-bounds read. Reject SCTP_PARAM_ERR_CAUSE parameters shorter than sizeof(struct sctp_addip_param) + sizeof(struct sctp_errhdr) at the verifier, and advance the consumer iterator with the same padding rule as the verifier to keep the two walks in lockstep. The verifier change guarantees a complete error header in every ERR_CAUSE parameter the consumer can see, so the consumer's asconf_ack_len check is dropped and it returns err_param->cause directly. The consumer padding fix is still required because odd lengths remain valid for SCTP_PARAM_ERR_CAUSE per RFC 5061. The issue was found by ZeroHive, a vulnerability hunting agent at Tencent Yunding Lab.

📍 영향받는 시스템

SCTP 프로토콜을 사용하는 Linux 커널 (ADD-IP 기능 활성화 시)

⚔️ 공격 벡터

네트워크를 통해 조작된 ASCONF-ACK 패킷을 전송하는 원격 공격

🛡️ 대응 방법

SCTP 파라미터 검증 로직을 수정하고 패딩 규칙을 일치시킨 최신 Linux 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel