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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
copy-fail-cve-2026-31431 — Go 포팅된 CVE-2026-31431용 Copy Fail PoC로, AF_ALG와 splice를 통해 페이지 캐시에 4바이트 쓰기를 가능하게 하는 Linux 커널 authencesn 결함입니다. 멀티 아키텍처 빌드 파이프라인과 상세한 기술 문서를 포함합니다. | Kitploit
도구/GitHubGitHub/erdemozgen/copy-fail-cve-2026-31431
Exploit FrameworksVulnerability AnalysisExploitationLearning & EducationBinary Exploitation
GitHuberdemozgen/copy-fail-cve-2026-31431

copy-fail-cve-2026-31431

Go 포팅된 CVE-2026-31431용 Copy Fail PoC로, AF_ALG와 splice를 통해 페이지 캐시에 4바이트 쓰기를 가능하게 하는 Linux 커널 authencesn 결함입니다. 멀티 아키텍처 빌드 파이프라인과 상세한 기술 문서를 포함합니다.

저장소 보기
웹사이트
83개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Copy Fail - CVE-2026-31431

이 저장소는 공개된 Copy Fail PoC의 Go 포팅과 다중 아키텍처 Linux 바이너리를 위한 재현 가능한 빌드 파이프라인을 제공합니다.

Copy Fail(CVE-2026-31431)은 authencesn의 Linux 커널 로직 결함으로, AF_ALG + splice()를 통해 참조되는 페이지 캐시 데이터에 결정적인 4바이트 쓰기를 가능하게 합니다.

책임 있는 사용

이 프로젝트는 명시적으로 테스트 권한이 부여된 환경에서만 사용하십시오. 소유하지 않았거나 서면 허가를 받지 않은 시스템에서 이 PoC를 실행하지 마십시오.

빠른 테스트(빌드 없이)

소스에서 빌드하지 않고 즉시 테스트하려면 릴리스 바이너리를 다운로드하여 실행하십시오:

root@kitploit:~
wget https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases/download/v1.0.1/copy-fail-cve-2026-31431_linux_amd64
chmod +x copy-fail-cve-2026-31431_linux_amd64
./copy-fail-cve-2026-31431_linux_amd64

다른 아키텍처의 경우 GitHub Releases 페이지에서 해당 자산을 다운로드하십시오:

https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases

목차

  • 빠른 테스트(빌드 없이)
  • 빌드 사전 요구 사항
  • 로컬 빌드
  • 사용법
  • 문제 해결
  • 개요
  • 중요성
  • 근본 원인
  • authencesn의 트리거 경로
  • 버그가 도달 가능해진 과정
  • 높은 수준의 익스플로잇 흐름
  • 수정 요약
  • 재구성
  • 공개 타임라인
  • 발견 경위
  • 저장소 구조
  • GitHub Actions
  • 테스트된 배포판
  • 참고 자료

빌드 사전 요구 사항

  • Go 1.23+
  • GNU Make

로컬 빌드

모든 Linux 타깃 빌드:

root@kitploit:~
make clean build-linux

빌드 및 체크섬 생성:

root@kitploit:~
make clean checksums

dist/의 출력 바이너리:

  • copy-fail-cve-2026-31431_linux_amd64
  • copy-fail-cve-2026-31431_linux_arm64
  • copy-fail-cve-2026-31431_linux_386
  • copy-fail-cve-2026-31431_linux_armv7
  • SHA256SUMS

사용법

기본 실행:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64

사용자 지정 타깃 경로 사용:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -target /path/to/binary

실행 후 su 실행 비활성화:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -spawn-su=false

빌드 메타데이터 출력:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -version

문제 해결

오프셋 0에서 다음과 유사한 오류로 실행이 실패하는 경우:

root@kitploit:~
error: copy chunk at offset 0: splice(pipe->AF_ALG): software caused connection abort

커널이 취약한 AEAD 인플레이스 경로를 거부했을 가능성이 높습니다(예: 호스트가 CVE-2026-31431에 대해 패치되었거나 algif_aead가 완화/비활성화된 경우).

빠른 확인:

root@kitploit:~
uname -r
grep -E "algif_aead|authencesn" /proc/modules

수정된 시스템에서는 이 PoC가 실패할 것으로 예상됩니다.

개요

공개된 정보에 따르면, 취약한 경로는 권한이 없는 로컬 사용자가 특정 조건에서 읽기 가능한 파일의 페이지 캐시 콘텐츠에 4바이트 쓰기 프리미티브를 영향을 줄 수 있게 합니다.

중요한 운영적 특성은 런타임 중 메모리 내 페이지 캐시 복사본이 디스크의 바이트와 달라질 수 있다는 점이며, 이는 디스크 수준 무결성 검사에만 의존하는 팀에게 영향 분석을 쉽지 않게 만듭니다.

중요성

Copy Fail은 다음과 같은 이유로 주목할 만합니다:

  • 결정적(설명된 트리거 경로에서 경쟁 조건 불필요).
  • 테스트에서 주요 Linux 배포판 전반에 걸쳐 이식 가능.
  • 구현이 간결하며 외부 페이로드 빌더 의존성 없음.
  • 공유 페이지 캐시 동작으로 인해 단일 프로세스 범위를 넘어 관련성 있음.

