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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/sec17br/cve-2026-31431-copy-fail
Vulnerability AnalysisConfiguration AuditingIncident Response
GitHubsec17br/cve-2026-31431-copy-fail

CVE-2026-31431-Copy-Fail

Bash 스크립트로 Linux 호스트의 CVE-2026-31431 노출 여부를 평가하고, 커널 모듈 상태를 확인하며, algif_aead를 차단하여 완화 조치를 적용하고, 커널 패키지를 업데이트합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-31431 - 검증 및 완화 스크립트

이 저장소는 Linux 호스트(특히 Ubuntu)에서 CVE-2026-31431 노출 여부를 평가하고, algif_aead 모듈을 차단하여 간단한 완화 조치를 적용하는 데 사용되는 Bash 스크립트를 문서화합니다.

언어 버전:

  • 영어: README.md
  • 포르투갈어: README.pt-BR.md

스크립트는 세 가지 모드를 지원합니다:

  • --check: 호스트 정보를 수집하고 현재 상태를 분류합니다.
  • --mitigate: 취약한 모듈을 차단하는 modprobe 규칙을 생성하고 모듈 언로드를 시도합니다.
  • --update: apt를 통해 커널 패키지 업그레이드를 실행합니다.

취약점 정보

CVE-2026-31431은 공개적으로 Copy Fail로 알려져 있으며, AF_ALG를 통해 커널 사용자 공간 암호화 API의 AEAD 인터페이스를 구현하는 algif_aead 모듈과 관련된 Linux 커널의 로컬 권한 상승 취약점입니다.

실질적으로 이 문제는 저권한 로컬 사용자가 이 하위 시스템의 메모리 처리 경로에 있는 논리적 결함을 악용하여 전체 시스템 무결성 손상으로 영향력을 확대할 수 있게 합니다. kernel.org가 발표하고 NVD에 반영된 점수는 CVSS 7.8이며, 벡터는 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H로, 공격에는 로컬 실행이 필요하지만 기밀성, 무결성, 가용성에 높은 영향을 미칩니다.

도입 및 공개 시점

  • 악용 가능한 근본 원인은 2017년 algif_aead에 제자리 최적화(in-place optimization)가 추가되면서 커널에 도입되었습니다.
  • CVE는 2026년 4월 22일 NVD에 게시되었습니다.
  • Copy Fail이라는 이름과 공개 PoC(개념 증명)를 포함한 광범위한 공개 공개는 2026년 4월 29일에 이루어졌습니다.
  • 주요 업스트림 수정은 최종 사용자에게 광범위하게 공개되기 전인 2026년 4월 1일에 커밋되었습니다.

악용 방식

게시된 기술 권고에 따르면, 이 결함은 다음의 조합에 의존합니다:

  • 커널 AF_ALG 인터페이스
  • algif_aead 모듈
  • 2017년에 도입된 제자리 연산 최적화
  • 이 인터페이스를 splice()와 연결

실질적인 결과는 로컬 프로세스가 읽기 가능한 파일의 페이지 캐시 기반 페이지에 작은 제어된 쓰기를 수행할 수 있다는 것입니다. 유리한 조건에서는 제한된 로컬 발판을 root 권한 상승으로 전환하기에 충분합니다.

회사에 미치는 영향

실제 위험은 단순히 "취약한 Linux 커널을 실행하는 것"이 아니라, 신뢰도가 낮은 로컬 코드가 이 커널 경로에 도달할 수 있게 하는 것입니다. 엔터프라이즈 환경에서는 일반적으로 다음에서 노출이 더 높습니다:

  • 다중 사용자 서버
  • 점프 호스트 및 배스천
  • CI/CD 러너
  • 신뢰할 수 없는 코드를 실행하는 컨테이너화된 워크로드
  • Kubernetes 클러스터
  • 자동화, 에이전트, 플러그인 또는 타사 작업을 호스팅하는 VM

공격자가 이미 root 없이도 어떤 형태의 로컬 실행 권한을 가지고 있다면, 이 CVE는 호스트 침해로 가는 다음 단계가 될 수 있습니다. 실질적으로 이는 다음의 위험을 확대합니다:

  • 전체 서버 탈취
  • 로컬 바이너리 또는 아티팩트 변조
  • 자격 증명, 토큰 및 상주 비밀 탈취
  • 다른 자산으로의 측면 이동
  • 파이프라인 및 빌드 체인 파괴

algif_aead 모듈의 용도

algif_aead는 커널 사용자 공간 암호화 인터페이스(AF_ALG)의 일부입니다. 애플리케이션이 소켓을 통해 커널 암호화 프리미티브, 특히 AEAD 연산(인증된 연관 데이터 암호화)을 사용할 수 있게 합니다.

