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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-10036-speechbrain-rce — SpeechBrain < 1.1.1 체크포인트 메타데이터에서 안전하지 않은 PyYAML 파싱으로 인한 CKPT.yaml의 RCE 취약점. | Kitploit
도구/GitHubGitHub/saiteja-erukude/cve-2026-10036-speechbrain-rce
Vulnerability AnalysisCode AnalysisExploitationPapers & ResearchLearning & Education
GitHubsaiteja-erukude/cve-2026-10036-speechbrain-rce

CVE-2026-10036-speechbrain-rce

SpeechBrain < 1.1.1 체크포인트 메타데이터에서 안전하지 않은 PyYAML 파싱으로 인한 CKPT.yaml의 RCE 취약점.

저장소 보기
7시간 3분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-10036: SpeechBrain의 CKPT.yaml 파싱을 통한 임의 코드 실행

심각도: 높음, CVSS 4.0 8.7, CVSS 3.1 8.8 (CNA인 VulnCheck가 지정)

벡터 (v4.0): CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

벡터 (v3.1): CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

영향 대상: SpeechBrain < 1.1.1

수정 버전: 1.1.1 / 커밋 22a6166

CWE: CWE-502 (신뢰할 수 없는 데이터의 역직렬화)

보고자: Sai Teja Erukude

CNA: VulnCheck

게시일: 2026년 8월 27일


요약

1.1.1 이전 버전의 SpeechBrain은 체크포인트 복구 중 CKPT.yaml 체크포인트 메타데이터를 파싱할 때 PyYAML의 안전하지 않은 로더를 사용합니다.

공격자가 SpeechBrain 체크포인트 디렉터리를 공급하거나 수정할 수 있는 경우, CKPT* 체크포인트 디렉터리 안에 악성 CKPT.yaml 파일을 배치할 수 있습니다. 피해자가 Checkpointer.recover_if_possible()을 호출하면 SpeechBrain은 체크포인트 후보를 나열하고 모든 후보 메타데이터 파일을 다음 코드로 파싱합니다:

root@kitploit:~
yaml.load(fi, Loader=yaml.Loader)

yaml.Loader는 !!python/object/apply와 같은 Python 객체 생성 태그를 지원하므로, 공격자가 제어하는 체크포인트 메타데이터는 체크포인트 검색 중에 Python 코드를 실행할 수 있습니다.

악성 체크포인트가 선택되거나 복원될 필요는 없습니다. 코드 실행은 SpeechBrain이 체크포인트 후보를 열거하는 동안 발생합니다.

영향

공격자는 SpeechBrain을 실행 중인 Python 프로세스의 컨텍스트에서 임의의 Python 코드를 실행할 수 있습니다.

이는 사용자가 신뢰할 수 없는 체크포인트 디렉터리, 모델 아티팩트 또는 아카이브에서 학습/추론을 다운로드, 압축 해제, 재개 또는 실행하는 워크플로우에 영향을 미칠 수 있습니다.

호스팅 프로세스에 따라 다음이 가능할 수 있습니다:

  • 프로세스가 접근할 수 있는 파일 읽기 또는 수정.
  • 환경 변수 및 애플리케이션 비밀번호 접근.
  • 호스트에서 접근 가능한 내부 서비스 호출.
  • 학습, 추론 또는 자동화 작업 중단.

기술적 세부 사항

영향을 받는 구성 요소는 SpeechBrain의 체크포인트 복구/목록 흐름입니다:

root@kitploit:~
Checkpointer.recover_if_possible()
  -> list_checkpoints()
  -> _construct_checkpoint_objects()

체크포인트 목록 중 SpeechBrain은 CKPT.yaml을 포함하는 CKPT* 하위 디렉터리를 스캔합니다. 각 후보 메타데이터 파일은 최종 체크포인트 선택 전에 파싱됩니다.

안전하지 않은 파싱은 speechbrain.utils.checkpoints.checkpoints.py에서 발생합니다:

root@kitploit:~
meta = yaml.load(fi, Loader=yaml.Loader)

