Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
copy-fail-checker — Copy Fail Linux 커널 취약점(CVE-2026-31431)용 읽기 전용 Bash 검사기 | Kitploit
도구/GitHubGitHub/samanzamani/copy-fail-checker
Privilege EscalationVulnerability ScannersVulnerability AnalysisExploitationScripting & AutomationCryptographyLearning & Education
GitHubsamanzamani/copy-fail-checker

copy-fail-checker

Copy Fail Linux 커널 취약점(CVE-2026-31431)용 읽기 전용 Bash 검사기

저장소 보기
512개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Copy Fail Checker — CVE-2026-31431

Linux 시스템이 Copy Fail 로컬 권한 상승 취약점(CVE-2026-31431)에 노출되어 있는지 알려주는, 의존성이 적은 소형 Bash 스크립트입니다.

이 스크립트는 읽기 전용입니다. 버그를 악용하지 않으며, 커널 모듈을 로드하지 않고, 시스템을 변경하지 않습니다.


Copy Fail이란?

Copy Fail은 Linux 커널의 authencesn AEAD 암호화 템플릿에 존재하는 로직 버그로, AF_ALG(algif_aead) 소켓 인터페이스를 통해 사용자 공간에서 접근할 수 있습니다.

필드값
CVECVE-2026-31431
공개일2026-04-29
CVSS v3.17.8 (높음)
분류로컬 권한 상승
영향받는 구성 요소crypto/authencesn + crypto/algif_aead
도입 시점2017년(algif_aead.c의 in-place AEAD 최적화)
메인라인 수정커밋 a664bf3d603d, 2026-04-01 병합

왜 중요한가

권한이 없는 로컬 사용자는 읽을 수 있는 모든 파일의 페이지 캐시에 대한 결정적이고 통제된 4바이트 쓰기를 트리거할 수 있습니다. 공개된 개념 증명(PoC, Python 732바이트)은 이 프리미티브를 사용하여 setuid 바이너리를 덮어쓰고 2017년 이후 출시된 사실상 모든 주류 배포판에서 root 권한을 획득합니다.

영향받는 대상

algif_aead가 활성화된 채 2017년 이후 빌드된 커널을 제공하는 모든 Linux 배포판이 해당됩니다. 영향을 받는 것으로 확인된 계열은 다음과 같습니다.

  • Ubuntu 18.04 → 25.10 (Ubuntu 26.04 "Resolute"는 영향 없음)
  • Debian (현재 지원되는 모든 스위트)
  • RHEL / AlmaLinux / Rocky / CentOS Stream 8, 9, 10
  • SUSE Linux Enterprise / openSUSE
  • Amazon Linux 2023
  • 위 배포판을 기반으로 하는 대부분의 컨테이너 호스트 및 관리형 Kubernetes 노드 이미지

빠른 시작

root@kitploit:~
# Download the script
curl -fsSLO https://raw.githubusercontent.com/samanzamani/copy-fail-checker/main/check-copy-fail.sh

# Make it executable
chmod +x check-copy-fail.sh

# Run it
./check-copy-fail.sh

Or clone the repo:

root@kitploit:~
git clone https://github.com/samanzamani/copy-fail-checker.git
cd copy-fail-checker
./check-copy-fail.sh

이 스크립트는 root 권한이 필요하지 않습니다. 일반 사용자로 실행하면 공격 표면을 가장 현실적으로 볼 수 있습니다. 공격자가 가질 수 있는 정확한 환경이기 때문입니다.


스크립트가 검사하는 항목

이 스크립트는 세 가지 독립적인 검사를 수행하고 이를 하나의 판정으로 결합합니다.

1. 커널 버전

/etc/os-release와 uname -r을 읽은 다음, 실행 중인 커널을 배포판 보안 팀이 공식 발표한 수정 버전과 비교합니다. 현재 버전 표는 다음을 포함합니다.

배포판이 표에 없으면 스크립트는 아래의 런타임 검사로 대체합니다.

2. algif_aead 모듈 상태

스크립트는 아무것도 수정하지 않고 다음 네 가지를 검사합니다.

  • 모듈이 현재 로드되었는지 여부(lsmod)
  • 모듈이 로드 가능한 상태인지 여부(modinfo)
  • 모듈이 /etc/modprobe.d, /usr/lib/modprobe.d 또는 /run/modprobe.d에서 블랙리스트 처리되었는지 여부
  • 모듈이 /boot/config-<uname> 또는 /proc/config.gz에서 **내장(builtin)**되었는지 여부

블랙리스트 처리되고 로드되지 않았으며 내장되지 않은 모듈은 패치되지 않은 커널에서도 공격 표면을 차단합니다.

3. AF_ALG 소켓 도달 가능성

가장 신뢰할 수 있는 신호는 공격자가 실제로 보게 될 상황입니다. 스크립트는 소형 Python 프로브(socket.socket(AF_ALG, SOCK_SEQPACKET, 0) 후 authencesn(hmac(sha256),cbc(aes)) AEAD 템플릿에 bind())를 사용하여 권한이 없는 컨텍스트에서 AF_ALG 소켓을 생성하고 바인딩할 수 있는지 확인합니다. 프로브는 소켓을 생성·바인딩한 후 즉시 닫으므로 악용 가능한 어떤 것도 남기지 않습니다.

python3이 설치되어 있지 않으면 프로브를 건너뛰고 검사 1과 2에 기반하여 판정합니다.


가능한 판정


자동화를 위한 JSON 출력