이 모듈은 대부분의 표준 서버 워크로드에서 일반적으로 필수적이지 않습니다. CERT-EU가 발표한 완화 지침에 따르면 임시 완화 조치로 algif_aead를 비활성화하는 것은:

  • dm-crypt 또는 LUKS에 영향을 주지 않아야 함
  • kTLS에 영향을 주지 않아야 함
  • IPsec/XFRM에 영향을 주지 않아야 함
  • 표준 사용에서 OpenSSL, GnuTLS, NSS 또는 SSH에 영향을 주지 않아야 함

반면, 비활성화하면 다음에 영향을 줄 수 있습니다:

  • afalg 엔진을 명시적으로 사용하도록 구성된 애플리케이션
  • AF_ALG 소켓을 직접 여는 소프트웨어
  • 커널 암호화 API를 통해 aead, skcipher 또는 hash를 사용하는 사용자 정의 통합

즉, 대부분의 기업 호스트에서 모듈 차단은 영향이 낮은 경향이 있습니다. 어플라이언스, 사용자 정의 암호화 스택 또는 고도로 최적화된 소프트웨어 경로에서는 롤아웃 전에 영향을 검증해야 합니다.

모듈 비활성화의 운영 영향

모듈 차단은 노출을 즉시 줄이지만 절충점이 있습니다:

  • AF_ALG에 의존하는 애플리케이션은 시작에 실패하거나 커널 기반 암호화 가속을 잃을 수 있음
  • 사용자 정의 워크로드는 부팅 시가 아닌 런타임에만 실패할 수 있음
  • 모듈이 이미 로드된 경우, 완화는 성공적인 언로드 또는 재부팅 후에만 완료됨

프로덕션 환경에서는 통제된 유지보수 창에서 완화 조치를 적용하고 이후 중요한 애플리케이션을 검증하는 것이 더 안전한 접근 방식입니다.

권장 영구 수정

모듈 블랙리스트는 임시 완화 조치일 뿐입니다. 영구 수정은 다음과 같습니다:

  1. 배포 벤더가 제공하는 패치된 커널 설치
  2. 새 커널이 실제로 로드되도록 호스트 재부팅
  3. 호스트가 더 이상 영향받는 것으로 보고되지 않는지 검증
  4. 그 후에만 모듈 블랙리스트를 유지할지 결정

추가 권장 조치:

  • 로컬 사용자, 컨테이너 또는 신뢰할 수 없는 코드 실행이 있는 호스트의 패치 우선순위 지정
  • 해당되는 경우 컨테이너 및 파이프라인에서 seccomp로 AF_ALG 소켓 생성 제한
  • afalg 또는 커널 암호화 API가 명시적으로 사용되는 위치 검토
  • 커널 버전 및 보류 중인 재부팅 인벤토리 유지
  • CI/CD 러너 및 Kubernetes 노드를 높은 우선순위로 취급

스크립트가 확인하는 항목

스크립트는 다음을 검사합니다:

  • 호스트 호스트명
  • 실행 중인 커널 버전
  • /etc/os-release를 통한 운영 체제
  • algif_aead 모듈 존재 여부
  • 모듈이 현재 로드되었는지 여부
  • 모듈이 modprobe 규칙으로 차단되었는지 여부
  • 호스트 재부팅 필요 여부(/var/run/reboot-required)
  • 사용 가능한 경우 pro fix CVE-2026-31431 --dry-run을 통한 Ubuntu Pro 보고 상태

이를 기반으로 다음 분류 중 하나를 반환합니다:

  • PATCHED_OR_NOT_AFFECTED
  • LIKELY_NOT_VULNERABLE
  • MITIGATED
  • VULNERABLE_MODULE_LOADED
  • POTENTIALLY_VULNERABLE
  • UNKNOWN

분류 논리

요약:

  • Ubuntu 도구가 호스트가 영향받지 않거나 이미 수정되었음을 나타내면 상태는 PATCHED_OR_NOT_AFFECTED가 됩니다.
  • algif_aead 모듈이 현재 커널에 존재하지 않으면 상태는 LIKELY_NOT_VULNERABLE 경향이 있습니다.
  • 모듈이 존재하지만 차단되고 로드되지 않으면 상태는 MITIGATED가 됩니다.
  • Ubuntu가 호스트가 영향받았고 모듈이 로드되었음을 나타내면 상태는 VULNERABLE_MODULE_LOADED가 됩니다.
  • 모듈이 존재하고 로드 가능하지만 패치 상태를 확인할 수 없으면 상태는 POTENTIALLY_VULNERABLE이 됩니다.

