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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Tarmageddon-CVE-2025-62518- — CVE-2025-62518에 대한 PoC로, tokio-tar PAX 헤더 구문 분석을 통한 tar 아카이브 스머글링을 시연하며, 악성 페이로드와 취약한 추출기를 생성하여 공급망 주입을 보여줍니다. | Kitploit
도구/GitHubGitHub/airineiandrei/tarmageddon-cve-2025-62518-
Vulnerability AnalysisExploitationMalware AnalysisSupply Chain SecurityPapers & ResearchLearning & Education
GitHubairineiandrei/tarmageddon-cve-2025-62518-

Tarmageddon-CVE-2025-62518-

CVE-2025-62518에 대한 PoC로, tokio-tar PAX 헤더 구문 분석을 통한 tar 아카이브 스머글링을 시연하며, 악성 페이로드와 취약한 추출기를 생성하여 공급망 주입을 보여줍니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Tarmageddon CVE-2025-62518

동영상: https://youtu.be/EYBB4BHsp9E

저장소 디렉터리

  • vulnerable-extract 최소 재현 예제, 경로를 인수로 받아 해당 파일을 ./output에 추출합니다.
  • malicious-payload 간단한 malicious.tar 아카이브를 생성하며, 밀반입된 콘텐츠의 예시를 포함합니다. 주석은 단계별 및 블록별로 수행되는 작업을 설명합니다.

재현

제공된 재현 스크립트를 사용하거나 수동으로 수행하세요.

malicious-payload를 실행하여 페이로드 malicious.tar를 생성합니다.

이 파일을 vulnerable-extract 앱에 전달하면 다음과 같습니다:

/vulnerable-extract$ ll output/
total 12
drwxrwxr-x 2 airinei airinei 4096 Jan 19 22:40 ./
drwxrwxr-x 5 airinei airinei 4096 Jan 19 22:40 ../
-rw-rw-r-- 1 airinei airinei    0 Jan  1  1970 benign_file.txt
-rw-rw-r-- 1 airinei airinei   18 Jan  1  1970 sh_profile_hijack

반면, OS에서 제공하는 tar 유틸리티(이 경우 (GNU tar) 1.35)를 실행하면 다음과 같습니다:

malicious-payload$ tar -tvf malicious.tar
---------- 0/0            1024 1970-01-01 02:00 benign_file.txt

파일 크기가 1024로 표시됨에 유의하세요.

또는 중단된 tokio-tar 0.3.1 대신 astral-tokio-tar 0.5.6을 사용하면 아카이브를 올바르게 추출합니다.

분석

CVE-2025-62518 (TARmageddon)은 tokio-tar Rust 라이브러리에서 발견된 보안 취약점입니다(Rust 취약점 😮). 이는 tar 형식의 헤더가 구문 분석되는 방식의 논리 오류로, 공격자가 파일을 밀반입할 수 있게 합니다.

결함은 PAX 확장 헤더를 처리하는 논리에 존재합니다. TAR 아카이브에는 다양한 헤더 유형이 있습니다:

  • USTAR: 파일명, 권한, 크기를 포함하는 표준 헤더.
  • PAX (Type x): 아카이브의 다음 파일에 대한 메타데이터(예: 매우 큰 파일 크기)를 제공하는 확장 헤더.

PAX 헤더가 있을 경우 파서는 PAX 메타데이터를 표준 USTAR 헤더보다 우선시하여 파일의 실제 크기를 결정해야 합니다.

하지만 왜 같은 것을 위한 우선순위를 가진 2가지 유형의 헤더가 존재할까요? TAR 형식이 오래되었기 때문입니다(1988년에 표준화). USTAR에는 제한이 있습니다(크기 최대 8GB, 파일명 최대 256자). 이는 문제였기 때문에 2001년에 PAX 헤더가 추가되어 더 큰 파일과 더 긴 파일명을 허용할 수 있게 되었습니다.

취약한 버전의 tokio-tar에서 파서는 파일 콘텐츠 리더를 위해 PAX 헤더의 크기를 올바르게 채택하지만, 다음 파일 헤더가 시작되는 위치를 결정하기 위해 USTAR 헤더의 크기를 잘못 사용합니다.

문제의 핵심은 포인터 불일치입니다. 취약한 라이브러리가 파일을 처리할 때 스트림을 읽기 위해 두 개의 다른 내부 "헤드"를 사용합니다:

  1. 콘텐츠 헤드: 파일의 실제 바이트를 읽고 디스크에 쓰는 역할을 합니다.
  2. 파서 헤드: 파일 데이터를 건너뛰어 다음 파일 헤더를 찾는 역할을 합니다.

일반 아카이브에서는 이 두 헤드가 일치합니다. TARmageddon에서는 서로 불일치하도록 강제합니다. PAX 크기를 1024로, USTAR 크기를 0으로 설정하여 역설을 만듭니다:

  • 콘텐츠 헤드는 1024바이트를 읽어 benign_file.txt에 넣습니다.
  • 파서 헤드는 USTAR 헤더의 0을 보고 *"이미 파일 끝에 도달했습니다."*라고 생각합니다. 정확히 그 위치에 남아 있습니다.

결과적으로 파서 헤드는 1024바이트 블록 내부의 데이터를 다음 명령어 집합으로 취급합니다. 해당 데이터가 유효한 TAR 헤더처럼 보이면 라이브러리는 아카이브의 전체 구조에 따르면 기술적으로 존재하지 않는 두 번째 파일을 "발견"하고 추출합니다.

밀반입 페이로드:

페이로드는 512바이트 블록의 시퀀스로 제작됩니다. malicious-payload 생성기에서 사용된 레이아웃은 다음과 같습니다:

블록역할설명
1 & 2PAX 메타데이터다음 파일이 1024바이트 길이라고 주장합니다.
3기본 헤더benign.txt. 결정적으로 크기를 0으로 설정합니다.
4밀반입된 헤더backdoor.sh. "데이터" 영역 안에 숨겨져 있습니다.
5밀반입된 데이터악성 콘텐츠(예: 셸 별칭).
6 & 7EOF표준 널 블록 종료.

표준 도구(예: GNU tar)는 PAX 크기를 올바르게 따르기 때문에 블록 4와 5를 benign_file.txt에 속하는 무해한 이진 데이터로 봅니다. 블록 4의 헤더를 "실행"하지 않습니다.

이것이 어떻게 취약점이며 CVSS 8.1인가?

이 크레이트의 취약점이 어떻게 악용될 수 있으며, 아카이브에 파일이 밀반입되는 것이 왜 중요한가요?

공급망 주입:

공격자는 빌드 시스템에 악성 파일을 밀반입합니다. 개발 목적이나 CI 머신에서 이를 추출하면 합법적인 빌드 파일을 덮어쓸 수 있으며, 해당 머신을 손상시키고 빌드 시스템이 악성 파일에 서명하도록 속일 수도 있습니다.

보안 우회 (WAF/AV):

스캐너가 .tar 파일을 검사할 때 올바른 모드로만 스캔하면, 추출 시 원치 않는 파일이 존재할 수 있지만 스캔되지 않습니다.

이 분석에서 영감을 받았습니다.

도구 다운로드