GHSA-VQR6-98R6-WQVG
Vulnerability from github – Published: 2026-07-28 09:31 – Updated: 2026-07-28 09:31The PDFDraft – Drag & Drop PDF Builder, PDF Viewer, Embed & Download PDF, Certificate & Invoice Designer plugin for WordPress is vulnerable to unauthorized access of data due to a missing capability check on the serveTemplatePdfAjax() function and the serveTemplatePdf() REST route (which is registered with permission_callback => '__return_true') in versions up to, and including, 1.1.0. This makes it possible for unauthenticated attackers to download stored template PDFs — which may contain customer PII, invoice, order, and certificate data — by requesting the publicly registered admin-ajax action pdfdraft_embed_pdf or the REST endpoint /wp-json/pdfdraft/v1/embed-pdf/templates/{slug}/pdf with a known or guessable design slug, bypassing the plugin's own .
{
"affected": [],
"aliases": [
"CVE-2026-12124"
],
"database_specific": {
"cwe_ids": [
"CWE-862"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-07-28T07:16:40Z",
"severity": "MODERATE"
},
"details": "The PDFDraft \u2013 Drag \u0026 Drop PDF Builder, PDF Viewer, Embed \u0026 Download PDF, Certificate \u0026 Invoice Designer plugin for WordPress is vulnerable to unauthorized access of data due to a missing capability check on the serveTemplatePdfAjax() function and the serveTemplatePdf() REST route (which is registered with `permission_callback =\u003e \u0027__return_true\u0027`) in versions up to, and including, 1.1.0. This makes it possible for unauthenticated attackers to download stored template PDFs \u2014 which may contain customer PII, invoice, order, and certificate data \u2014 by requesting the publicly registered admin-ajax action `pdfdraft_embed_pdf` or the REST endpoint `/wp-json/pdfdraft/v1/embed-pdf/templates/{slug}/pdf` with a known or guessable design slug, bypassing the plugin\u0027s own .",
"id": "GHSA-vqr6-98r6-wqvg",
"modified": "2026-07-28T09:31:28Z",
"published": "2026-07-28T09:31:28Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-12124"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/pdfdraft/trunk/src/EmbedPdf.php#L418"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/pdfdraft/trunk/src/EmbedPdf.php#L44"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/pdfdraft/trunk/src/EmbedPdf.php#L448"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/pdfdraft/trunk/src/EmbedPdf.php#L60"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/changeset?reponame=\u0026old=3621033%40pdfdraft\u0026new=3621033%40pdfdraft"
},
{
"type": "WEB",
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/3cb869dd-c8cf-4849-a13f-6c8cf1c196b6?source=cve"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N",
"type": "CVSS_V3"
}
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.