Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious model/config with controlled Type reference
-
DeliveryDistribute artifact to victim
-
ExploitVictim loads artifact in unsloth
-
Execution_is_transformer_module_ref resolves attacker-chosen class
-
PersistUnsafe reflection selects code path
-
ImpactLimited disclosure/integrity impact
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V15 - Secure Coding and Architecture Reflection safety, class allowlisting
|
| Exploitation Conditions | Exploitation requires the victim to load an attacker-influenced input (a model, tokenizer, or configuration artifact) that reaches FastSentenceTransformer._is_transformer_module_ref in unsloth/models/sentence_transformer.py, where the 'Type' argument is used to select a class or code path via reflection. The vendor vector marks UI:P, so passive user interaction (loading/processing the crafted artifact) is a prerequisite - this is NOT exploitation of an exposed network service at rest. Limiting factors: affected versions are unsloth up to 0.1.501-beta (upgrade to 0.1.902-beta mitigates); impact is bounded to Low confidentiality/integrity/availability; and realistic exploitation depends on the victim ingesting untrusted model/config data rather than default-configuration remote access. |
| Impact | This is a moderate-severity, low-priority issue despite the 'remote' labeling. The CWE-470 (unsafe reflection) flaw in unsloth's FastSentenceTransformer._is_transformer_module_ref lets externally-controlled input select which class/code path is used, but the vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L) caps all three impacts at Low and requires passive user interaction, yielding only 5.3. Signals are mixed: a public POC exists and SSVC-style exploit maturity is Proof-of-Concept (E:P), but there is NO CISA KEV listing and NO EPSS score provided, so there is no evidence of widespread or automated exploitation - exploitation status is 'publicly available exploit code exists', which must not be conflated with active exploitation. Note a signal tension: the vector claims AV:N (network) and PR:N (no privileges), yet the vulnerable function is a transformer-module reference check that is realistically triggered by loading a crafted model/config artifact - i.e., it behaves like a local/supply-chain trust issue dependent on user-supplied input (UI:P), not a true unauthenticated network service. Verify the real attack surface with the vendor before treating AV:N literally. Overall: a genuine code-selection weakness worth patching, but not an emergency given low impact, no KEV, and no EPSS. |
| Exploit ScenarioDerived | An attacker publishes or supplies a malicious model/configuration artifact whose type/module reference is crafted so that unsloth's _is_transformer_module_ref resolves attacker-chosen classes or code paths. A victim who loads this artifact in an unsloth fine-tuning/inference workflow (UI:P) triggers the unsafe reflection, letting the attacker influence which code is instantiated. A public POC (poc.zip) is available, lowering the barrier to reproduction. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Unsafe reflection in Unsloth's FastSentenceTransformer class (versions up to 0.1.501-beta) lets an attacker who supplies a crafted model, tokenizer, or configuration artifact steer class selection inside _is_transformer_module_ref, giving limited confidentiality, integrity, and availability impact. The CVSS vectors mark PR:N, so no credentials are needed, but UI:R/UI:P means the victim must load or process the attacker-influenced artifact - this is not exploitation of an exposed network service running with default configuration. Publicly available exploit code exists; the issue is fixed in Unsloth 0.1.902-beta.
RemediationAI
Upgrade to Unsloth 0.1.902-beta or later - for example pip install --upgrade unsloth==0.1.902-beta, or pin the fixed commit de801746386a53a0cb26216e715a0af863b76ad9 from https://github.com/unslothai/unsloth/commit/de801746386a53a0cb26216e715a0af863b76ad9; release notes are at https://github.com/unslothai/unsloth/releases/tag/v0.1.902-beta and the advisory at https://vuldb.com/vuln/421754. Because exploitation requires the victim to load an attacker-influenced artifact, the strongest compensating control until patching is to treat model inputs as code: only load configs/tokenizers from allowlisted, pinned repository revisions with verified hashes, and review config.json and tokenizer_config.json for unexpected architectures, auto_map, or class-reference fields before use. A second control is to run Unsloth training/inference inside a container with a read-only root filesystem, no inbound network and restricted egress, and a non-privileged user, so that unexpected class resolution cannot reach sensitive files or the network - trade-off is reduced convenience for hub downloads and experiment tracking. A third option is to disable or stub the SentenceTransformer fast-path (use the standard sentence_transformers loader without Unsloth's FastSentenceTransformer wrapper) on hosts that must consume untrusted models, at the cost of the memory/speed benefits that wrapper provides. Disabling remote-code trust (trust_remote_code=False) reduces, but does not eliminate, reachable classes through this reflection path.
Affected VersionsENISA
Affected Packages
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
The root cause is CWE-470 (Use of Externally-Controlled Input to Select Classes or Code), a reflection/insecure-deserialization-adjacent class of bug. In unsloth/models/sentence_transformer.py, the FastSentenceTransformer._is_transformer_module_ref helper takes a Type argument and uses it to resolve/select a class or code path dynamically - typically by mapping a name onto an importable class in the transformers/sentence-transformers namespace. When that name comes from a model repository's config, tokenizer metadata, or similar artifact rather than a trusted constant, an attacker can influence which class or module gets resolved and instantiated. Unsloth is a fine-tuning layer built on top of Hugging Face Transformers, so the practical attack surface is the model supply chain: users routinely pull configs, tokenizers, and adapter metadata from hubs or third-party repositories, and that untrusted data flows into this reflection call. The assessed impact is bounded to Low across confidentiality, integrity, and availability (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L; vendor CVSS:4.0 with E:P), meaning the effect is closer to unexpected object resolution or partial code-path control than straightforward arbitrary code execution. The affected package is captured by cpe:2.3:a:unslothai:unsloth:*:*:*:*:*:*:*:* for all builds through 0.1.501-beta.
Know when Unsloth 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
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
Triggered by loading attacker-controlled input (UI:R) with no auth (PR:N); reflection-based class selection yields limited, bounded C/I/A impact, so all Low and scope unchanged.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A weakness has been identified in unslothai unsloth up to 0.1.501-beta. This affects the function FastSentenceTransformer._is_transformer_module_ref of the file unsloth/models/sentence_transformer.py. This manipulation of the argument Type causes use of externally-controlled input to select classes or code. 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.1.902-beta is able to mitigate this issue. Patch name: de801746386a53a0cb26216e715a0af863b76ad9. The affected component should be upgraded.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-104057
GHSA-fmj9-5fq7-mvjg
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB