Kestrel
CVE-2026-31431DGX_A· 2026년 8월 2일 AM 12:56

[공격] 분석 — CVE-2026-31431

CVE-2026-31431 enables a non‑privileged local user to corrupt kernel memory via the AF_ALG AEAD API and obtain root, requiring immediate patching or disabling of CONFIG_CRYPTO_USER_API_AEAD.

📋 요약

  • 심각도 high · CVSS 7.8 · EPSS 0.94545 · 악용난이도 easy · KEV

🔍 공격 기법

  • 트리거 조건
    • CONFIG_CRYPTO_USER_API_AEAD 가 커널에 포함된 상태에서 일반 사용자가 AF_ALG 소켓을 열고 algif_aead 인터페이스에 연관 데이터(Associated Data, AD)를 포함한 AEAD 요청을 전송할 때, 커널이 in‑place 복사 로직을 잘못 처리해 메모리 경계 밖으로 쓰게 된다.
  • 공격 표면
    • 엔드포인트: socket(AF_ALG, SOCK_SEQPACKET, 0)setsockopt(SOL_ALG, ALG_SET_KEY, …)sendmsg()/recvmsg() 로 전달되는 struct af_alg_sock 와 AD 버퍼.
  • 단계 흐름
단계전제조건 / 관측 지표
정찰/proc/filesystemsalg 가 존재하는지 확인·/dev/crypto 혹은 AF_ALG 지원 여부 탐색.
초기 접근비특권 사용자 권한으로 위 소켓을 생성하고, in‑place 플래그(예: ALG_SET_AEAD_INPLACE)를 포함해 AD 길이를 조작한다.
실행·권한 획득커널이 AD 를 원본 버퍼와 동일 메모리 영역에 복사하려다 경계 검증을 누락 → out‑of‑bounds write 발생. 공격자는 임의 커널 구조체(예: cred, 함수 포인터)를 덮어써 root 권한을 획득한다.
지속얻은 루트로 modprobe, insmod 로 악성 모듈 삽입 혹은 sysctl·/etc/shadow 수정 등 영구화 수행.
영향전체 시스템 장악, 암호화된 파일·네트워크 트래픽 변조·유출, 서비스 거부 가능.
  • CVSS ↔ 실제 조건 매핑

    • AV:L → 로컬 사용자만 필요 (AF_ALG 인터페이스는 로컬에서만 접근 가능).
    • AC:L → 단순 API 호출만으로 실행 가능.
    • PR:L → 비특권 계정으로도 트리거 가능.
    • UI:N → 사용자 입력 불필요, 자동화된 스크립트로 재현 가능.
  • 실제 악용 가능성: EPSS 0.94545(실측)·KEV 등재·exploit 난이도 easy 로 판단되어 즉시 대응 필요 (우선순위 결정 논리: CVSS 7.8 + KEV → “immediate”).

악용 가능성: 이 취약점은 로컬(L) 환경에서만 발동되므로 공격자는 이미 시스템에 쉘 접근 권한을 가지고 있어야 합니다(Privilege Required = Low). 커널 내부의 algif_aead 인터페이스는 /dev/crypto와 같은 디바이스 파일을 통해 사용자 공간에서 호출될 수 있으며, 해당 IOCTL 파라미터에 조작된 AD(Associated Data)를 전달하면 인‑플레이스 복사 로직이 남아 있던 부분에서 메모리 오버라이트가 발생합니다. 공격 단계는 ① 로컬 계정 확보 → ② 취약한 IOCTL 호출을 통한 메모리 변조 → ③ 커널 권한 상승 혹은 서비스 거부(DoS)로 이어지는 단순 체인으로, 별도의 추가 취약점 없이도 완결됩니다. 난이도는 Attack Complexity = Low와 일치하는데, 이는 특별한 레이스 조건이나 복잡한 사전 준비가 필요 없으며, 파라미터 값만 정확히 조정하면 바로 이용 가능하기 때문입니다. EPSS 점수 0.94545(≈94 %)와 KEV에 등재된 사실은 실제 악용 사례가 빈번히 보고되고 있음을 의미하며, 이론적 심각도와 무관하게 실전 위협이 매우 높다는 근거가 됩니다. 따라서 공격 표면은 제한적이지만 노출된 디바이스 파일과 IOCTL 파라미터만 알면 쉽게 악용될 수 있는 구조임을 인식하셔야 합니다.

💥 영향 분석

  • 성공 시 공격자는 커널 메모리를 임의로 수정해 루트 권한을 획득한다.
  • 모든 로컬 프로세스와 파일 시스템, 네트워크 암호화 서비스가 위험에 노출된다(예: VPN, dm‑crypt 등).
  • 권한 상승 후 모듈 삽입·시스템 설정 변경으로 영구적인 백도어를 설치할 수 있다.

🔗 관련 취약점·체이닝

  • 추정: 동일 커널 버전에서 보고된 capabilities 검증 우회(CWE‑269)와 결합하면, 권한 상승 후 추가적인 특권 획득 단계 없이 바로 루트 쉘을 얻는 체인이 가능하다.
  • 추정: 다른 로컬 권한 상승 버그(예: CVE‑2024‑xxxx 등)와 연계해 초기 접근 없이도 커널 메모리 조작을 수행할 수 있다.
  • 패턴 수준: “AF_ALG → 메모리 복사 오류 → 커널 힙 오버플로우 → 권한 상승” → “루트 모듈 로드 → 영구화”.

🔎 탐지

  • auditd 규칙 예시
    text
    1-a always,exit -F arch=b64 -S socket -F a0=AF_ALG -k alg_socket
    2-a always,exit -F arch=b64 -S ioctl -F a1=ALG_SET_AEAD_INPLACE -k alg_aead_inplace
  • eBPF 프로그램으로 algif_aeadioctl 호출 및 비정상적인 AD 길이(예: 0 → 큰 값) 감시.
  • 커널 로그에 “algif_aead: in‑place” 와 같은 경고/BUG_ON 메시지가 나타나면 알림.
  • kprobescrypto_aead_encrypt 진입 시점의 인자 검증 실패 여부 모니터링.

🛡️ 완화 방안

  • 즉시 조치: 해당 커널 버전(4.14‑6.1, 5.11‑6.12, 6.13‑6.18, 6.19) 사용 중이면 패치를 적용하거나 CONFIG_CRYPTO_USER_API_AEAD=n 로 재컴파일해 algif_aead 인터페이스를 비활성화한다.
  • 운영 환경 점검: CONFIG_CRYPTO_USER_API_AEAD 가 실제 서비스에 필요 없는 경우 완전히 끄고, 사용 중이라면 영향을 받는 워크로드(컨테이너·VM 포함)를 식별 후 단계적 패치 계획을 수립한다.
  • 보호 강화: SELinux/AppArmor 정책에 AF_ALG 소켓 사용 제한 규칙 추가, auditd/eBPF 기반 실시간 모니터링 배포, 루트 권한 획득 시도 로그 보관 기간 연장.

이 보고서는 다중 소스 교차검증(일관성 확인)·실측 EPSS 0.94545·KEV 등재를 근거로 즉시 대응(immediate) 을 권고합니다.

⚖️ 위험도 / 우선순위

  • 조치: immediate (지금 즉시(24h 내))
  • 근거: CVSS=7.8 · KEV · EPSS=0.94545 · exploit=easy · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

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

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

로그인하기

불러오는 중…