Skip to main content

Tenstorrent tt-metal EUVDEUVD-2026-107030

| CVE-2026-113743 LOW
Path Traversal (CWE-22)
2026-10-21 VulDB GHSA-xwr8-qcf8-4867
2.1
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious checkpoint with traversal in weight_map
  2. Exploit
    Victim loads checkpoint via tt_transformers loader
  3. Execution
    Path join escapes checkpoint directory
  4. Impact
    Read/load file outside intended directory

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

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

Exploitation Conditions

Exploitation requires the victim to load an attacker-controlled or untrusted checkpoint directory whose model.safetensors.index.json 'weight_map' entries contain relative ('../') or absolute paths that escape the checkpoint directory; the vulnerable call is load_hf_state_dict_filtered in models/tt_transformers/tt/load_checkpoints.py, which joined these filenames onto the checkpoint dir without containment checking. Limiting factors: the attack is gated by user interaction (UI:P) - someone must actually load the malicious checkpoint - and impact is read-oriented (a shard pulled from outside the directory), not direct code execution; it only affects environments running tt-metal up to 0.80.0 that load externally sourced checkpoints.

Impact

This is a low-priority issue despite being remotely reachable. The CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:P, all impacts Low, no scope change) yields a base score of only 2.1, and the SSVC exploitation sub-metric in the vector is E:P (proof-of-concept), consistent with the stated public POC rather than active exploitation. No EPSS score was provided and the CVE is NOT on CISA KEV, so there is no evidence of in-the-wild use. The one notable tension is AV:N combined with UI:P: the flaw lives in local checkpoint-loading code (load_hf_state_dict_filtered reading weight_map from model.safetensors.index.json), so 'remote' realistically means the attacker supplies a malicious model/checkpoint that a victim then loads - it is not unauthenticated server-side RCE. Net: a real but minor supply-chain-style path-traversal bug in a niche AI accelerator framework; patch during normal maintenance, not an emergency.

Exploit ScenarioDerived

An attacker publishes or otherwise delivers a malicious HuggingFace-style checkpoint whose model.safetensors.index.json weight_map contains traversal entries (e.g. '../../etc/...' or an absolute path). When a tt-metal user loads that checkpoint via load_hf_state_dict_filtered, the loader joins the untrusted filename onto the checkpoint directory and reads a file outside it. A public POC exists (3em0/cve_repo write-up), lowering the barrier, but exploitation still requires the victim to load the attacker-controlled checkpoint (UI:P).

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.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 – Oct 21, 2026

Path traversal in Tenstorrent tt-metal up to and including 0.80.0 lets a malicious model checkpoint direct the loader to read a safetensors shard from outside the checkpoint directory, because weight_map filenames in model.safetensors.index.json are joined onto the checkpoint path without containment checking. The weakness is reachable remotely but gated by user interaction: someone must actually load an untrusted or attacker-supplied checkpoint, and the impact is read-oriented (an out-of-directory shard is pulled into the loaded state dict) rather than direct code execution, which is why the assessed severity is low (CVSS 3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N; upstream CVSS 4.0 score 2.1). Publicly available exploit code exists and the vendor has released a fix in v0.81.0-dev20261016; there is no indication of confirmed active exploitation (CISA KEV).

RemediationAI

