[분석가] 분석 — CVE-2026-31503
The UDP wildcard bind conflict in Linux kernels (CVE-2026-31503) allows a process to bypass port‑in‑use checks after hash table saturation, and should be mitigated immediately by applying the upstream patch and deploying interim socket‑creation limits or eBPF monitoring.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00123 · 악용난이도 hard
🔍 공격 기법
- 로컬 프로세스가 여러 개의 UDP 소켓을 서로 다른 IPv6 주소(
fd00::i)와 동일 포트(8888)로 바인드한다. - 10개 이상 바인드되면 커널이
hash‑only 충돌 검증에서hash2(주소+포트 기반) 로 전환되는데, 이 전환 과정에서 와일드카드 주소(::또는0.0.0.0)에 대한 중복 바인드를 오류 없이 허용한다. - CVSS 벡터(
AV:L/AC:L/PR:L/UI:N)가 나타내듯, 공격자는 로컬 접근 권한만 있으면 되며 별도의 네트워크 트래픽이 필요하지 않다.
악용 가능성: CVSS 벡터 AV:L/AC:L/PR:L/UI:N은 공격자가 로컬 시스템에 접근할 수 있어야 하며, 복잡도가 낮고(AC:L) 최소 권한(Low privilege)만으로도 가능하고 사용자 상호작용이 필요하지 않음을 의미합니다. 따라서 원격에서의 이용은 불가능하고, 로컬 사용자를 전제로 한 공격 난이도는 “hard” 수준으로 평가됩니다. EPSS 0.00123이라는 매우 낮은 실측값과 KEV에 등재되지 않은 점은 현재까지 이 취약점이 실제 악용된 사례가 거의 없으며, 이론적 심각도와 별개로 위협이 제한적임을 뒷받침합니다. 공격 표면은 Linux 커널의 UDP 소켓 바인딩 로직으로, 모든 프로세스가 bind() 시스템 콜을 통해 로컬 주소·포트에 바인드할 수 있는 엔드포인트가 노출됩니다. 악용 조건은 동일 포트(예: 8888)로 서로 다른 IPv6 주소를 사용해 10개 이상의 소켓을 순차적으로 바인드하여 해시2(hash2) 전환이 발생하도록 하는 특정 시나리오이며, 이를 위해 공격자는 해당 프로세스를 직접 제어하거나 컨테이너 등에서 동일 커널을 공유해야 합니다. 성공 시 중복 바인딩 오류가 제대로 반환되지 않아 서비스 거부(DoS) 또는 비인가 패킷 수신과 같은 영향
💥 영향 분석
-
기술적 위험
- 동일 포트를 사용하는 서비스(예: DNS, syslog, custom UDP 서버)가 예상치 못한 추가 소켓에 의해 패킷을 분산 수신하거나 전혀 받지 못해 서비스 가용성이 크게 저하된다(
Availability= High). - 충돌 검증 우회를 통해 악성 프로세스가 정상 서비스와 동일 포트에서 데이터를 가로채거나 무시할 가능성이 존재한다(실제 데이터 유출·무결성 침해는 CVSS에 명시되지 않았음).
- 동일 포트를 사용하는 서비스(예: DNS, syslog, custom UDP 서버)가 예상치 못한 추가 소켓에 의해 패킷을 분산 수신하거나 전혀 받지 못해 서비스 가용성이 크게 저하된다(
-
비즈니스 리스크
- 핵심 인프라가 UDP 기반일 경우 서비스 중단으로 SLA 위반 및 고객 신뢰도 하락.
- 규제·컴플라이언스 측면에서 가용성 요구사항을 충족하지 못하면 벌금·시정조치 위험이 존재한다.
-
영향 제품·노출 규모
- Linux 커널 2.6.33.1 ~ 6.19.11 전 버전(다중 릴리즈)에서 취약점이 확인되어, 주요 배포판(우분투, 레드햇, 데비안 등)의 광범위한 인프라가 대상이다.
- [교차검증] 다중 소스에서 일관성이 확인돼 제품 범위는 보수적으로 유지하였다.
🔗 관련 취약점·체이닝
- 추정: 동일하거나 유사한 해시 테이블 충돌 우회(CWE‑665 / CWE‑190) 취약점과 결합될 경우, 리소스 소모 공격이나 권한 상승 시나리오가 구성될 수 있다.
- 현재 알려진 공개 익스플로잇은 없지만,
hash2전환 로직을 조작하는 다른 커널 모듈(예: Netfilter)과 연계하면 추가적인 서비스 방해가 가능할 것으로 추정된다.
🔎 탐지
- 시스템 콜 감시:
bind()호출 시 AF_INET/AF_INET6, 포트 번호와 주소(::또는0.0.0.0) 조합이 반복적으로 성공하는 패턴을 eBPF 혹은 감사(Audit) 로그에서 추적한다. - 커널 로그: UDP 바인드 충돌 검증이 우회된 경우, 커널 내부 디버그 메시지(
udp_lib_lport_inuse등)가 비정상적인 성공 반환을 기록할 수 있다. - 통계 기반 알림: 동일 포트에 10개 이상 소켓이 존재하는 순간 경고를 발생시키는 모니터링 규칙을 설정한다.
🛡️ 완화 방안
- 패치 적용 – 배포판 제공 최신 커널(예:
linux‑kernel ≥ 6.19.12등)으로 업데이트하고, 해당 패치를 포함한 보안 릴리즈를 즉시 설치한다. - 임시 제한 – SELinux/AppArmor 정책이나 sysctl(
net.ipv4.udp_mem,net.ipv6.udp_mem)을 활용해 사용자당 UDP 소켓 수와 포트 바인드 횟수를 제한한다. - 모니터링 강화 – 위 “탐지” 섹션에 기술된 eBPF/감사 규칙을 배포하고,
EPSS 0.00123(실측 악용 확률)과 CVSS 5.5를 고려해 monitor 우선순위로 지속적인 관찰 체계를 구축한다. - 운영 절차 – 신규 커널 적용 전 테스트 환경에서 동일 바인드 시나리오 재현 검증을 수행하고, 배포 후 서비스 가용성 모니터링을 강화한다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00123 · exploit=hard · in_scope=None