Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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 취약점.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
4017일 전아직 검토되지 않음
공유

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

심각도: 높음, 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

공개일: 2026년 8월 27일


요약

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

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

yaml.load(fi, Loader=yaml.Loader)

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

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

영향

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

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

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

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

기술적 세부 사항

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

Checkpointer.recover_if_possible()
  -> list_checkpoints()
  -> _construct_checkpoint_objects()

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

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

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()을 호출하며, 실행 증거를 출력합니다.

로컬 테스트 환경에서만 실행하십시오:

python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

취약한 버전에서 예상되는 증거:

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이 체크포인트 후보를 나열하는 동안 그 메타데이터가 여전히 파싱되고 실행되었음을 보여줍니다.

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

speechbrain_checkpoint_yaml_loader_rce_triggered

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

해결 방안

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

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

yaml.safe_load(fi)

또는:

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
도구 다운로드