CVE intelligence and bounded remediation
CVE-2026-49359 — PhpWeasyPrint is a PHP library allowing PDF generation from a URL or an HTML page
PhpWeasyPrint is a PHP library allowing PDF generation from a URL or an HTML page. Prior to version 2.6.0, `pontedilana/php-weasyprint` fetches the content of option values server-side via `file_get_contents()` when the value looks like a URL, without restricting the URL scheme. The `attachment` option of `Pdf` is the reachable sink: any value that passes `isOptionUrl()` (`filter_var(..., FILTER_VALIDATE_URL)`) is downloaded by the PHP process and embedded into the generated PDF. Because `FILTER_VALIDATE_URL` accepts `http`, `https`, `ftp`, `file` and PHP stream wrappers such as `php://`, an attacker who can influence the `attachment` value reaches both a **Server-Side Request Forgery** primitive (e.g. internal HTTP endpoints, cloud metadata) and a local file disclosure primitive (`file://`, `php://filter/...`), with the fetched bytes exfiltrated as a PDF attachment. This is the same class of issue KnpLabs/snappy patched for its `xsl-style-sheet` option in GHSA-c5fp-p67m-gq56. The library is documented as a one-to-one substitute for KnpLabs/snappy and shares the same code shape. PhpWeasyPrint version 2.6.0 contains a patch for the issue.
- Severity
- Medium
- CVSS
- 6.5 (3.1)
- Published
- 2026-06-19
- CISA KEV
- Not currently listed
- Ecosystem
- software/application
- Weaknesses
- CWE-918
Affected products
No browser-safe affected-product rows are available.
Matched remediation archetype
Server-side request forgery and unintended proxying
This catalog composition supplies bounded fallback guidance. Explicitly reviewed curated workflows load with the complete record below.
Check exposure
- Inventory server-side URL fetchers, webhooks, importers, previews, redirects, proxies, and protocol handlers reachable from untrusted input.
- Map egress paths to internal services, metadata endpoints, loopback, private address space, and privileged control planes.
- Review DNS resolution, redirect, proxy, credential-forwarding, and URL parsing behavior without requesting sensitive targets.
Remediate safely
- Replace arbitrary destinations with named integrations or a strict allowlist of schemes, hosts, ports, and paths.
- Resolve and validate every destination and redirect hop, then enforce egress policy independently of application checks.
- Remove ambient credentials and sensitive headers from fetchers; apply response size, time, and content limits.
Authoritative sources
Complete CVE record and remediation plan
The detailed catalog view below loads this exact record, its source evidence, and the full seven-phase agentic change plan.