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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-31431 — 리눅스 로컬 권한 상승 익스플로잇으로, CVE-2026-31431을 악용하여 AF_ALG 암호화 API를 splice()와 함께 남용해 페이지 캐시를 변조하고 루트 셸을 실행합니다. | Kitploit
도구/GitHubGitHub/vyahello/cve-2026-31431
Privilege EscalationExploit FrameworksVulnerability AnalysisExploitationPenetration TestingBinary Exploitation
GitHubvyahello/cve-2026-31431

CVE-2026-31431

리눅스 로컬 권한 상승 익스플로잇으로, CVE-2026-31431을 악용하여 AF_ALG 암호화 API를 splice()와 함께 남용해 페이지 캐시를 변조하고 루트 셸을 실행합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Copy Fail - CVE-2026-31431

이 저장소는 CVE-2026-31431("Copy Fail"이라고도 알려짐)에 대한 소규모 Linux 로컬 권한 상승 PoC를 포함합니다.

이 익스플로잇은 AF_ALG 사용자 공간 암호화 API의 Linux 커널 algif_aead 경로를 대상으로 합니다. AF_ALG와 splice()를 사용하여 커널이 /usr/bin/su의 페이지 캐시에 4바이트 청크로 쓰도록 강제한 다음, 페이지 캐시가 수정된 후 su를 실행합니다.

소스 코드 개요

copy_fail_exp.py의 PoC는 네 가지 작업을 수행합니다:

  1. authencesn(hmac(sha256),cbc(aes)) 변환을 사용하여 aead용 AF_ALG 소켓을 엽니다.
  2. 원본 개념 증명에서 사용된 것과 동일한 setsockopt() 값으로 요청을 구성합니다.
  3. 두 번의 splice() 호출을 사용하여 대상 파일에서 AF_ALG 요청 경로(버그가 있는 커널 경로)로 데이터를 이동합니다.
  4. 160바이트 임베디드 페이로드를 압축 해제하고 4바이트 청크로 대상 파일에 씁니다. 페이로드는 /bin/sh를 포함하는 ELF 스텁입니다.

zlib blob은 임의의 데이터가 아닙니다. 이는 /usr/bin/su의 시작 부분을 페이지 캐시에서 교체하여 다음 su 실행 시 루트 셸이 생성되도록 하는 컴팩트한 페이로드입니다.

영향을 받는 버전

취약한 코드는 Linux 커널 4.14 시대의 algif_aead 변경 사항에서 도입되었으며, 인플레이스 최적화를 되돌리는 업스트림 수정이 적용될 때까지 존재했습니다.

광범위한 범위

  • 2017년 이후 빌드된 취약한 algif_aead 인플레이스 경로를 포함하는 Linux 커널.
  • 해당 기간에 커널을 출시했지만 아직 수정 사항을 백포트하지 않은 대부분의 주류 배포판.
  • AF_ALG 암호화 API가 활성화된 시스템(대부분의 범용 Linux 배포판에서 기본값).

테스트/공개 검증 완료

배포판커널
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.1

업스트림 수정 지점

  • 6.18.22
  • 6.19.12
  • 7.0

다운스트림 LTS 브랜치는 벤더 백포트가 실제 실행 중인 커널 패키지에 적용된 후에만 안전합니다.

재현

소유한 실험실 VM 또는 컨테이너 호스트를 사용하세요. 프로덕션 시스템에서 실행하지 마십시오.

  1. 취약한 커널로 시스템을 부팅합니다.
  2. /usr/bin/su가 존재하고 setuid-root인지 확인합니다.
  3. PoC를 실행합니다:
root@kitploit:~
python3 copy_fail_exp.py
  1. 익스플로잇이 성공하면 스크립트가 /usr/bin/su를 패치한 다음 su를 호출합니다. 환경에 따라 루트 셸 또는 루트 프롬프트가 표시됩니다.

실행

이 스크립트는 Python 3 표준 라이브러리 외에 추가 종속성이 없습니다.

root@kitploit:~
python3 copy_fail_exp.py

대상을 먼저 검사하려면 스크립트는 현재 기본적으로 /usr/bin/su를 사용합니다.

수정 사항 업데이트

다운스트림 커널을 유지 관리하는 경우 올바른 수정 방법은 인플레이스 AEAD 최적화를 제거하는 업스트림 revert를 백포트하는 것입니다:

  • 업스트림 수정 커밋: a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
  • 이 수정은 주로 이전 72548b093ee3 인플레이스 변경을 되돌립니다.

다운스트림 커널 트리에 권장되는 워크플로우:

root@kitploit:~
git cherry-pick a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
make olddefconfig
make -j"$(nproc)"
make modules_install
make install
reboot

커널을 직접 재빌드하지 않는 경우, 백포트가 포함된 벤더 커널 패키지를 설치하고 해당 커널로 재부팅하십시오.

임시 완화 조치

패치가 지연되는 경우 임시 조치로 모듈 경로를 비활성화합니다:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
rmmod algif_aead 2>/dev/null

이는 완화 조치이지 수정 사항이 아닙니다.

참고 사항

  • PoC는 의도적으로 작고 결정적입니다.
  • 익스플로잇은 로컬 전용이지만 호스트 페이지 캐시가 공유되므로 공유 호스트, CI 러너, Kubernetes 노드 및 컨테이너 플랫폼에 미치는 영향이 큽니다.
  • 커널 버그는 경쟁 조건이 아닌 논리 오류이므로 취약한 코드가 존재하면 익스플로잇 경로는 안정적으로 동작합니다.
도구 다운로드
6.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default