Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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 검사기

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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 노드 이미지

빠른 시작

# 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:

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을 읽은 다음, 실행 중인 커널을 배포판 보안 팀이 공식 발표한 수정 버전과 비교합니다. 현재 버전 표는 다음을 포함합니다.

배포판패치된 커널 (≥)
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 참조

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

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에 기반하여 판정합니다.


가능한 판정

판정종료 코드의미
patched0실행 중인 커널이 공급업체 수정 버전 이상입니다.
mitigated0AF_ALG가 차단되었고 모듈이 로드되지 않았습니다.
likely_mitigated0모듈이 블랙리스트 처리되고 로드되지 않았습니다. 실시간 프로브는 불가능했습니다.
vulnerable1커널이 패치되지 않았고 algif_aead / AF_ALG에 도달할 수 있습니다.
unknown2판단할 신호가 충분하지 않습니다. 잠재적으로 취약한 상태로 취급하십시오.
not_applicable3Linux에서 실행 중이 아닙니다.

자동화를 위한 JSON 출력

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

./check-copy-fail.sh --json

출력 예시:

{
  "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"
}

완화 방법

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

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

# 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 암호를 합법적으로 사용하는 애플리케이션은 모두 중단됩니다(대부분의 서버에서는 드묾 — 먼저 스테이징 환경에서 확인하십시오).

# 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을 비활성화할 수 있습니다. 재부팅이 필요합니다.

sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"

sudo reboot

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


실행 예시

== 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 — 자유롭게 사용, 수정, 배포할 수 있습니다. 보증은 없습니다.

도구 다운로드