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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
copyfail-check — 보관됨, codesource/cve-check로 이동됨. Linux 시스템에서 CVE-2026-31431(Copy Fail) 노출 및 완화 조치를 탐지하는 셸 스크립트: 커널 확인, 모듈 상태, 부팅 매개변수, AF_ALG 도달 가능성, 배포판 패치 상태. | Kitploit
도구/GitHubGitHub/codesource/copyfail-check
Vulnerability ScannersVulnerability AnalysisConfiguration AuditingDevSecOpsIncident Response
GitHubcodesource/copyfail-check

copyfail-check

보관됨, codesource/cve-check로 이동됨. Linux 시스템에서 CVE-2026-31431(Copy Fail) 노출 및 완화 조치를 탐지하는 셸 스크립트: 커널 확인, 모듈 상태, 부팅 매개변수, AF_ALG 도달 가능성, 배포판 패치 상태.

저장소 보기
2465일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

copyfail-check

[!IMPORTANT] 이 저장소는 아카이브되었습니다. Copy Fail 검사는 이제 다른 취약점 검사 및 수정 사항을 적용하는 선택적 --fix 모드와 함께 **cve-check**에 있습니다. 이 검사에 대해서는 checks/CVE-2026-31431을 참조하세요.

curl -fsSL https://raw.githubusercontent.com/codesource/cve-check/main/cve-check.sh | sudo bash -s -- CVE-2026-31431

아래의 check_copyfail.sh는 여전히 작동하지만 더 이상 업데이트되지 않습니다.

Linux 커널 취약점을 탐지하고, 완화 상태를 확인하며, 수정을 안내하는 셸 스크립트 — 로컬에서 또는 SSH, Ansible, pssh를 통해 여러 서버에서 실행하도록 설계되었습니다.


CVE-2026-31431 — Copy Fail

Copy Fail은 Linux 커널의 algif_aead 암호화 모듈에 존재하는 고위험 로컬 권한 상승(LPE) 취약점입니다. 2017년에 도입된 논리 결함으로 인해 권한이 없는 로컬 사용자가 읽을 수 있는 모든 파일의 페이지 캐시에 제어된 4바이트를 기록할 수 있으며, 이는 setuid 바이너리를 덮어써 root 권한을 획득하기에 충분합니다. 작동하는 732바이트 Python 개념 증명(PoC)이 존재하며 공개되어 있습니다.

CVECVE-2026-31431
CVSS7.8 (높음)
공개일2026년 4월 29일
영향 범위Linux 커널 4.13 – 6.x (2017–2026)
배포판Ubuntu, RHEL, SUSE, Debian, Amazon Linux 및 대부분의 기타 배포판
원격 악용 가능아니요 — 로컬 접근 필요
패치 제공 여부부분적 — 사용 중인 배포판의 보안 공지를 확인하세요

스크립트가 확인하는 항목

확인 항목root 필요 여부
커널 버전 — 영향받는 범위(≥ 4.13)에 해당하는지 여부아니요
algif_aead 모듈 — 로드됨, 디스크에 존재함, 또는 블랙리스트에 등록됨아니요
부팅 매개변수 — initcall_blacklist=algif_aead_init 존재 여부아니요
AF_ALG 소켓 접근 가능성 — 악용 경로가 열려 있는지 여부아니요
SELinux 상태아니요
AppArmor 상태예 — root 없이는 부분 출력만 가능
배포판 패치 상태 — 커널 변경 로그에 CVE가 나열됨아니요

스크립트를 실행하는 데 root는 필요하지 않습니다 — AppArmor 상태를 제외한 모든 확인은 일반 사용자로 작동합니다. 완전한 결과를 위해서는 sudo로 실행하는 것이 권장되며, curl에서 파이프로 실행할 때는 더 안전한 선택입니다.

호환성

이 스크립트는 모든 주요 Linux 배포판에서 작동하도록 설계되었습니다:

배포판 계열패키지 관리자 확인모듈 경로
Debian, Ubuntudpkg + 커널 변경 로그/lib/modules/
RHEL, CentOS, Amazon Linuxrpm (kernel, kernel-rt)/lib/modules/
SUSE, openSUSErpm (kernel-default)/lib/modules/
Arch Linuxpacman + 보안 공지 링크/usr/lib/modules/
Fedorarpm + /usr/lib/modules/ 대체 경로/usr/lib/modules/

bash가 필요합니다 — 이 스크립트는 bash 전용 구문을 사용하므로 sh, ash, dash에서는 실행되지 않습니다. Alpine Linux(기본적으로 busybox ash 사용)에서는 먼저 bash를 설치하세요:

apk add bash

빠른 실행 (단일 서버)

root 없이 — 대부분의 확인 작동:

