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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-39973-PoC — CVE-2026-39973(apktool)에 대한 개념 증명(빌더) | Kitploit
도구/GitHubGitHub/frawlaboy/cve-2026-39973-poc
Vulnerability AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & Education
GitHubfrawlaboy/cve-2026-39973-poc

CVE-2026-39973-PoC

CVE-2026-39973(apktool)에 대한 개념 증명(빌더)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-39973-PoC

CVE-2026-39973용 소형 C# APK 파일 빌더입니다.

크레딧

  • OnlyToxi - 경로 관련 도움(추후에도 도움 예정) 및 정서적 지원.
  • iBotPeaches/Apktool - 문서 및 파싱.

면책 조항

  • 이 도구는 개념 증명(PoC) 으로, 교육 목적으로만 제작되었습니다!
  • 이 코드와 문서를 작성하는 동안 AI는 사용되지 않았습니다(직렬화에 대한 작은 질문 제외).
  • 제 지식은 제한적입니다. 이것은 제 첫 CVE PoC입니다. 문서에 오류나 누락이 있을 수 있습니다.
  • 서두르고 수면 부족 상태에서 작성한 코드라 가독성이 떨어질 수 있습니다(죄송합니다).

CVE-2026-39973

CVE-2026-39973은 GitHub 저장소 iBotPeaches/Apktool의 버전 3.0.1에 영향을 미치는 경로 탐색(path traversal) 취약점입니다.

공격자는 자신만의 리소스를 생성하고 항목(entry)의 타입 내에 ..\ 시퀀스를 주입할 수 있으며, 이를 통해 위협 행위자가 ~/.bashrc 또는 Windows 시작 경로에 임의의 파일을 쓸 수 있습니다.

보안 회귀(Regression)

이 취약점은 커밋 e10a045(PR #4041)의 보안 회귀에서 비롯되었으며, 해당 커밋은 ResFileDecoder.java에서 BrutIO.detectPossibleDirectoryTraversal()을 제거합니다.

수정 전 ResFileDecoder.java#L103-L109:

root@kitploit:~
String outResPath = entry.getTypeName() + entry.getConfig().getQualifiers() + "/" + entry.getName();
if (BrutIO.detectPossibleDirectoryTraversal(outResPath)) {
    LOGGER.warning("Potentially malicious file path: " + outResPath + ", using instead: " + inResPath);
    outResPath = inResPath;
} else if (!ext.isEmpty()) {
    outResPath += "." + ext;
}

수정 후 ResFileDecoder.java#L103-L104:

root@kitploit:~
String outResPath = entry.getTypeName() + entry.getConfig().getQualifiers() + "/" + entry.getName()
    + (ext.isEmpty() ? "" : "." + ext);

이 커밋은 entry.name이 이미 사전에 검사되었기 때문에(ResEntrySpec 생성자) 전체 출력 경로에 대한 "쓸모없는" 검사로 판단된 항목을 제거했습니다.

작성자는 악의적인 resources.arsc를 직접 제작하여 항목의 타입 이름이 경로 탐색의 대상이 될 수 있다는 사실을 잊었습니다.

Resources.arsc

resources.arsc는 리소스 데이터, 경로, 타입 이름 등을 포함하는 파일입니다. Apktool을 악용하기 위해 타입 이름을 수정하거나 resource.arsc 파일을 제작하는 데 필요한 모든 정보가 여기에 저장되어 있습니다. 이 파일이 자주 등장함에도 불구하고, 직렬화에 대한 빈약하지만 만족스러운 문서만 찾을 수 있었습니다.

이 시점에서 apktool의 문서를 읽어보는 것을 강력히 권장합니다.

이 애플리케이션 전용으로 resources.arsc 파일을 빌드해야 하므로 Apktool 자체를 기반으로 작업을 시작했습니다.

인터넷에서 임의의 APK 파일을 다운로드하여 7zip으로 열었습니다. 그런 다음 resources.arsc 파일을 추출하고 Apktool의 파서 코드와 함께 데이터 구조를 연구하기 시작했습니다. 그 후 ..\ 시퀀스와 Windows 시작 폴더 경로를 포함하는 하나의 ResType과 페이로드 파일인 하나의 항목을 가진 ResTable 및 ResPackage를 작성하는 소형 C# 빌더를 만들었습니다.

도구 다운로드