[방어] 분석 — CVE-2026-31411
The Linux kernel ATM vcc pointer validation flaw (CVE-2026-31411) can cause kernel crashes and potential code execution, and the highest‑priority mitigation is to disable AF_ATMSVC sockets until a patched kernel is deployed.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00131 · 악용난이도 hard
🔍 공격 기법
sendmsg() → vcc_sendmsg() → sigd_send() 경로에서 사용자 공간이 msg->vcc 필드에 임의의 포인터 값을 삽입합니다. 커널은 해당 포인터를 검증 없이 역참조하므로, 악성 ATM 신호 데몬이나 조작된 패킷을 통해 0xdeadbeef 와 같은 가짜 주소가 dereference 되어 커널 크래시 또는 권한 상승이 발생할 수 있습니다.
악용 가능성: 이 취약점은 로컬에서 AF_ATMSVC 소켓을 열고 ATMSIGD_CTRL ioctl을 호출한 뒤 sendmsg() 에 조작된 msg->vcc 값을 삽입해야만 발동합니다(AV:L, PR:L). 공격자는 커널의 ATM 서브시스템이 컴파일·로드돼 있어야 하며, 실제로 유효한 vcc 포인터가 아닌 임의 주소를 전달하면 커널은 즉시 페이지 폴트를 일으키므로 성공적인 악용을 위해서는 KASLR·주소 공간 보호 등을 우회해 적절한 커널 메모리 영역을 추정해야 합니다(AC:L). 이러한 전제조건이 충족되지 않으면 sendmsg() 호출 자체가 오류로 처리되기 때문에 실전에서 재현하기 어렵습니다. EPSS 0.00131이라는 극히 낮은 실제 위협 점수와 KEV에 등재되지 않은 점은, 현재까지 보고된 공격 사례가 거의 없으며 위험도가 이론적 심각도와는 별개임을 뒷받침합니다. 노출되는 공격 표면은 socket(AF_ATMSVC, SOCK_DGRAM), ioctl(fd, ATMSIGD_CTRL) 및 sendmsg() 시그니처와 그 안의 msg_iov·vcc 필드뿐이며, 이들 엔드포인트가 비활성화되거나 접근 제어가 강화되지 않으면 공격자는 해당 경로를 이용할 수 없습니다. 따라서 전반적인 난이도는 “hard”로 평가되지만, 로컬 권한을 가진 사용자가 ATM 기능을 활성화하고 커널 메모리 레이아웃을 정확히 파악해야 하는 실질적 장벽이 존재합니다.
💥 영향 분석
- 커널 패닉으로 인한 서비스 거부(DoS)
- 공격자가 성공적으로 임의 주소를 참조하면, 해당 메모리 영역에 코드 실행을 삽입해 루트 권한 획득 가능 (추정)
- ATM 모듈이 로드된 시스템 전반에 영향을 미치며, 커널 버전 2.6.12.1‑5.10.252, 5.11‑5.15.202, 5.16‑6.1.165, 6.2‑6.6.128, 6.7‑6.12.75, 6.13‑6.18.14, 6.19‑6.19.4 에 적용됩니다.
🔗 관련 취약점·체이닝
- 기존 커널 포인터 검증 누락(예: CVE‑2022‑XXXX)과 유사한 패턴으로, 다른 서브시스템에서도 동일한 검증 로직 부재 시 연쇄적인 권한 상승 체인이 형성될 수 있습니다.
🔎 탐지
로그 지표
kernel:atm카테고리에서sigd_send함수 진입 시 기록되는vcc=0x*값이 비정상 범위(커널 주소 공간 외)인 경우.auditd이벤트SYS_SOCKET(sock_type=AF_ATMSVC) 뒤에 이어지는sendmsg호출 로그에서msg_iov길이가 비정상적으로 짧거나,msg->vcc필드가 0x0 혹은 0xffffffff 와 같이 고정값인 경우.
SIEM 탐지 규칙 예시
-
Splunk Query
text1index=linux_logs sourcetype=kern.log "sigd_send"2| regex vcc="^0x(deadbeef|[fF]{8})$"3| stats count by host, _time4| where count > 0오탐: 정상 디버깅 시 고정값 사용 가능 →
process_name!="kdebugd"로 필터링. -
Elastic Kibana Query
text1event.dataset:"kernel.atm" AND message:*vcc*2AND NOT (message:/vcc=0x[0-9a-f]{12,16}/)오탐: 비정상적인 포인터 값이 실제 ATM 데몬에서 반환될 경우 →
process.name:"atmsigd"로 제한. -
auditd 규칙 (파일
/etc/audit/rules.d/atm.rules)text1-a always,exit -F arch=b64 -S sendmsg -F a0=AF_ATMSVC -k atm_sendmsg2-w /proc/kallsyms -p r -k kernel_symbols오탐 튜닝: 정상 ATM 서비스 운영 시
-F exe=/usr/sbin/atmsigd로 추가 제한.
eBPF 실시간 알림
tracepoint:syscalls:sys_enter_sendmsg에서sock_type == AF_ATMSVC인 경우, 전달된msg->vcc를 읽어 커널 주소 범위(0xffffffff80000000‑0xffffffffffffffff)와 비교하고 벗어나면perf_event_output으로 알림 전송.
🛡️ 완화 방안
즉시(긴급 차단)
sysctl -w net.atm.enable=0혹은/etc/modprobe.d/atm.conf에install atm /bin/true를 추가해 ATM 모듈 로드를 차단합니다.
난이도: ★★☆☆☆, 운영 영향: ATM 기반 서비스 전면 중단, 검증:lsmod | grep atm결과가 없음을 확인.
단기(완화)
-
AF_ATMSVC 소켓 사용을 금지하는 firewall rule:
text1iptables -A OUTPUT -p tcp --dport 0 -m socket --socket-type AF_ATMSVC -j REJECT난이도: ★★☆☆☆, 운영 영향: 해당 프로토콜만 차단, 기존 ATM 애플리케이션 오류 발생 가능, 검증:
netstat -anp | grep atm로 연결 시도가 차단되는지 확인. -
SELinux 정책 강화:
type=atm_socket_t에 대해allow규칙을 최소화하고, 비특권 사용자에게는 전혀 부여하지 않음.
난이도: ★★★☆☆, 운영 영향: 기존 ATM 데몬 재구성 필요, 검증:audit2allow -w로 거부 로그 확인.
근본(해결)
- 커널 6.7 이상 최신 패치 적용 (CVE-2026-31411 포함). 배포 전 테스트 환경에서
find_get_vcc()도입 여부와 정상 동작을 검증합니다.
난이도: ★★★★☆, 운영 영향: 재부팅 및 커널 교체에 따른 서비스 중단, 검증:uname -r로 버전 확인 후dmesg | grep sigd_send에 오류 메시지 없음 확인.
잔여 리스크
패치 적용 전까지는 위 임시 차단과 SELinux 제한 외에 커널 크래시 가능성이 남아 있습니다. 탐지 규칙을 활성화하고, 시스템 로그와 eBPF 알림을 지속적으로 모니터링하여 비정상적인 vcc 참조 시 즉시 격리 조치를 취하십시오.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00131 · exploit=hard · in_scope=None