근본 원인

높은 수준에서 이 문제는 세 가지 메커니즘의 교차점에 있습니다:

  1. AF_ALG AEAD 요청 처리.
  2. splice() 페이지 캐시 백업 데이터 이동.
  3. authencesn 복호화 스크래치 동작.

취약한 설계에서 페이지 캐시 백업 세그먼트는 알고리즘 처리 중 쓰기를 수신하는 요청 형태로 연결될 수 있으며, 이는 의도된 대상 영역만 수정된다는 핵심 가정을 위반합니다.

authencesn의 트리거 경로

문서화된 경로에서 authencesn은 ESN 레이아웃 처리 주변에서 대상 측 스크래치 작업을 사용하며 예상된 복호화 출력 계약을 넘어선 오프셋에서 쓰기를 수행합니다.

인플레이스 AEAD 설정 및 연결된 scatterlist 참조와 결합되면 이 쓰기는 공격자가 선택한 영역의 페이지 캐시 백업 메모리에 도달할 수 있습니다.

버그가 도달 가능해진 과정

공개 자료는 여러 커밋의 진화를 설명합니다:

  • authencesn 동작은 초기 통합 이력에서 시작되었습니다.
  • AF_ALG AEAD 지원은 splice() 상호작용으로 사용자 공간 도달 가능성을 도입했습니다.
  • 이후 algif_aead의 인플레이스 최적화는 소스와 대상 흐름을 결합하여 이 교차점을 악용 가능하게 만들었습니다.

핵심 교훈은 구성적 위험입니다: 개별적으로 합리적인 변경이 결합되면 안전하지 않을 수 있습니다.

높은 수준의 익스플로잇 흐름

공개된 문서와 PoC는 다음 순서를 설명합니다:

  1. authencesn(hmac(sha256),cbc(aes))용 AF_ALG AEAD 소켓을 열고 구성합니다.
  2. 조작된 메타데이터와 청크 데이터를 제공합니다.
  3. splice()를 사용하여 페이지 캐시 백업 파일 데이터를 요청 경로로 라우팅합니다.
  4. 복호화 처리를 트리거하고 제어된 4바이트 단계로 반복합니다.

이 저장소의 Go 구현은 승인된 환경에서 연구 및 검증을 위해 해당 공개 PoC 로직을 미러링합니다.

수정 요약

보고된 수정은 algif_aead의 취약한 인플레이스 AEAD 작업을 아웃오브플레이스 동작으로 되돌립니다.

개념적으로:

  • 수정 전: 이 경로에서 소스와 대상이 하나의 쓰기 가능한 체인으로 축소될 수 있었습니다.
  • 수정 후: 소스와 대상이 분리되어 이 흐름에서 페이지 캐시 백업 소스 세그먼트가 쓰기 가능한 대상 영역으로 사용되는 것을 방지합니다.

재구성

  • 업스트림 수정이 포함된 버전으로 커널 패치.
  • 플릿 및 이미지 전반에 걸쳐 벤더 커널 패키지 업데이트 배포.
  • 임시 하드닝 제어 고려(예: 운영상 가능한 경우 AF_ALG 사용에 대한 정책 제한).
  • 디스크 체크섬 워크플로우뿐만 아니라 런타임 검사로 재구성 검증.

공개 타임라인

공개 문서 기준:

날짜이벤트
2026-03-23Linux 커널 보안 팀에 보고서 제출
2026-03-24초기 확인
2026-03-25패치 논의/검토
2026-04-01메인라인에 수정 커밋
2026-04-22CVE-2026-31431 지정
2026-04-29공개 공개

발견 경위

발표된 연구는 사용자 공간에서 도달 가능한 암호화 코드 경로와 splice() 하의 scatterlist/페이지 출처에 초점을 맞춘 인간 안내, AI 지원 서브시스템 분석을 인정합니다.

저장소 구조

  • main.go: Go PoC 포팅.
  • Makefile: 결정적 다중 아키텍처 Linux 빌드 타깃.
  • .github/workflows/build.yml: CI 빌드 및 릴리스 아티팩트 워크플로우.

GitHub Actions

워크플로우 파일: .github/workflows/build.yml

트리거:

  • 풀 리퀘스트
  • main으로 푸시
  • v*와 일치하는 태그 푸시
  • 수동 workflow_dispatch

동작:

  1. make clean checksums를 통해 체크섬과 함께 모든 Linux 바이너리 빌드.
  2. ref + 커밋 SHA로 명명된 CI 아티팩트 업로드.
  3. v*와 일치하는 태그에 대해 릴리스 자산 자동 게시.

권장 릴리스 흐름:

root@kitploit:~
git tag v1.0.0
git push origin v1.0.0

테스트된 배포판

배포판커널 버전
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.16.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default

참고 자료

  • 원본 공개 기사: https://xint.io/blog/copy-fail-linux-distributions
  • CVE 항목: CVE-2026-31431
도구 다운로드