Upgrade tt-metal to v0.81.0-dev20261016 or later (release tag https://github.com/tenstorrent/tt-metal/releases/tag/v0.81.0-dev20261016); the fix is upstream commit 4851ccf347f6903c3d819eed60705600386e52c3, delivered via PR https://github.com/tenstorrent/tt-metal/pull/60634, which adds a lexical abspath/commonpath containment check (_checkpoint_file_path) plus a check_checkpoint_index pre-flight that runs before transformers.from_pretrained. If upgrading is not immediately possible, only load checkpoints whose model.safetensors.index.json weight_map values are bare filenames verified not to contain '..' segments or absolute paths - this is cheap to script and blocks the traversal exactly, but it must be applied to every checkpoint including cached snapshots or the protection is bypassed. Restrict the checkpoint directory to a location whose parent contains nothing sensitive and run the loading process with read-only, least-privilege filesystem access (container or sandbox), accepting that this constrains legitimate access to the model cache but limits what an escaping shard path can reach. Do not rely on HF cache symlink layout as a mitigation; the fix deliberately allows those symlinks, so symlink presence is not a trustworthy indicator of a malicious index.

Affected VersionsENISA

tt-metal 0.12
tt-metal 0.35
tt-metal 0.67
tt-metal 0.60
tt-metal 0.65
tt-metal 0.3
tt-metal 0.19
tt-metal 0.30
tt-metal 0.22
tt-metal 0.46
tt-metal 0.59
tt-metal 0.15
tt-metal 0.52
tt-metal 0.55
tt-metal 0.32
tt-metal 0.16
tt-metal 0.7
tt-metal 0.28
tt-metal 0.48
tt-metal 0.80.0
tt-metal 0.43
tt-metal 0.53
tt-metal 0.63
tt-metal 0.72
tt-metal 0.58
tt-metal 0.29
tt-metal 0.50
tt-metal 0.73
tt-metal 0.49
tt-metal 0.4
tt-metal 0.8
tt-metal 0.74
tt-metal 0.79
tt-metal 0.71
tt-metal 0.20
tt-metal 0.21
tt-metal 0.23
tt-metal 0.39
tt-metal 0.11
tt-metal 0.14
tt-metal 0.75
tt-metal 0.51
tt-metal 0.77
tt-metal 0.66
tt-metal 0.24
tt-metal 0.57
tt-metal 0.13
tt-metal 0.47
tt-metal 0.5
tt-metal 0.2
tt-metal 0.10
tt-metal 0.61
tt-metal 0.18
tt-metal 0.64
tt-metal 0.17
tt-metal 0.38
tt-metal 0.44
tt-metal 0.70
tt-metal 0.62
tt-metal 0.41
tt-metal 0.78
tt-metal 0.69
tt-metal 0.42
tt-metal 0.36
tt-metal 0.34
tt-metal 0.45
tt-metal 0.68
tt-metal 0.25
tt-metal 0.26
tt-metal 0.1
tt-metal 0.6
tt-metal 0.31
tt-metal 0.9
tt-metal 0.33
tt-metal 0.76
tt-metal 0.40
tt-metal 0.56
tt-metal 0.27
tt-metal 0.37
tt-metal 0.54

Affected Packages

euvd tt_metal 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

tt-metal is Tenstorrent's low-level software stack for its AI accelerators, and its model-loading helpers in load_checkpoints.py support Hugging Face-style sharded checkpoints. A sharded HF checkpoint ships a model.safetensors.index.json whose 'weight_map' maps tensor names to shard filenames; the vulnerable code did os.path.join(ckpt_dir, file) on each entry from that index with no validation, which is the classic CWE-22 path traversal pattern - an entry such as '../../outside.safetensors' or an absolute path resolves outside the intended checkpoint root. The upstream fix (commit 4851ccf, PR 60634) introduces a _checkpoint_file_path helper that computes os.path.abspath of the joined path and rejects anything whose os.path.commonpath with the checkpoint root is not the root itself, explicitly using abspath rather than realpath so that legitimate Hugging Face cache snapshots (which are symlinks into ../../blobs) continue to load. The fix also adds check_checkpoint_index, called before transformers' from_pretrained on local checkpoints, because from_pretrained independently follows escaping weight_map entries and because the per-layer load path could swallow a ValueError and fall back to from_pretrained. The weakness is a trust-boundary problem: tt-metal assumes the checkpoint index is honest, while the index is attacker-controlled data whenever a model is pulled from an untrusted source.

Know when Tt Metal 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 2.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 5.4 MEDIUM

Attacker supplies a malicious checkpoint but the victim must load it (UI:R); no privileges needed (PR:N); traversal reads a file outside the dir giving limited confidentiality/integrity impact, no availability impact.

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

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
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 21, 2026 - 02:23 NVD
MEDIUM LOW
CVSS changed
Oct 21, 2026 - 02:23 NVD
5.3 (MEDIUM) 2.1 (LOW)
CVE Published
Oct 21, 2026 - 01:15 cve.org
LOW 2.1

DescriptionCVE.org

A weakness has been identified in Tenstorrent tt-metal up to 0.80.0. The affected element is the function load_hf_state_dict_filtered of the file models/tt_transformers/tt/load_checkpoints.py. This manipulation of the argument weight_map causes path traversal. The attack may be initiated remotely. The exploit has been made available to the public and could be used for attacks. Upgrading to version 0.81.0-dev20261016 is sufficient to fix this issue. Patch name: 4851ccf347f6903c3d819eed60705600386e52c3. It is suggested to upgrade the affected component.

Threat Intelligence Overview

EPSS Score
0.4%
Top 62% exploitable
Prevalence
Low
niche AI-accelerator framework for Tenstorrent hardware, limited deployment
Exploit
POC
Public exploit code exists
Data Quality
7 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 LOW
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
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
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

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

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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