CVE intelligence and bounded remediation

CVE-2026-49359 — PhpWeasyPrint is a PHP library allowing PDF generation from a URL or an HTML page

Medium CVSS 6.5

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.