PoC는 두 개의 체크포인트를 생성합니다:

  • CKPT+poisoned-metadata: CKPT.yaml에 PyYAML 객체 적용 페이로드가 포함된 오래된 악성 체크포인트.
  • CKPT+benign-newer: 최신성 기준으로 선택되어야 하는 더 새로운 정상 체크포인트.

정상 체크포인트가 선택되지만, 악성 체크포인트 메타데이터는 후보 목록 중에 여전히 실행됩니다. 이는 체크포인트 복원과 무관하게 메타데이터 파싱 시점에 코드 실행이 발생함을 보여줍니다.

개념 증명

package_builder.py는 공격자가 제어하는 체크포인트 레이아웃을 생성합니다.

run_poc.py는 검증을 실행하고, Checkpointer.recover_if_possible()을 호출하며, 실행 증거를 출력합니다.

로컬 테스트 환경에서만 실행하세요:

root@kitploit:~
python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

취약한 버전에서 기대되는 증거:

root@kitploit:~
speechbrain_version: 1.1.0
installed_package: True
recovery_error: None
benign_checkpoint_selected: True
marker_before_recovery: False
marker_after_recovery: True
marker_contents:
speechbrain_checkpoint_yaml_loader_rce_triggered
success: True

중요한 증거는 benign_checkpoint_selected: True와 marker_after_recovery: True가 함께 나타난다는 것입니다. 이는 악성 오래된 체크포인트가 복구 대상으로 선택되지 않았지만, SpeechBrain이 체크포인트 후보를 나열하는 동안 해당 메타데이터가 여전히 파싱되고 실행되었음을 보여줍니다.

페이로드는 의도적으로 무해합니다. 로컬 마커 문자열만 작성합니다:

root@kitploit:~
speechbrain_checkpoint_yaml_loader_rce_triggered

셸을 생성하거나, 네트워크 서비스에 연결하거나, 비밀번호를 읽거나, 데이터를 삭제하거나, PoC 디렉터리 외부의 파일을 수정하지 않습니다.

해결 방법

SpeechBrain 1.1.1 이상으로 업그레이드하세요.

영구적인 코드 수정은 체크포인트 메타데이터에 PyYAML의 안전한 로더를 사용하는 것입니다:

root@kitploit:~
yaml.safe_load(fi)

또는:

root@kitploit:~
yaml.load(fi, Loader=yaml.SafeLoader)

체크포인트 메타데이터는 unixtime 및 end-of-epoch와 같은 스칼라 값만 필요하므로, 이 파싱 경로에서는 Python 객체 생성이 활성화되어서는 안 됩니다.

즉각적인 패치 또는 업그레이드가 불가능한 경우:

  • 신뢰할 수 없는 소스의 체크포인트 디렉터리, 모델 아티팩트 또는 아카이브를 사용하지 마세요.
  • SpeechBrain 학습 및 추론 작업을 최소 권한으로 격리하세요.
  • CKPT.yaml의 예상치 못한 태그와 필드를 검증하거나 거부하세요.
  • 외부에서 제공된 체크포인트 디렉터리에서 자동 재개를 피하세요.

크레딧

Sai Teja Erukude가 발견 및 보고했으며, VulnCheck를 통해 조정되었습니다.

참고 자료

  • CVE 레코드: https://www.cve.org/CVERecord?id=CVE-2026-10036
  • VulnCheck 권고: https://www.vulncheck.com/advisories/speechbrain-arbitrary-code-execution-via-ckpt-yaml-parsing
  • 릴리스 노트: https://github.com/speechbrain/speechbrain/releases/tag/v1.1.1
  • 풀 리퀘스트: https://github.com/speechbrain/speechbrain/pull/3067
  • 패치 커밋: https://github.com/speechbrain/speechbrain/commit/22a616646a493871401461f80b2d5cf564cb2850
  • PyYAML 문서: https://pyyaml.org/wiki/PyYAMLDocumentation
  • 로컬 워크스루: exploit_walkthrough.md
도구 다운로드