Skip to main content

torchdistill EUVDEUVD-2026-98206

| CVE-2026-108947 LOW
Deserialization of Untrusted Data (CWE-502)
2026-10-13 VulDB GHSA-m93m-2x62-w23p
1.9
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Obtain local low-privilege access
  2. Delivery
    Craft malicious pickle checkpoint file
  3. Exploit
    Pass path as src_ckpt to load_ckpt
  4. Execution
    Trigger deserialization in main_util.py
  5. Impact
    Execute attacker-controlled code

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 the load_ckpt function in torchdistill/common/main_util.py be invoked with an attacker-influenced src_ckpt argument pointing to a malicious (pickle-serialized) checkpoint, and requires LOCAL access with low privileges (PR:L, AV:L) - not remote exploitation. The core limiting factor is that an attacker must already be able to run code or place/supply a checkpoint file on the system, and the victim application must load that untrusted checkpoint; default usage with trusted, self-generated checkpoints is not exploitable. There is no remote/network vector and no unauthenticated path. Because the maintainer treats checkpoint loading as trusted-input behavior, deployments that only ever load first-party checkpoints are effectively not at risk.

Impact

This is a low-to-moderate priority issue despite the deserialization (CWE-502) class typically being severe. The supplied CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N) scores 4.8 (Medium) and explicitly requires LOCAL access with LOW privileges, which sharply limits real-world risk compared to a network-exploitable deserialization flaw. The 'E:P' in the vector and the reference set confirm a public proof-of-concept exists, so publicly available exploit code exists - but there is NO CISA KEV listing and no EPSS score was provided, so there is no evidence of active or widespread exploitation. The most important signal is the maintainer's own response in the referenced GitHub issue (#550): they closed it as a duplicate and consider the behavior 'tolerable for this project,' meaning no fix is planned and the project treats loading checkpoints as inherently trusted input. In practice this flaw primarily matters to anyone who loads untrusted PyTorch checkpoint files via load_ckpt; it is not a mass-exploitation candidate. Note a tension worth verifying: the input impact metrics are rated LOW (VC:L/VI:L/VA:L), yet Python pickle-based deserialization normally yields arbitrary code execution (full impact) - the low ratings likely reflect the reporter's view that only a local, already-authorized actor supplying their own file is affected. Treat impact as potentially higher than the Medium score suggests if untrusted checkpoints can reach load_ckpt.

Exploit ScenarioDerived

A local, low-privileged user (or any workflow that ingests an externally sourced model checkpoint) supplies a crafted malicious checkpoint path as the src_ckpt argument to torchdistill's load_ckpt function. When the checkpoint is deserialized, attacker-controlled pickle data executes, compromising the process. A public proof-of-concept is referenced in GitHub issue #550.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 13, 2026

Deserialization of attacker-influenced checkpoint files in torchdistill through 1.1.5 can lead to arbitrary code execution in the context of the process that invokes load_ckpt, but exploitation requires local access and low privileges and depends on the application loading an untrusted src_ckpt file. Publicly available exploit code exists, and there is no indication of confirmed active exploitation (CISA KEV). Overall priority is low-to-moderate because default workflows that load only trusted, self-generated checkpoints are not exposed.

RemediationAI

No vendor-released patch is identified in the provided data; the maintainer closed the upstream issue as a duplicate and the project appears to treat checkpoint loading as a trusted operation. Until a fixed release beyond 1.1.5 is published and confirmed, avoid passing untrusted or attacker-writable src_ckpt paths to load_ckpt. Restrict write access to checkpoint directories and model artifact stores so low-privileged users cannot plant malicious checkpoints, and run training or inference jobs as a dedicated least-privileged account, although that does not eliminate risk if the job must load a malicious file. Where untrusted checkpoints must be inspected, do so in a sandboxed container with read-only mounts and no host credentials, accepting the operational overhead and breakage of normal checkpoint loading. Prefer loading only first-party, integrity-checked checkpoints and consider converting trusted artifacts to a safe serialization format where the codebase supports it, but there is no provided evidence of an upstream safe-loading option. Advisory references: https://vuldb.com/vuln/416771, https://vuldb.com/cve/CVE-2026-108947, and https://github.com/yoshitomo-matsubara/torchdistill/issues/550. If the vendor later publishes a patch, upgrade to the exact fixed version named in that advisory.

Affected VersionsENISA

torchdistill 1.1.1
torchdistill 1.1.2
torchdistill 1.1.5
torchdistill 1.1.0
torchdistill 1.1.4
torchdistill 1.1.3

Affected Packages

euvd torchdistill no fix

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

CVE-2026-108947 is a CWE-502 deserialization flaw in yoshitomo-matsubara torchdistill, specifically in the load_ckpt function of torchdistill/common/main_util.py. The vulnerable behavior is the loading of a checkpoint specified by src_ckpt without adequate trust validation; because PyTorch checkpoints commonly use pickle-based serialization, a malicious checkpoint can trigger object deserialization side effects and code execution when loaded. The CPE cpe:2.3:a:yoshitomo-matsubara:torchdistill:*:*:*:*:*:*:*:* indicates the affected product family without version constraint, while the reported affected range is up to 1.1.5. The supplied CVSS 4.0 vector is AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P, reflecting local access, low privileges, no user interaction, and proof-of-concept exploit maturity; the independent assessment rates the same conditions under CVSS 3.1 as AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, meaning successful exploitation can have high confidentiality, integrity, and availability impact even though the attack path is constrained. The maintainer considers this similar to a prior internal report and closed the GitHub issue as a duplicate, treating checkpoint loading as trusted-input behavior.

Know when Torchdistill 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 (VulDB) PRIMARY 1.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 7.8 HIGH

Local vector with low-privilege invocation of load_ckpt (AV:L/PR:L/AC:L); pickle deserialization yields arbitrary code execution, so C/I/A rated High despite the input's low impact ratings.

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

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

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

Lifecycle Timeline

3
Severity Changed
Oct 13, 2026 - 02:22 NVD
MEDIUM LOW
CVSS changed
Oct 13, 2026 - 02:22 NVD
4.8 (MEDIUM) 1.9 (LOW)
CVE Published
Oct 13, 2026 - 01:00 cve.org
MEDIUM 4.8

DescriptionCVE.org

A flaw has been found in yoshitomo-matsubara torchdistill up to 1.1.5. This affects the function load_ckpt of the file torchdistill/common/main_util.py. Executing a manipulation of the argument src_ckpt can lead to deserialization. The attack needs to be launched locally. The exploit has been published and may be used. The project maintainer explains: "This is very similar to an internal report that GH auto-generated for the owner before, which I found tolerable for this project at that time. So I will close this as duplicate."

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Low
niche single-maintainer academic PyTorch knowledge-distillation library
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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 LOW
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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· derived
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: +20
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.

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