CVE-2026-31431 CISA KEV 등재가 뜻하는 것: 24~48시간 패치 SLA를 정하는 법

Copy Fail(CVE-2026-31431)의 CISA KEV 등재와 BOD 22-01 연방 패치 의무화를 계기로, KEV 기반 패치 우선순위 SLA 체계와 다층 방어 설계를 정리한다.

2026-08-12 · 최초 발행 2026-05-06

2026년 4월 말 공개된 CVE-2026-31431은 Linux 커널 암호화 서브시스템에 2017년부터 잠복해 있던 로직 결함으로, 비권한 로컬 사용자가 732바이트짜리 Python 스크립트 한 줄로 루트 셸을 얻을 수 있는 치명적인 권한 상승 취약점이다. CVSS 7.8의 이 취약점은 Ubuntu·Red Hat·SUSE·Amazon Linux 등 주요 배포판 전체에 영향을 미치며, CISA는 활발한 실제 공격 증거를 바탕으로 2026년 5월 1일 KEV(Known Exploited Vulnerabilities) 카탈로그에 등재하고 연방 기관에 5월 15일까지 패치를 완료하도록 명령했다.

취약점 스냅샷

항목 내용
CVE ID CVE-2026-31431
별칭 Copy Fail
CVSS 점수 7.8 (High)
공격 벡터 로컬(AV:L)
권한 필요 낮음(PR:L)
사용자 상호작용 불필요(UI:N)
영향 범위 기밀성·무결성·가용성 모두 High
공개일 2026년 4월 29일
KEV 등재일 2026년 5월 1일
FCEB 패치 기한 2026년 5월 15일

이 취약점은 Linux 커널의 AF_ALG(userspace crypto API)algif_aead 모듈에 위치한다. 구체적으로는 2017년 도입된 인플레이스 최적화(commit 72548b093ee3)에서 비롯된 로직 결함이며, 업스트림 수정 커밋(a664bf3d603d)은 2026년 4월 1일 메인라인에 병합됐다. 수정된 커널 버전은 6.18.22, 6.19.12, 7.0이다.

원인은 스캐터-개더(scatter-gather) 리스트의 잘못된 공유에 있다. 2017년 커밋은 인플레이스 연산 최적화를 위해 req->src = req->dst로 설정한 뒤 소스 스캐터리스트의 태그 페이지를 출력 스캐터리스트에 sg_chain()으로 연결하는 방식을 도입했다. 문제는 사용자 공간이 splice() 시스템 콜로 해당 소켓에 데이터를 공급할 때 발생한다. splice()로 공급된 태그 페이지는 스플라이스된 파일의 페이지 캐시를 직접 참조하는데, authencesn(hmac(sha256),cbc(aes)) 알고리즘이 확장 시퀀스 번호(ESN) 재정렬을 위한 스크래치 공간으로 assoclen + cryptlen 오프셋에 4바이트를 쓰면서 스플라이스된 파일의 캐싱된 메모리 영역을 덮어쓰게 된다. 파일 권한을 우회해 디스크 이미지가 아닌 메모리 내 캐시만 변조할 수 있다는 뜻이다. 공격자는 이 통제된 4바이트 쓰기를 /usr/bin/su와 같은 SUID 바이너리의 페이지 캐시로 겨냥해 루트 셸을 획득한다.

루트 셸로 이어지는 익스플로잇

비권한 로컬 사용자AF_ALG 소켓 생성(algif_aead 모듈)splice() 호출파일 소켓페이지 캐시 공유(SUID 바이너리 대상)authencesn 알고리즘4바이트 스크래치 쓰기SUID 바이너리페이지 캐시 오염변조된 /usr/bin/su 실행루트 획득전체 시스템 장악

공격자는 socket(AF_ALG, SOCK_SEQPACKET, 0) 호출로 AF_ALG 소켓을 생성하고, authencesn(hmac(sha256),cbc(aes)) 알고리즘을 AEAD 타입으로 바인딩한 뒤, splice()/usr/bin/su를 소켓으로 공급해 페이지 캐시를 스캐터리스트에 노출시킨다. 커널 내부 연산이 그 페이지 캐시에 4바이트를 덮어쓰면서 SUID 바이너리가 변조되고, 변조된 바이너리를 실행하면 루트 셸이 반환된다.

공개된 PoC 코드는 732바이트 분량의 Python 스크립트로, 커널 모듈 없이, 네트워크 없이, 컨테이너 내부 루트 없이도 동작한다. 컨테이너화 환경과 Kubernetes 클러스터, CI/CD 러너에서도 강력한 탈출 벡터가 된다는 뜻이다.

CVE-2026-31431은 2017년 이후 빌드된 모든 Linux 커널에 영향을 미친다. 주요 배포판별 영향 현황은 다음과 같다.