파이프라인, 구성 관리 또는 플릿 스캔의 경우 --json을 전달하십시오.

root@kitploit:~
./check-copy-fail.sh --json

출력 예시:

root@kitploit:~
{
  "verdict": "vulnerable",
  "distro_id": "ubuntu",
  "distro_version_id": "24.04",
  "kernel": "6.8.0-31-generic",
  "patched_version": "",
  "kernel_status": "unknown",
  "module_loaded": 0,
  "module_builtin": 0,
  "module_available": 1,
  "module_blacklisted": 0,
  "af_alg_status": "reachable"
}

완화 방법

권장: 공급업체 커널 업데이트 설치

이것이 유일한 완전한 해결책입니다. 업데이트 후 재부팅하여 새 커널이 실제로 실행되도록 하십시오.

root@kitploit:~
# Debian / Ubuntu
sudo apt update && sudo apt full-upgrade && sudo reboot

# RHEL / AlmaLinux / Rocky / CentOS Stream
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot

# openSUSE / SLES
sudo zypper refresh && sudo zypper update && sudo reboot

# Amazon Linux 2023
sudo dnf upgrade --releasever=latest && sudo reboot

임시 대응: algif_aead 비활성화

지금 당장 패치된 커널로 재부팅할 수 없다면 취약한 모듈을 블랙리스트에 추가하십시오. 이렇게 하면 AF_ALG AEAD 암호를 합법적으로 사용하는 애플리케이션은 모두 중단됩니다(대부분의 서버에서는 드묾 — 먼저 스테이징 환경에서 확인하십시오).

root@kitploit:~
# Persist the blacklist across reboots
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf

# Unload it from the running kernel right now
sudo rmmod algif_aead 2>/dev/null || true

모듈이 내장(builtin)된 경우 블랙리스트는 작동하지 않지만 initcall을 비활성화할 수 있습니다. 재부팅이 필요합니다.

root@kitploit:~
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"

sudo reboot

컨테이너 워크로드의 경우 seccomp 프로필에서도 AF_ALG 소켓 패밀리를 차단하여 손상된 컨테이너가 커널 표면에 도달하지 못하게 하십시오.


실행 예시

root@kitploit:~
== System information ==
[INFO]    Distribution : Ubuntu 24.04.2 LTS (ubuntu 24.04)
[INFO]    Kernel       : 6.8.0-31-generic

== Check 1 / 3 — Kernel version ==
[WARN]    No vendor-fixed kernel version is recorded for ubuntu 24.04.
[WARN]    Falling back to runtime mitigation checks below.

== Check 2 / 3 — algif_aead kernel module ==
[WARN]    algif_aead is not loaded but can be autoloaded on demand (no blacklist found).

== Check 3 / 3 — AF_ALG socket reachability ==
[VULN]    AF_ALG sockets are reachable from this unprivileged context.

== Verdict ==
[VULN]    This system appears to be VULNERABLE to CVE-2026-31431.
[VULN]    Apply the vendor kernel update or blacklist algif_aead as a temporary mitigation.

제한 사항

  • 패치 버전 표는 위에 나열된 계열만 다룹니다. 확장을 위한 PR은 언제든 환영합니다.
  • 스크립트는 uname -r을 신뢰합니다. out-of-tree 또는 재빌드된 커널을 실행 중인 경우 버전 비교가 수정 사항의 실제 백포트 여부를 반영하지 못할 수 있습니다.
  • 라이브 컨테이너/샌드박스 환경에서는 단순히 seccomp가 적용 중이기 때문에 AF_ALG에 대해 blocked_permission을 보고할 수 있습니다. 호스트 커널 자체는 여전히 취약할 수 있습니다.

참고 자료

  • CERT-EU 권고 2026-005
  • Xint 공개: 모든 주요 Linux 배포판에서 732바이트로 root 권한 획득
  • AlmaLinux: CVE-2026-31431 패치 공개
  • Ubuntu: Copy Fail 취약점 수정 사항 제공
  • Microsoft Security Blog: 클라우드 환경의 Copy Fail
  • Sophos: PoC 익스플로잇 공개
  • copy.fail에 대한 SUSE의 대응
  • The Hacker News 보도
  • Bugcrowd: Copy Fail에 대해 우리가 아는 것
  • The Register 보도

라이선스

MIT — 자유롭게 사용, 수정, 배포할 수 있습니다. 보증은 없습니다.

도구 다운로드
배포판패치된 커널 (≥)
AlmaLinux / RHEL / Rocky / CentOS 84.18.0-553.121.1.el8_10
AlmaLinux / RHEL / Rocky / CentOS 95.14.0-611.49.2.el9_7
AlmaLinux / RHEL / Rocky / CentOS 106.12.0-124.52.2.el10_1
Ubuntu 26.04 이상 ("Resolute")영향 없음
Ubuntu 18.04 – 25.10롤링, apt 참조
Debian (모든 스위트)롤링, DSA 참조
판정종료 코드의미
patched0실행 중인 커널이 공급업체 수정 버전 이상입니다.
mitigated0AF_ALG가 차단되었고 모듈이 로드되지 않았습니다.
likely_mitigated0모듈이 블랙리스트 처리되고 로드되지 않았습니다. 실시간 프로브는 불가능했습니다.
vulnerable1커널이 패치되지 않았고 algif_aead / AF_ALG에 도달할 수 있습니다.
unknown2판단할 신호가 충분하지 않습니다. 잠재적으로 취약한 상태로 취급하십시오.
not_applicable3Linux에서 실행 중이 아닙니다.