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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-tarmageddon — CVE-2025-62518: TARmageddon | Kitploit
도구/GitHubGitHub/edera-dev/cve-tarmageddon
Vulnerability AnalysisExploitationFuzzingBinary AnalysisSupply Chain SecurityLearning & Education
GitHubedera-dev/cve-tarmageddon

cve-tarmageddon

CVE-2025-62518: TARmageddon

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

Ivy Astronaut

CVE-2025-62518: TARmageddon

이 저장소는 tokio-tar 및 관련 async Rust tar 라이브러리에서 PAX 확장 헤더의 size 재정의가 다음 헤더 위치를 계산하기 전에 적용되지 않는 치명적인 버그를 보여줍니다.

버그 요약

근본 원인: 파일 크기를 재정의하는 PAX 확장 헤더가 포함된 tar 파일을 처리할 때, 라이브러리는 위치 계산을 위해 PAX 재정의 대신 8진수 크기 필드(주로 0)를 사용합니다.

영향: 이로 인해 파서가 파일 내용으로 점프하여 이를 tar 헤더로 오인하게 되어 잘못된 파일이 추출됩니다.

알려진 영향 라이브러리:

  • async-tar https://github.com/dignifiedquire/async-tar
  • tokio-tar https://github.com/vorot93/tokio-tar
  • krata-tokio-tar https://github.com/edera-dev/tokio-tar
  • astral-tokio-tar https://github.com/astral-sh/tokio-tar

빠른 시작

root@kitploit:~
# Requirements: CMake, Rust/Cargo, C++ compiler, system tar command

cmake -S . -B build
cmake --build build --target generate_report

다음 작업을 수행합니다:

  1. 모든 C++ 및 Rust 도구 빌드
  2. 재현 케이스 tar 파일 생성
  3. 버그를 보여주는 비교 실행
  4. build/output/에 상세 보고서 생성

프로젝트 구조

root@kitploit:~
├── disclosure/               # 보안 공개 문서 트리
│   └── blast_radius/         # tokio-tar 변형에 의존하는 프로젝트 기록
├── repro_generator/          # 재현 케이스 tar 파일을 생성하는 C++ 도구
├── tar-bug-detector/         # tar 라이브러리를 비교하는 Rust 도구
├── tarwalk/                  # 올바른 C++ tar 파서
│   ├── tarwalk.cpp           # PAX를 올바르게 처리
│   └── tarwalk_bad.cpp       # 동일한 버그 재현
├── CMakeLists.txt            # 빌드 시스템
├── generate_report.cmake     # 보고서 생성
└── README.md                 # 이 파일

버그 상세 설명

일반 TAR 처리

root@kitploit:~
Header -> Content (size from octal field) -> Next Header

PAX 확장 TAR 처리 (올바름)

root@kitploit:~
PAX Header (size=1024) -> File Header (octal size=0) -> Content (1024 bytes) -> Next Header

PAX 확장 TAR 처리 (버그 있음)

root@kitploit:~
PAX Header (size=1024) -> File Header (octal size=0) -> Content (0 bytes) -> WRONG POSITION
                                                                              ↓
                                                                    Reading content as headers!

실제 트리거

Docker save는 다음과 같은 tar 파일을 생성합니다:

  • PAX 확장이 필요한 대용량 레이어(>8GB)
  • 파일시스템 tar 헤더(etc/, usr/)로 시작하는 레이어 콘텐츠
  • 버그가 발생하면 파서가 이미지 매니페스트 대신 파일시스템 콘텐츠를 추출함

생성된 재현 파일

  • pax_bug_compact.tar - 최소 재현 케이스

예상 결과

올바른 라이브러리 (GNU tar, sync tar crate):

root@kitploit:~
normal.txt -> blob.bin -> marker.txt

버그 있는 라이브러리 (tokio-tar):

root@kitploit:~
normal.txt -> blob.bin -> INNER_FILE -> marker.txt

INNER_FILE의 출현은 버그를 나타냅니다. 라이브러리가 blob.bin 콘텐츠로 점프하여 가짜 tar 헤더를 실제 항목으로 오인한 것입니다.

기술적 세부 사항

수정 사항은 위치 계산 전에 PAX 재정의를 적용해야 합니다:

root@kitploit:~
// Read header
let mut file_size = header.size();

// Apply PAX overrides BEFORE calculating next position
if let Some(pax_size) = pending_pax.get("size") {
    file_size = pax_size.parse().unwrap();
}

// Now calculate next header position using effective size
let next_pos = current_pos + 512 + pad_to_512(file_size);

라이선스

이 재현 코드는 보안 연구 및 책임 있는 공개 목적으로 제공됩니다.

원본 소스 코드 라이선스는 COPYING을 참조하십시오.

도구 다운로드