
CVE-2026-31431(Copy Fail)에 대한 노출을 감지하고, 선택적으로 취약한 algif_aead 커널 모듈을 비활성화하여 완화하며, 판정 결과와 패치 상태를 제공합니다.
CVE-2026-31431 (Copy Fail) 노출 여부를 탐지하고, 취약한 시스템에서 algif_aead 커널 모듈을 비활성화하여 호스트 수준 완화 조치를 선택적으로 적용합니다.
copyfail-check.sh — 커널 패치 상태, 런타임 모듈 노출 및 완화 상태를 확인합니다.--mitigate를 통한 선택적 자동 완화.NOT AFFECTED, PATCHED, NOT EXPLOITABLE, MITIGATED, MITIGATED (REBOOT PENDING) 또는 AFFECTED.2017년에 도입된 제자리(in-place) AEAD 최적화(커밋 72548b093ee3, 커널 4.14)로 인해 권한이 없는 로컬 공격자가 읽기 가능한 모든 파일에 대해 제어된 페이지 캐시 쓰기 프리미티브를 획득할 수 있으며, 이를 통해 루트로 권한 상승이 가능합니다. 컨테이너 환경에서는 동일한 프리미티브가 컨테이너 탈출을 가능하게 할 수 있습니다.
4.14 이전 커널은 영향을 받지 않습니다. 여기에는 Ubuntu의 3.13 커널(Trusty 14.04 GA)과 4.4 커널(Xenial 16.04 GA, Trusty HWE)이 포함됩니다 — 해당 커널은 취약한 커밋 이전 버전입니다.
| 역할 | 커밋 |
|---|---|
| 취약점 도입 | 72548b093ee3 (커널 4.14, 2017) |
| 수정 — 메인라인 / 커널 7.0 | a664bf3d603d |
배포판은 자체 커밋 식별자로 패치를 백포트합니다. 이 스크립트는 패키지 변경 로그에서 CVE ID를 검색하며, 이는 백포트된 커널의 경우 업스트림 해시보다 더 신뢰할 수 있습니다.
Ubuntu 보안 팀은 /etc/modprobe.d/disable-algif_aead.conf에 install algif_aead /bin/false를 기록하는 kmod 패키지 업데이트를 배포합니다. 이 스크립트는 동일한 내용으로 동일한 파일을 생성하며 해당 방식과 완전히 호환됩니다. 공식 패키지 업데이트(sudo apt install --only-upgrade kmod)를 적용하는 것이 Ubuntu에서 권장되는 방법입니다. 이 스크립트는 비-Ubuntu 시스템 또는 업데이트 전 사전 점검을 위한 동등한 적용 범위를 제공합니다.
chmod +x copyfail-check.sh
sudo ./copyfail-check.sh # 탐지만 수행
sudo ./copyfail-check.sh --mitigate # 탐지 + 영향받는 경우 완화 적용
main 브랜치에서 스크립트를 직접 스트리밍하여 실행합니다. bash -s -- 형식은 -- 이후의 인수를 스크립트 자체로 전달하므로 --mitigate가 bash가 아닌 스크립트에 도달합니다.
# 탐지만 수행
curl -fsSL https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash
# 탐지 + 완화
curl -fsSL https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash -s -- --mitigate
wget 동일 명령:
wget -qO- https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash
wget -qO- https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash -s -- --mitigate
보안 참고. 원격 스크립트를 권한 있는 셸로 직접 파이프하는 것은 실행 시점에 URL이 제공하는 모든 내용을 신뢰한다는 의미입니다. 일회성 사전 점검에는 허용 가능하지만, 반복 사용이나 프로덕션 환경에서는 특정 커밋으로 고정하고 먼저 스크립트를 검사하십시오:
curl -fsSL https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/<commit-sha>/copyfail-check.sh -o copyfail-check.sh less copyfail-check.sh sudo bash copyfail-check.sh --mitigate
NOT AFFECTED로 종료/sys/kernel/livepatch/ 아래 로드된 커널 라이브패치, kpatch list 및 canonical-livepatch statusubuntu-security-status --cves, dnf updateinfo list cves, zypper patch-checkalgif_aead 모듈 사용 가능 여부(modinfo) 및 로드 상태(lsmod)/etc/modprobe.d/ 아래 기존 modprobe 기반 차단 규칙 — 동등한 무력화(install … /bin/false|/bin/true|/sbin/nologin) 및 허용; 차단이 Ubuntu kmod 패키지에서 비롯되었는지 식별영향받는 시스템에서 --mitigate를 사용하면 스크립트는 다음을 수행합니다:
install algif_aead /bin/false가 포함된 /etc/modprobe.d/disable-algif_aead.conf 생성algif_aead를 언로드 시도파일 이름 /etc/modprobe.d/disable-algif_aead.conf는 공식 Ubuntu kmod 패키지 업데이트가 기록하는 파일과 일치하므로 두 방식은 상호 교환 가능하고 호환됩니다.
algif_aead 비활성화는 일반적인 암호화 경로에 안전합니다: dm-crypt, LUKS, kTLS, IPsec, 기본 OpenSSL/GnuTLS 사용, SSH 및 커널 키링 암호화는 영향을 받지 않습니다.afalg 엔진을 명시적으로 로드하는 애플리케이션은 하드웨어 가속을 잃게 되며 소프트웨어 암호화로 대체되어야 하지만, 대체를 트리거하려면 재부팅이 필요할 수 있습니다.| 날짜 | 이벤트 |
|---|---|
| 2026-03-23 | Linux 커널 보안 팀에 보고 |
| 2026-04-01 | 메인라인에 수정 커밋 |
| 2026-04-29 | 공개 공개 |
sudo 또는 루트 셸)uname, modinfo, lsmod, awk, grepdpkg — Debian/Ubuntu 변경 로그 검색 및 kmod 버전 확인lsb_release — kmod 힌트를 위한 Ubuntu 릴리스 감지rpm — RHEL/Fedora 변경 로그 검색kpatch / canonical-livepatch 및 /sys/kernel/livepatch/ — 라이브패치 감지ubuntu-security-status, dnf updateinfo, — 배포판 CVE 도구.
├── copyfail-check.sh
└── README.md
| 속성 | 값 |
|---|
| CVE ID | CVE-2026-31431 |
| 심각도 | 높음 (CVSS 3.1: 7.8) |
| 구성 요소 | algif_aead — 커널 AF_ALG AEAD 암호화 인터페이스 |
| 공격 유형 | 로컬 권한 상승; 컨테이너 탈출 (공개 PoC 아직 없음) |
| 영향받는 커널 | 4.14 이상 (아래 참조) |
| 공개일 | 2026-04-29 |
| 수정 — stable 6.18.x |
fafe0fa2995a |
| 수정 — stable 6.19.x | ce42ee423e58 |
| 릴리스 | linux 커널 | kmod 완화 (수정 버전) |
|---|
| Trusty 14.04 | 4.15 커널만 해당; 3.13 및 4.4는 영향 없음 | 15-0ubuntu7+esm1 |
| Xenial 16.04 | 4.15 커널만 해당; 4.4는 영향 없음 | 22-1ubuntu5.2+esm1 |
| Bionic 18.04 | 영향받음 | 24-1ubuntu3.5+esm1 |
| Focal 20.04 | 영향받음 | 27-1ubuntu2.1+esm1 |
| Jammy 22.04 | 영향받음 | 29-1ubuntu1.1 |
| Noble 24.04 | 영향받음 | 31+20240202-2ubuntu7.2 |
| Questing 25.10 | 영향받음 | 34.2-2ubuntu1.1 |
| Resolute 26.04 | 영향받지 않음 | 업데이트 불필요 |
blacklist/proc/modules의 모듈 참조 횟수(3열)를 통한 활성 AF_ALG 사용; /etc/ssl 또는 /etc/pki/tls의 OpenSSL afalg 엔진 참조도 플래그 지정| 판정 | 의미 |
|---|
NOT AFFECTED | 커널이 4.14 이전이거나, 패치되었고 모듈을 사용할 수 없음 |
PATCHED | 커널 변경 로그/도구가 수정 사항 존재를 확인함 |
NOT EXPLOITABLE | 이 시스템에서 모듈을 사용할 수 없음 |
MITIGATED | modprobe.d를 통해 모듈이 차단됨; 커널은 여전히 패치되지 않음 — 가능할 때 업데이트 |
MITIGATED (REBOOT PENDING) | 차단이 기록되었지만 모듈이 여전히 로드됨; rmmod로 언로드하거나 재부팅 |
AFFECTED | 커널이 취약 범위에 있고 algif_aead를 사용할 수 있음 |
zypper patch-check