배포판 영향 버전 패치 상태 (2026.05.06 기준)
Ubuntu 24.04 LTS 영향 있음 패치 배포 완료
Red Hat Enterprise Linux 10.1 영향 있음 패치 배포 완료
SUSE 16 영향 있음 패치 배포 완료
Amazon Linux 2023 영향 있음 패치 배포 완료
Debian 영향 있음 패치 배포 완료
AlmaLinux 영향 있음 2026.05.01 패치 완료
CloudLinux 영향 있음 패치 배포 완료
Fedora 영향 있음 패치 배포 완료
Arch Linux 영향 있음 패치 배포 완료

AWS Lambda와 Fargate는 Firecracker 마이크로VM을 사용해 테넌트별로 커널이 격리돼 있어 공유 페이지 캐시 위험은 없다. 그러나 EC2 인스턴스, EKS 노드, 셀프 매니지드 Kubernetes 워커 등 일반적인 Linux 환경은 모두 영향권 안에 있다.

권한 상승 취약점의 여러 얼굴

CVE-2026-31431은 Linux 권한 상승 취약점의 여러 유형 중 하나를 대표한다. 방어 설계를 위해 주요 유형을 짚어본다.

SUID(Set User ID) 바이너리는 실행 시 파일 소유자(대부분 root)의 권한으로 동작한다. Copy Fail은 SUID 바이너리의 페이지 캐시를 직접 조작하는 방식으로 이 메커니즘을 우회한다. 전통적인 SUID 공격(잘못 구성된 SUID 바이너리, GTFOBins 등)과 달리, 이 취약점은 정상적인 /usr/bin/su 자체를 표적으로 삼는다.

Linux 사용자 네임스페이스(user namespace)는 비권한 사용자도 자신만의 네임스페이스 내에서 root처럼 동작할 수 있게 한다. 이를 악용하면 네임스페이스 내부에서 획득한 가상 권한을 커널 버그로 호스트 root로 승격시키는 공격 체인이 구성된다. RHEL과 Ubuntu에서는 kernel.unprivileged_userns_clone 커널 파라미터로 비권한 네임스페이스 생성을 제한할 수 있다.

실제 공격에서는 단일 취약점보다 체인(chain) 방식이 더 위험하다. 웹 RCE로 비권한 서비스 계정을 탈취한 뒤 Copy Fail로 로컬 권한을 상승시키고, 이후 컨테이너 탈출 취약점으로 호스트를 장악하는 3단계 체인이 대표적인 공격 패턴이다. CVE-2026-31431 자체는 원격 공격 벡터(AV:N)가 아닌 로컬(AV:L)이지만, SSH 발판, CI 러너 코드 주입, 웹 RCE와 결합되면 실질적인 완전 타협(full compromise)으로 이어진다.

seccomp-bpf는 프로세스가 사용할 수 있는 시스템 콜을 필터링하지만, AF_ALG 소켓과 splice()는 많은 프로파일에서 허용된 상태다. capabilities 시스템 역시 CAP_SYS_ADMIN 없이도 이 공격이 가능하므로 일반적인 capabilities 제약만으로는 방어가 불충분하다.

KEV 등재는 아무 취약점에나 붙지 않는다

CISA가 취약점을 KEV 카탈로그에 추가하려면 세 가지 조건이 모두 충족되어야 한다. MITRE 또는 CNA(CVE Numbering Authority)가 부여한 공식 CVE 식별자가 있어야 하고(CVE ID 할당), 단순 PoC 존재가 아닌 실제 야생(in the wild) 악용 사례가 신뢰할 수 있는 출처를 통해 확인되어야 하며(활발한 실제 공격 증거), 벤더가 제공하는 패치·마이그레이션 경로·공식 완화 조치가 존재해야 한다(명확한 치료 행위 존재). CVE-2026-31431은 세 조건을 모두 충족했다. 공개 PoC가 즉시 실전 공격에 활용되었고, 주요 배포판의 패치가 준비되었으며, 신뢰할 수 있는 위협 인텔리전스가 활발한 익스플로잇을 확인했다.

2021년 11월 CISA가 발표한 구속력 있는 운영 지침 **BOD 22-01(Binding Operational Directive)**은 모든 연방 민간 행정부(FCEB) 기관에 KEV 카탈로그 등재 취약점을 지정된 기한 내 반드시 치료하도록 의무화했다. CVE-2026-31431의 경우 등재일(5월 1일)로부터 14일 이내인 5월 15일이 기한으로 설정됐다.

BOD 22-01의 법적 구속력은 FCEB 기관에만 적용되지만, CISA는 민간 조직에도 KEV 기반 우선순위 관리를 강력히 권고한다. 실무적으로 검증된 3계층 SLA 프레임워크는 다음과 같다.

KEV 등재 + 인터넷 노출즉시 패치24~48시간KEV 등재 + 내부 시스템14일 이내BOD 22-01 준용KEV 미등재 + Critical CVSS30일 이내표준 SLAHigh CVSS + 미등재90일 이내일반 패치 주기

