Skip to main content

BentoPDF CVE-2026-77581

| EUVDEUVD-2026-86229 HIGH
Server-Side Request Forgery (SSRF) (CWE-918)
2026-09-24 GitHub_M
8.6
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
8.6 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L
vuln.today AI
7.0 HIGH

Network-reachable and unauthenticated (forgeable Origin, optional PROXY_SECRET), but AC:H reflects the DNS-rebinding timing race and non-default off-Cloudflare runtime; primary impact is reading internal responses (C:H) with limited I/A.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
Low
Availability
Low

Lifecycle Timeline

5
POC Analysis Generated
Sep 24, 2026 - 23:25 vuln.today
Patch available
Sep 24, 2026 - 17:18 EUVD
Metadata Corrected
Sep 24, 2026 - 16:40 vuln.today
tag: Alam00000 added
Analysis Generated
Sep 24, 2026 - 16:16 vuln.today
CVE Published
Sep 24, 2026 - 15:23 cve.org
HIGH 8.6

DescriptionCVE.org

BentoPDF is a client-side PDF toolkit that is self hostable. In 2.8.6 and earlier, the certificate and timestamp CORS proxy in cloudflare/cors-proxy-worker.js uses isPrivateOrReservedHost() to validate a supplied hostname separately from the DNS resolution used by fetch(targetUrl), allowing an attacker-controlled hostname to resolve to an internal or reserved destination after validation. A certificate-like path can satisfy ALLOWED_PATH_PATTERNS, and direct clients can forge the browser-oriented Origin header. Deployments without PROXY_SECRET skip the optional signature check, while the signature is an anti-abuse measure rather than a destination-security boundary. The proxy has a 10 MB response limit and can relay response bodies from reachable destinations. The advisory identifies both the official Worker deployment and self-hosted instances as impacted where the Worker execution environment can reach internal or reserved destinations. This vulnerability is fixed in 2.8.7.

AnalysisAI

Server-side request forgery in the BentoPDF certificate/timestamp CORS proxy (cloudflare/cors-proxy-worker.js) allows unauthenticated remote attackers to relay requests to internal, reserved, or cloud-metadata destinations when the Worker is hosted on a non-Cloudflare runtime. The flaw is a time-of-check/time-of-use gap: isPrivateOrReservedHost() validates the supplied hostname separately from the DNS resolution performed by fetch(targetUrl), so an attacker who controls a domain's DNS with a very low TTL can pass validation with a public address and have the fetch land on a private one; a certificate-like path satisfies ALLOWED_PATH_PATTERNS, and the browser-oriented Origin header can simply be forged by a direct client, with PROXY_SECRET being only an anti-abuse measure that ships in the public client bundle. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

No credit card · 7-day full trial

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
technique details hidden
Delivery
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation Exploitation requires the BentoPDF certificate/timestamp CORS proxy (cloudflare/cors-proxy-worker.js) to be deployed on a runtime OTHER than Cloudflare Workers (e.g., workerd, Node, or another runtime inside a cloud VPC) whose execution environment can actually route to internal/reserved/metadata addresses - on the default Cloudflare edge deployment the flaw is not exploitable because there is no route to private destinations. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment This is a real but heavily deployment-gated SSRF (CWE-918). … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation Vendor-released patch: upgrade BentoPDF to 2.8.7, which is the release referenced by the advisory (https://github.com/alam00000/bentopdf/releases/tag/v2.8.7) and contains the fix commits 45496fcd2ed6e02dcdde0d3839cc5024c091760c and 58cd1a8893bfe06e4a59a72adc2e7db00a8b9266; full details are in GHSA-5xjf-rr5x-pcfj. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, inventory every BentoPDF deployment that hosts cloudflare/cors-proxy-worker.js and confirm whether it runs on a non-Cloudflare runtime and at versions 2.8.6 or earlier; where it does, disable or network-isolate the certificate/timestamp CORS proxy endpoint, and in parallel block Worker egress to link-local and private ranges (169.254.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) and enforce IMDSv2 with a hop limit of 1 on all cloud instances in scope. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

CVE-2026-77581 vulnerability details – vuln.today

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