요구 사항

  • Bash
  • modinfo
  • modprobe
  • lsmod
  • awk
  • grep
  • hostname
  • uname
  • --update용 apt-get
  • 비루트 사용자로 실행 시 sudo
  • Ubuntu에서 분석을 강화하기 위한 선택적 pro

사용법

스크립트 파일 이름이 check_cve_2026_31431.sh인 경우:

root@kitploit:~
chmod +x check_cve_2026_31431.sh
./check_cve_2026_31431.sh --check

기본 확인

root@kitploit:~
./check_cve_2026_31431.sh --check

출력 예시:

root@kitploit:~
Host: srv-app-01
OS: Ubuntu 24.04 LTS
Kernel: 6.8.0-58-generic
CVE: CVE-2026-31431
Module exists: 1
Module loaded: 0
Module blocked: 1
Ubuntu affected: yes
Fix available: yes
Reboot required: 0

Status: MITIGATED
Reason: algif_aead exists but is blocked and not loaded

JSON 출력

root@kitploit:~
./check_cve_2026_31431.sh --check --json

예시:

root@kitploit:~
{"host":"srv-app-01","os":"Ubuntu 24.04 LTS","kernel":"6.8.0-58-generic","cve":"CVE-2026-31431","module":"algif_aead","module_exists":1,"module_loaded":0,"module_blocked":1,"ubuntu_affected":"yes","fix_available":"yes","reboot_required":0,"status":"MITIGATED","reason":"algif_aead exists but is blocked and not loaded"}

이 출력은 자동화, 자산 인벤토리 및 규정 준수 파이프라인에 유용합니다.

완화

--mitigate 모드는 다음 파일을 생성합니다:

root@kitploit:~
/etc/modprobe.d/disable-algif_aead-CVE-2026-31431.conf

다음 내용으로:

root@kitploit:~
install algif_aead /bin/false
blacklist algif_aead

그 후 스크립트는 다음 명령으로 메모리에서 모듈을 제거하려고 시도합니다:

root@kitploit:~
modprobe -r algif_aead

사용법:

root@kitploit:~
./check_cve_2026_31431.sh --mitigate

사용자가 root가 아닌 경우 스크립트는 sudo를 사용하려고 시도합니다.

업데이트

--update 모드는 다음을 실행합니다:

root@kitploit:~
apt-get update
apt-get install --only-upgrade -y 'linux-image-*' 'linux-modules-*' 'linux-aws*'

사용법:

root@kitploit:~
./check_cve_2026_31431.sh --update

이 모드는 Debian 및 Ubuntu 기반 시스템에서 커널 관련 패키지를 업그레이드하려고 시도합니다. 다른 환경에서는 이 단계가 적용되지 않을 수 있습니다.

도움말

root@kitploit:~
./check_cve_2026_31431.sh --help

출력:

root@kitploit:~
Usage: ./check_cve_2026_31431.sh [--check|--mitigate|--update] [--json]

중요한 제한 사항

  • 스크립트는 휴리스틱을 사용합니다. 악용을 증명하는 것이 아니라 노출 및 완화 상태를 추정합니다.
  • ubuntu_affected 및 fix_available 필드는 pro 명령의 존재에 의존합니다.
  • --update 단계는 Ubuntu 및 Debian 중심 패키지 패턴을 사용하며 모든 사용자 정의 커널을 포함하지 않을 수 있습니다.
  • 일부 배포판에서는 모듈이 스크립트가 예상하는 것과 다른 동작으로 존재할 수 있습니다.
  • 일부 환경에서는 일관된 상태를 보장하기 위해 모듈 차단에 재부팅이 필요할 수 있습니다.

권장 워크플로우

  1. 호스트를 평가하려면 --check를 실행합니다.
  2. 모듈을 사용할 수 있고 패치가 적용되지 않은 경우 --mitigate를 실행합니다.
  3. --update를 실행하거나 공식 벤더 업데이트를 적용합니다.
  4. 필요한 경우 호스트를 재부팅합니다.
  5. 최종 상태를 검증하고 증거를 유지하려면 --check --json을 실행합니다.

참고

게시 명확성을 위해 스크립트는 다음과 같은 설명적인 이름을 사용하는 것이 이상적입니다:

root@kitploit:~
check_cve_2026_31431.sh

크레딧

자료는 SEC17의 크레딧으로 구성 및 게시되었습니다.

공식 웹사이트:

  • https://sec17.com
도구 다운로드