Skip to main content

SpeechBrain CVE-2026-10036

| EUVDEUVD-2026-67226 HIGH
Deserialization of Untrusted Data (CWE-502)
2026-08-27 VulnCheck GHSA-f54r-jqhg-q7vg
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Publish malicious model archive with crafted CKPT.yaml
  2. Delivery
    Victim downloads and extracts archive to checkpoint path
  3. Exploit
    Victim invokes Checkpointer.recover_if_possible()
  4. Execution
    PyYAML unsafe loader enumerates and parses CKPT.yaml
  5. Persist
    !!python/object/apply tag triggers Python callable
  6. Impact
    Arbitrary code executes in victim process context

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that a file named CKPT.yaml containing PyYAML-compatible Python object construction tags (e.g., !!python/object/apply) be present anywhere within the directory tree configured as the SpeechBrain Checkpointer's checkpoint path. The attacker does not need to select or restore from the malicious checkpoint - code execution fires during the candidate enumeration phase of recover_if_possible() regardless of whether the checkpoint is ultimately chosen. The victim must invoke recover_if_possible() at least once with the compromised path present. The primary limiting factor is the file-delivery prerequisite: the attacker must have a mechanism to place the malicious CKPT.yaml in the checkpoint directory, most realistically through a supply-chain vector (distributing a tampered model package) or a shared-storage compromise. Deployments that load only internally generated checkpoints from access-controlled directories and never ingest third-party model archives are not directly exposed to this attack path.

Impact

The CVSS 4.0 score of 8.7 is grounded in high CIA impact and a low-complexity attack path, tempered by a passive user-interaction requirement (UI:P): a victim's system must invoke Checkpointer.recover_if_possible() against a path containing the malicious file. This is not a trivially internet-exposed surface - the attacker must first deliver the malicious CKPT.yaml into the checkpoint directory, most plausibly via a supply-chain vector such as a tampered model package on Hugging Face Hub or a similar repository. EPSS data was not provided in source intelligence, so statistical exploitation probability cannot be quoted. The CVE is not listed in the CISA KEV catalog, confirming that active exploitation is not currently verified. However, the underlying technique - PyYAML unsafe deserialization via !!python/object/apply - is one of the most thoroughly documented Python exploit classes, with tooling and write-ups available since at least 2017; the barrier to weaponizing this specific CVE is low once file-write capability to the checkpoint path is achieved. Risk is highest for automated ML training pipelines and research environments that pull third-party checkpoints without integrity verification; environments loading only internally-generated checkpoints from controlled storage face substantially lower realistic exposure.

Exploit ScenarioDerived

An attacker publishes a trojanized SpeechBrain pretrained model on a public model hub, embedding a !!python/object/apply:subprocess.check_output YAML tag in the bundled CKPT.yaml that executes a reverse-shell payload. A researcher or automated MLOps pipeline downloads the archive and configures a SpeechBrain Checkpointer pointing to the extracted directory; on the next call to recover_if_possible(), the unsafe PyYAML loader parses CKPT.yaml during candidate enumeration and immediately executes the embedded command - before any checkpoint selection occurs, and with no further attacker interaction required. No CVE-specific proof-of-concept has been published, but the deserialization technique is identical to widely documented PyYAML exploitation patterns.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 27, 2026

Arbitrary code execution in SpeechBrain before v1.1.1 is triggered during checkpoint candidate enumeration when PyYAML's unsafe loader parses attacker-controlled CKPT.yaml files in the configured checkpoint path. An attacker who can plant a crafted CKPT.yaml - for example via a malicious pretrained model distributed through a public model repository - can embed !!python/object/apply YAML tags that cause Python to instantiate arbitrary objects at parse time, achieving code execution before any checkpoint is ever selected for recovery. No public exploit specific to this CVE has been identified at time of analysis, and it is not listed in the CISA KEV catalog, but the underlying PyYAML unsafe deserialization class is extensively documented and exploit techniques are widely known.

RemediationAI

The definitive fix is upgrading SpeechBrain to version 1.1.1 or later, which introduces safe YAML loading for checkpoint metadata files via commit 22a616646a493871401461f80b2d5cf564cb2850 (PR #3067); release assets are available at https://github.com/speechbrain/speechbrain/releases/tag/v1.1.1. For environments unable to upgrade immediately, the most effective compensating control is strictly limiting the checkpoint path to directories under organizational control: do not point a Checkpointer at any directory containing externally sourced or community-downloaded checkpoint archives. Verifying cryptographic checksums or signatures of downloaded model packages before placing them in the checkpoint directory reduces supply-chain delivery risk, though it does not patch the underlying defect. Enforcing network egress restrictions on training environments and mounting checkpoint directories as read-only from a verified artifact store further constrains the attack surface. None of these workarounds are substitutes for patching, as they address delivery rather than the vulnerable code path itself.

Affected VersionsENISA

speechbrain 0 <1.1.1

Affected Packages

euvd speechbrain fix: 1.1.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

SpeechBrain (CPE: cpe:2.3:a:speechbrain:speechbrain:*:*:*:*:*:*:*:*) is a PyTorch-based speech processing toolkit used in research pipelines for automatic speech recognition, speaker diarization, and related tasks. The root cause is CWE-502 (Deserialization of Untrusted Data): the Checkpointer.recover_if_possible() method enumerates candidate checkpoint directories and parses each CKPT.yaml metadata file using PyYAML's unsafe loader (yaml.full_load or equivalent). PyYAML's unsafe loader resolves Python-specific YAML tags such as !!python/object/apply, which can call arbitrary Python callables including os.system or subprocess.check_output during deserialization. Crucially, this parsing occurs during candidate discovery - before any checkpoint is selected - meaning every CKPT.yaml in the path is a potential trigger. The fix in commit 22a616646a493871401461f80b2d5cf564cb2850 (PR #3067, released in v1.1.1) replaces the unsafe loader with yaml.safe_load, which disables Python-specific tags entirely.

Know when Speechbrain gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.7 HIGH
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
vuln.today AI 8.8 HIGH

Network vector via checkpoint download; passive user invocation of recovery required (UI:R); no privileges needed on victim system; full code execution yields C:H/I:H/A:H with unchanged scope.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

SpeechBrain before 1.1.1 contains an arbitrary code execution vulnerability that allows attackers to execute arbitrary code by supplying a crafted CKPT.yaml checkpoint metadata file parsed with PyYAML's unsafe loader during candidate enumeration in Checkpointer.recover_if_possible(). Attackers can embed malicious Python object construction tags such as !!python/object/apply in any CKPT.yaml file within the configured checkpoint path to trigger code execution during candidate discovery, even if the malicious checkpoint is never selected for recovery.

Executive ViewAI

Why It Matters

SpeechBrain versions prior to v1.1.1 contain an arbitrary code execution vulnerability in checkpoint configuration parsing that can be triggered when malicious pretrained models are downloaded from public repositories. Organizations deploying SpeechBrain for speech processing or ML inference face immediate risk of system compromise if they load compromised models, potentially giving attackers full code execution in production environments.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
Low
niche speech-processing research toolkit, limited production enterprise deployment
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy