Description
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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| bentoml | BentoML | 1.4.19 – ≤ 1.4.39 | — |
References
- GitHub Issue #5644 issue-tracking
- https://github.com/bentoml/BentoML product
- https://github.com/bentoml/BentoML/blob/v1.4.39/src/bentoml/_internal/utils/uri.py#L89-L96 technical-description
- VulnCheck Advisory: BentoML 1.4.19 through 1.4.39 Server-Side Request Forgery via Unfiltered RFC 6598 Shared Address Space third-party-advisory