Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify exposed BentoML API endpoint
-
DeliveryCraft URL targeting 100.64.0.0/10 CGNAT range
-
ExploitSubmit via multipart upload or JSON body
-
ExecutionBentoML make_safe_connect passes CGNAT address
-
PersistServer makes outbound request to internal CGNAT host
-
ImpactExfiltrate internal service response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential 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 a BentoML server running version 1.4.19 through 1.4.39 that accepts either multipart file uploads processed by |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N, score 6.9) reflects network-reachable, unauthenticated, zero-complexity exploitation with limited confidentiality impact on both the vulnerable system and subsequent CGNAT hosts. Real-world risk is deployment-context dependent: organizations running BentoML in ISP infrastructure, carrier-grade environments, or cloud platforms using CGNAT internally face meaningful exposure to internal service probing and data exfiltration. In standard enterprise deployments without CGNAT-addressed internal services, practical impact is substantially reduced even though the vulnerability is still exploitable. No EPSS score was provided in the input data; KEV status is not listed, and no public exploit code has been identified - these signals are absent rather than confirmed negative, so escalation risk cannot be ruled out given the well-scoped incomplete-fix characterization that lowers the bar for targeted exploitation. The incomplete-fix nature relative to CVE-2025-54381 implies the original SSRF attack surface is well-documented, reducing attacker research effort. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a crafted HTTP request to a publicly exposed BentoML API endpoint - either a multipart file upload with a URL field resolving to a 100.64.x.x address, or a JSON body containing such a URL. Because |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 24, 2026
Server-Side Request Forgery in BentoML versions 1.4.19 through 1.4.39 exposes internal CGNAT infrastructure by failing to block RFC 6598 shared address space (100.64.0.0/10) in the make_safe_connect safeguard. Unauthenticated remote attackers can supply crafted URLs via multipart file uploads or JSON request bodies, causing the BentoML server to make outbound requests to CGNAT-addressed internal hosts - a class of targets increasingly common in cloud-native and ISP environments. This is an incomplete fix for CVE-2025-54381; no public exploit has been identified at time of analysis, but the known patch gap and zero-prerequisite attack surface warrant prompt remediation.
RemediationAI
No patched release version is confirmed from the available input data - the fix status should be verified directly at the GitHub issue tracker (https://github.com/bentoml/BentoML/issues/5644) before assuming a safe upgrade target exists. As a compensating control, add 100.64.0.0/10 to network-level egress ACLs on hosts running BentoML to block outbound requests to CGNAT addresses; note this may disrupt legitimate connectivity in carrier or ISP environments that rely on CGNAT for internal routing, so validate against your network topology before applying. Where a WAF or reverse proxy fronts the BentoML API, configure request body inspection to reject or sanitize URL-valued fields in multipart uploads and JSON bodies before they reach the application. Monitor the BentoML GitHub repository and the VulnCheck advisory page for a patched release, and subscribe to the upstream issue for fix confirmation.
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
BentoML is a Python framework for serving machine learning models as REST APIs. The make_safe_connect function in _internal/utils/uri.py (lines 89-96 in v1.4.39, per the referenced GitHub source) implements an outbound connection safeguard intended to prevent SSRF by rejecting requests to RFC 1918 private addresses, loopback (127.0.0.0/8), and link-local (169.254.0.0/16) ranges. The blocklist omits RFC 6598 CGNAT shared address space (100.64.0.0/10), which is used by ISPs and some cloud providers for internal carrier infrastructure. Attacker-controlled URLs can enter the server through two serde paths: MultipartSerde.ensure_file for file uploads and JSONSerde.parse_request for JSON body parsing. CWE-918 (Server-Side Request Forgery) identifies the root cause as the server fetching user-supplied URLs without complete destination validation, allowing the server to act as a proxy to otherwise unreachable internal systems. The affected CPE is cpe:2.3:a:bentoml:bentoml:*:*:*:*:*:*:*:* across the stated version range.
Know when Bentoml 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:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N
Network-reachable SSRF with no auth required (PR:N); scope changed (S:C) as requests reach CGNAT internal hosts beyond the vulnerable server; limited confidentiality only, no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
BentoML's outbound connection safeguard (make_safe_connect in _internal/utils/uri.py) blocks private, loopback, and link-local IP addresses but fails to reject the RFC 6598 shared address space (100.64.0.0/10, CGNAT). In versions 1.4.19 through 1.4.39, an unauthenticated attacker can supply URLs pointing to that range via multipart file handling (MultipartSerde.ensure_file) or JSON request parsing (JSONSerde.parse_request), causing the server to make outbound requests to internal hosts on CGNAT networks (Server-Side Request Forgery). This is an incomplete fix for CVE-2025-54381.
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
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
Arbitrary file write in BentoML allows an attacker-supplied bento or model tar archive to escape the extraction director
BentoML versions prior to 1.4.34 allow path traversal attacks through improperly validated file path fields in bentofile
Command injection in bentoml OpenLLM 0.6.30 allows local low-privilege users to execute arbitrary shell commands by supp
EUVD-2026-64680
GHSA-x8r7-g3fv-cf37
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB