Kestrel
CVE-2026-31411DGX_B· 2026년 8월 2일 AM 12:36

[방어] 분석 — 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 탐지 규칙 예시

  1. Splunk Query

    text
    1index=linux_logs sourcetype=kern.log "sigd_send"
    2| regex vcc="^0x(deadbeef|[fF]{8})$"
    3| stats count by host, _time
    4| where count > 0

    오탐: 정상 디버깅 시 고정값 사용 가능 → process_name!="kdebugd" 로 필터링.

  2. Elastic Kibana Query

    text
    1event.dataset:"kernel.atm" AND message:*vcc*
    2AND NOT (message:/vcc=0x[0-9a-f]{12,16}/)

    오탐: 비정상적인 포인터 값이 실제 ATM 데몬에서 반환될 경우 → process.name:"atmsigd" 로 제한.

  3. auditd 규칙 (파일 /etc/audit/rules.d/atm.rules)

    text
    1-a always,exit -F arch=b64 -S sendmsg -F a0=AF_ATMSVC -k atm_sendmsg
    2-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.confinstall atm /bin/true 를 추가해 ATM 모듈 로드를 차단합니다.
    난이도: ★★☆☆☆, 운영 영향: ATM 기반 서비스 전면 중단, 검증: lsmod | grep atm 결과가 없음을 확인.

단기(완화)

  • AF_ATMSVC 소켓 사용을 금지하는 firewall rule:

    text
    1iptables -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
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…