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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Hacking-pdf.js-vulnerability — CVE-2024-4367 | Kitploit
도구/GitHubGitHub/bhavyakcwestern/hacking-pdf.js-vulnerability
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & Education
GitHubbhavyakcwestern/hacking-pdf.js-vulnerability

Hacking-pdf.js-vulnerability

CVE-2024-4367

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
1년 전아직 검토되지 않음

🚨 CVE-2024-4367: PDF.js에서의 임의 JavaScript 실행

이 프로젝트는 Mozilla의 PDF.js 라이브러리에서 글꼴 처리 코드의 부적절한 타입 검사로 인해 임의 JavaScript 실행을 허용하는 높은 심각도 취약점인 CVE-2024-4367을 시연하고 분석합니다. 우리의 연구는 악의적으로 제작된 PDF가 Electron 앱과 같은 컨텍스트에서 JavaScript를 실행하여 잠재적으로 원격 코드 실행으로 이어질 수 있는 방법을 보여줍니다.

🔗 GitHub 저장소: Hacking-pdf.js-vulnerability


📖 프로젝트 개요

  • CVE ID: CVE-2024-4367
  • 심각도: 높음 (CVSS v3.1 점수: 8.8)
  • 영향받는 소프트웨어
    • PDF.js < 4.2.67
    • Mozilla Firefox < 126
    • Firefox ESR < 115.11
    • Thunderbird < 115.11
  • 익스플로잇: 포함된 글꼴의 검증되지 않은 fontMatrix를 통한 임의 JavaScript 실행.
  • 개념 증명 (PoC): ex1.pdf 및 ex-gist.pdf PDF는 알림 또는 원격 스크립트 실행을 보여줍니다.

📂 저장소 내용

  • src/components/ReactPdfViewer.tsx – react-pdf 5.7.2로 빌드된 React 뷰어 (취약한 pdfjs-dist 2.16.105 포함)
  • ex1.pdf – 알림을 트리거하는 악의적인 PDF
  • ex-gist.pdf – 원격 JS를 가져와 실행하는 악의적인 PDF
  • CVE-2024-4367_Report_Hacking_Project.pdf – 전체 기술 보고서 및 익스플로잇 분석

⚠️ 취약점 세부 정보

PDF.js의 fontMatrix 배열 요소가 부적절하게 검증되었습니다. 즉, new Function(...)으로 컴파일된 JavaScript에 직접 주입된 문자열을 허용했습니다. 이로 인해 공격자가 악의적인 글꼴 데이터를 제작하여 eval과 유사한 연산이 허용될 때 임의 코드 실행을 유발할 수 있습니다.

취약한 코드 경로 예시:

root@kitploit:~
fontMatrix = ["alert('XSS')", 0, 0, 1, 0, 0]; // 주입된 페이로드
// 결과적으로 다음과 같은 함수가 컴파일됨:
function drawGlyph() {
  transform("alert('XSS')", 0, 0, 1, 0, 0); // 안전하지 않은 실행
}

🛡️ CVE-2024-4367에 대한 완화 전략

이 취약점을 완화하고 PDF.js(또는 이를 번들로 포함하는 라이브러리)를 포함하는 애플리케이션을 보호하려면 다음 조치를 채택하십시오:

✅ 의존성 업그레이드

  • PDF.js를 타입 검사 결함을 패치한 v 4.2.67 (또는 이후 버전)으로 업그레이드하십시오.
  • 래퍼(예: react-pdf)를 사용하는 경우 pdfjs-dist ≥ 4.2.67을 제공하는지 확인하십시오.

✅ 동적 컴파일 비활성화

  • PDF.js에서 **isEvalSupported = false**를 설정하여 동적 Function 컴파일을 끄십시오.

✅ 타입 검사 강제

  • 모든 사용자 제공 값(예: fontMatrix 배열)에 명시적인 typeof 검사를 추가하십시오.

✅ 입력 살균

  • 숫자가 예상되는 위치에서 숫자가 아닌 입력을 거부하거나 살균하십시오.

✅ 의존성 모니터링 도구 사용

  • Snyk (또는 유사 도구)를 CI/CD에 통합하여 의존성을 자동으로 스캔하십시오.
  • package.json/yarn.lock을 최신 상태로 유지하고 보안 패치를 자동 적용하십시오.

✅ 브라우저 및 런타임 최신 상태 유지

  • 패치된 버전 실행:
    • Firefox ≥ 126
    • Firefox ESR ≥ 115.11
    • Thunderbird ≥ 115.11
  • Electron 런타임을 업데이트하여 안전한 PDF.js 빌드를 번들로 포함하도록 하십시오.

✅ 보안 헤더 적용

엄격한 Content-Security-Policy 추가:

root@kitploit:~
Content-Security-Policy: script-src 'self'; object-src 'none';
도구 다운로드