curl -fsSL https://raw.githubusercontent.com/codesource/copyfail-check/main/check_copyfail.sh | bash

root 권한 사용 시 — AppArmor 상태를 포함한 전체 결과:

curl -fsSL https://raw.githubusercontent.com/codesource/copyfail-check/main/check_copyfail.sh | sudo bash

팁: 프로덕션 환경에서는 스크립트가 사용자 모르게 변경되지 않도록 특정 커밋 SHA를 고정하세요:

curl -fsSL https://raw.githubusercontent.com/codesource/copyfail-check/COMMIT_SHA/check_copyfail.sh | sudo bash

먼저 다운로드하고 검사하기 (권장)

curl -fsSL https://raw.githubusercontent.com/codesource/copyfail-check/main/check_copyfail.sh -o check_copyfail.sh
less check_copyfail.sh
bash check_copyfail.sh        # without root
sudo bash check_copyfail.sh   # full results

여러 호스트에 걸쳐 실행하기

SSH 루프

for HOST in server1 server2 server3; do
  echo "=== $HOST ==="
  ssh "$HOST" "curl -fsSL https://raw.githubusercontent.com/codesource/copyfail-check/main/check_copyfail.sh | sudo bash"
done

Ansible

- name: Check Copy Fail vulnerability
  hosts: all
  tasks:
    - name: Run check script
      script: check_copyfail.sh
      become: yes

병렬 SSH

pssh -h hosts.txt -i \
  "curl -fsSL https://raw.githubusercontent.com/codesource/copyfail-check/main/check_copyfail.sh | sudo bash"

출력 예시

============================================================
  Copy Fail CVE-2026-31431 – Vulnerability Check
============================================================

>>> Kernel Version
  [INFO]  Running kernel: 5.15.0-107-generic
  [WARN]  Kernel 5.15.0-107-generic is in the affected range (4.13 – 6.x).

>>> algif_aead Module Status
  [WARN]  algif_aead module is currently LOADED — system is exploitable.
  [WARN]  Module file found at: /lib/modules/5.15.0-107-generic/kernel/crypto/algif_aead.ko
  [WARN]  algif_aead is NOT blacklisted — it can be loaded on demand.

>>> Kernel Boot Parameter Mitigation
  [WARN]  initcall_blacklist=algif_aead_init is NOT set in boot parameters.

>>> AF_ALG Socket Reachability
  [WARN]  AF_ALG sockets are reachable by this user — exploit path is open.

>>> Mandatory Access Control (SELinux / AppArmor)
  [WARN]  Neither SELinux nor AppArmor tools detected — no MAC layer present.

>>> Distribution Patch Status
  [WARN]  Could not confirm CVE-2026-31431 is listed as fixed in running kernel's changelog.

============================================================
  SUMMARY
============================================================
  !! LIKELY VULNERABLE — No confirmed mitigation detected.

  Recommended actions (in order of preference):
  1. Apply your distro's kernel update as soon as available.
  2. Add to /etc/modprobe.d/copyfail.conf:
       blacklist algif_aead
       install algif_aead /bin/true
     Then run: sudo depmod -a && sudo update-initramfs -u
  3. Add to kernel boot parameters (grub):
       initcall_blacklist=algif_aead_init
  4. Immediately unload the module if loaded:
       sudo rmmod algif_aead
============================================================

완화 조치

다음 항목을 선호 순서대로 적용하십시오:

1. 커널 패치 (최선의 해결책)

# Debian / Ubuntu
sudo apt update && sudo apt upgrade linux-image-$(uname -r)

# RHEL / CentOS / Amazon Linux
sudo yum update kernel

# SUSE
sudo zypper update kernel-default

2. 모듈 블랙리스트 등록 (즉시, 영구적)

sudo tee /etc/modprobe.d/copyfail.conf << 'EOF'
blacklist algif_aead
install algif_aead /bin/true
EOF

sudo depmod -a

# Debian/Ubuntu
sudo update-initramfs -u

# RHEL/Fedora
sudo dracut -f

3. 이제 모듈을 언로드합니다 (즉시 적용되며, 재부팅 후에는 유지되지 않음)

sudo rmmod algif_aead

4. 커널 부팅 매개변수 (블랙리스트 대안)

GRUB 설정에 initcall_blacklist=algif_aead_init를 추가하고 재부팅하세요.


참고 자료

  • copy.fail — 공식 취약점 페이지
  • Xint/Theori 분석 글
  • NVD — CVE-2026-31431
  • CERT-EU 권고 2026-005
  • Microsoft 보안 블로그
  • The Hacker News

라이선스

MIT — 자유롭게 사용 가능하며, 보증은 제공되지 않습니다. 스크립트를 root 권한으로 실행하기 전에 항상 검토하세요.

도구 다운로드