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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
docling-core-CVE-2026-24009 — CVE-2026-24009에 대한 기술 분석 자료 및 PoC로, docling-core의 안전하지 않은 YAML 로딩을 시연하고 실질적인 완화 방안을 제시합니다. | Kitploit
도구/GitHubGitHub/biranperetz/docling-core-cve-2026-24009
Vulnerability AnalysisCode AnalysisExploitationPapers & ResearchLearning & Education
GitHubbiranperetz/docling-core-cve-2026-24009

docling-core-CVE-2026-24009

CVE-2026-24009에 대한 기술 분석 자료 및 PoC로, docling-core의 안전하지 않은 YAML 로딩을 시연하고 실질적인 완화 방안을 제시합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-24009 — docling-core 안전하지 않은 YAML 역직렬화 (PoC + 참고 사항)

이 저장소는 CVE-2026-24009를 입증하는 개념 증명(PoC)과 간단한 스캐너를 포함합니다. 이 취약점은 특정 종속성 조건에서 docling-core가 공격자가 제어하는 YAML을 로드할 때 코드 실행을 가능하게 합니다.

TL;DR

영향: YAML 파싱 중 잠재적 RCE 취약한 체인(모두 필요):

  • docling-core >= 2.21.0 및 < 2.48.4
  • PyYAML < 5.4 (CVE-2020-14343과 관련된 업스트림 동작)
  • 애플리케이션이 신뢰할 수 없는 YAML에 대해 DoclingDocument.load_from_yaml(...) 호출

수정: docling-core를 >= 2.48.4로 업그레이드 (yaml.SafeLoader로 전환)
대체 수정: PyYAML을 로 업그레이드

>= 5.4

배경 / 근본 원인

DoclingDocument.load_from_yaml()은 YAML로 직렬화된 DoclingDocument를 역직렬화합니다. 취약한 버전에서는 PyYAML이 취약할 때 안전하지 않은 로더(yaml.FullLoader)를 사용하여 YAML을 로드하므로, 악의적인 YAML 생성자가 파싱 중에 코드를 실행할 수 있습니다(자세한 내용은 CVE-2020-14343 참조).


테스트 환경 (PoC)

  • OS: Ubuntu 24.04
  • Python: 3.12.3
  • docling-core: 2.48.3 (취약)
  • PyYAML: 5.3.1 (취약)

재현 (PoC)

1) 가상 환경 생성

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install "docling-core==2.48.3" "PyYAML==5.3.1"

2) (선택 사항) 취약한 로더 확인

다음 실행:

root@kitploit:~
python check_loader.py

취약한 버전에서 load_from_yaml()은 다음을 사용합니다:

root@kitploit:~
data = yaml.load(f, Loader=yaml.FullLoader)

3) PoC 실행

root@kitploit:~
python repro_docling_load.py

예상 동작:

  • repro_docling_load.py가 ValidationError를 발생시킴 (예상됨)
  • 로컬 마커 파일 생성: /tmp/docling_cve_poc_marker

이는 DoclingDocument.model_validate(...)가 실패하기 전에 YAML 파싱 중에 실행이 발생했음을 입증합니다.


완화 / 패치 검증

완화 1 — docling-core 업그레이드 (권장)

root@kitploit:~
python -m pip install --upgrade "docling-core==2.48.4"
python check_loader.py
python repro_docling_load.py

예상:

  • check_loader.py가 yaml.SafeLoader를 표시
  • PoC가 YAML 생성자 오류로 실패하고 마커 파일이 생성되지 않음

완화 2 — PyYAML 업그레이드

PyYAML을 >= 5.4로 업그레이드하면 CVE-2020-14343과 관련된 업스트림 동작이 완화됩니다.

완화 3 — 안전한 로딩 강제

업그레이드가 불가능한 경우, 안전하지 않은 로더로 신뢰할 수 없는 YAML을 로드하지 마십시오. 신뢰할 수 없는 YAML을 역직렬화할 때 yaml.SafeLoader를 강제하십시오.


다운스트림 docling 노출에 대한 참고 사항 (종속성 매핑)

이 CVE는 docling-core에 있지만, 가장 일반적인 소비자는 docling입니다. docling의 광범위한 종속성 범위는 그 자체로 취약성을 입증하지 않습니다. 중요한 것은 해석된(resolved) 환경(lockfile / 설치된 패키지)과 YAML 가져오기 경로가 사용되는지 여부입니다.

이 저장소에는 다음을 매핑하는 collect_versions.py가 포함되어 있습니다:

  • pyproject.toml에서 선언된 docling-core 제약 조건
  • uv.lock(또는 이전 태그의 poetry.lock)에서 고정된 docling-core 버전

추출된 데이터에서 잠재적으로 취약한 docling 버전(제약 조건이 취약한 버전을 허용하고 lock이 취약한 버전을 고정)은 다음과 같습니다:

  • >= v2.27.0 및 <= v2.57.0

이는 종속성 해석 지표일 뿐, 기본 docling 워크플로우가 신뢰할 수 없는 입력에 대해 load_from_yaml()에 도달한다는 증명은 아닙니다.


저장소 내용 (개요)

  • repro_docling_load.py — 최소 PoC 실행기
  • check_loader.py — load_from_yaml()이 사용하는 YAML 로더 출력
  • scanner/ — 간단한 종속성 기반 스캐너 (선택적 직접 싱크 확인)
  • collect_versions.py — docling 태그를 고정된 docling-core 버전에 매핑하는 헬퍼
도구 다운로드