CVE-2026-49359: pontedilana php-weasyprint · Server-Side Request Forgery (SSRF)
Affects pontedilana php-weasyprintSource CVE Database V5
Not known to be exploited · CVSS 6.5 Medium : upgrade to 2.6.0 when convenient.
Data as of 4 Nov 2026, 10:58 UTC
- EPSS
- 0.4% chance of exploitation in 30 days – higher than 36% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 2.6.0
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:NExploitation evidence
Disclosed: evidence found.
CVE published 19 Jun 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 4 Nov 2026.
What to do
Upgrade php-weasyprint and pontedilana/php-weasyprint to 2.6.0.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| pontedilanaphp-weasyprint | Affected
| Fixed in
|
Packagistpontedilana/php-weasyprintpkg:composer/pontedilana/php-weasyprintOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
PhpWeasyPrint version 2.6.0 contains a patch that addresses this vulnerability. Users should upgrade to version 2.6.0 or later to remediate this issue. No additional vendor advisory or temporary mitigations are provided. Patch status is confirmed by the version bump and description. Until upgraded, avoid passing untrusted input to the 'attachment' option or restrict URL schemes manually.
Description
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.
References
- github.com/pontedilana/php-weasyprint/security/advisories/GHSA-x8g9-h984-pc36 (opens in a new tab)
- github.com/KnpLabs/snappy/security/advisories/GHSA-c5fp-p67m-gq56 (opens in a new tab)
- github.com/pontedilana/php-weasyprint/commit/9582dcf119a405276cf55e9e10bc577a887792cb (opens in a new tab)
- github.com/pontedilana/php-weasyprint/releases/tag/2.6.0 (opens in a new tab)