CVE-2026-31431은 CVSS 7.8 + KEV 등재 + 클라우드 환경 광범위 노출의 조합이므로, 인터넷에 직간접으로 연결된 모든 Linux 시스템에 대해 24~48시간 패치를 목표로 해야 한다.

패치 전 즉시 조치와 배포판별 명령

패치 전 즉각 적용 가능한 임시 완화 방법은 AF_ALG 소켓 생성 차단이다.

# AF_ALG(38) 소켓 생성 차단 - iptables(커널 소켓 레이어 수준)
# seccomp 프로파일 또는 LSM 정책으로 더 정교하게 제어 가능
sysctl -w kernel.perf_event_paranoid=3

# 컨테이너 환경: seccomp 프로파일에서 socket(AF_ALG) 차단
# /etc/docker/seccomp-profile.json 에 AF_ALG 소켓 규칙 추가

각 배포판의 공식 패치 명령은 다음과 같다.

Ubuntu / Debian

sudo apt update && sudo apt upgrade -y linux-image-$(uname -r)
sudo reboot

Red Hat Enterprise Linux / AlmaLinux

sudo dnf update kernel -y
sudo reboot

SUSE / openSUSE

sudo zypper patch
sudo reboot

Amazon Linux 2023

sudo dnf update kernel -y
sudo reboot

패치 후 적용 여부는 아래로 확인한다.

uname -r
# 6.18.22 이상, 6.19.12 이상, 또는 7.0 이상이면 안전

패치만으로는 끝나지 않는다

패치가 기본이지만, 취약점 발생에 대비한 다층 방어(defense-in-depth)도 반드시 구축해야 한다.

최소 권한 원칙(PoLP) 측면에서는 find / -perm -4000 -type f 2>/dev/null로 불필요한 SUID 바이너리를 열거해 chmod u-s로 제거하고, CAP_SYS_ADMIN·CAP_SYS_PTRACE 같은 광범위한 capabilities 대신 필요한 최소 capabilities만 프로세스에 부여하며, 서비스별 seccomp-bpf 프로파일로 AF_ALG 소켓처럼 애플리케이션이 쓰지 않는 시스템 콜을 차단해야 한다.

SELinux(Red Hat 계열)와 AppArmor(Ubuntu/Debian 계열)는 맨더토리 접근 제어(MAC)로 프로세스가 접근할 수 있는 파일·소켓·시스템 콜을 정책으로 제한한다. Copy Fail 공격 체인에서 AF_ALG 소켓 접근을 SELinux/AppArmor 정책으로 비권한 사용자 프로세스에 허용하지 않으면 익스플로잇 경로 자체가 차단된다.

# SELinux 상태 확인 및 Enforcing 모드 설정
sestatus
setenforce 1

# AppArmor 상태 확인 및 프로파일 로드
aa-status
aa-enforce /etc/apparmor.d/*

컨테이너 환경에서는 호스트 커널을 직접 접근하게 되는 --privileged 플래그를 금지하고, restricted 프로파일로 allowPrivilegeEscalation: false·runAsNonRoot: true를 강제하는 Pod Security Standards를 적용하며, 불필요한 경우 kernel.unprivileged_userns_clone=0으로 비권한 사용자 네임스페이스를 비활성화하고, Falco·Sysdig 같은 런타임 위협 탐지 도구로 비정상적인 splice() + AF_ALG 소켓 조합 이벤트를 탐지해야 한다.

Copy Fail은 디스크 이미지가 아닌 페이지 캐시만 변조한다는 특성이 있다. 즉, 전통적인 파일 해시 기반 FIM(AIDE, Tripwire 등)은 이 공격을 실시간으로 탐지하지 못할 수 있다. 커널 레벨 이벤트 기반 FIM 또는 eBPF 기반 감사 로그로 페이지 캐시 변조 이벤트를 탐지하는 방식이 더 효과적이다.

CVE-2026-31431 'Copy Fail'은 9년간 수억 대의 Linux 시스템에 잠복해 있다가 732바이트라는 최소한의 코드로 루트 권한을 내주는 취약점으로, 현재까지 공개된 Linux 커널 권한 상승 취약점 중 가장 광범위한 영향 범위를 가진 사례 중 하나다. CISA KEV 등재와 FCEB 14일 패치 명령은 이 취약점에 대한 즉각적인 조치가 선택이 아닌 의무임을 재확인한다. 커널 패치가 최우선이지만, 패치만으로는 충분하지 않다. SELinux·AppArmor·seccomp·최소 권한 원칙·런타임 위협 탐지로 구성된 다층 방어 아키텍처를 갖춰야 다음 번 'Copy Fail'급 취약점이 등장했을 때도 피해를 최소화할 수 있다.

Sources

CVE-2026-31431CISAKEV패치우선순위관리BOD22-01권한상승방어