CVE-2026-92807
Save as PDF Plugin by PDFCrowd <= 4.6.1 - Authenticated (Contributor+) Arbitrary Function Invocation / Code Injection via 'pdf_created_callback' Shortcode Attribute
The Save as PDF Plugin by PDFCrowd plugin for WordPress is vulnerable to Arbitrary Function Invocation in all versions up to, and including, 4.6.1 via the pdf_created_callback shortcode attribute. The eval_shortcode() function copies any non-button_/non-email_ shortcode attribute verbatim into a custom options array without sanitization, allowlist enforcement, or capability checks, and create_button() AES-encrypts that array — including the attacker-supplied callback value — and embeds the resulting blob in the rendered button HTML; when the blob is later POSTed to the unauthenticated wp_ajax_nopriv_save_as_pdf_pdfcrowd endpoint, save_as_pdf_pdfcrowd() decrypts it and invokes $options['pdf_created_callback'] as a PHP callable at line 1722 with no is_callable() guard, no allowlist, and no capability check. This makes it possible for authenticated attackers, with Contributor-level access and above, to invoke arbitrary PHP functions or static class methods with plugin option data as the sole argument, enabling disclosure of the site's stored PDFCrowd API key and username or further server-side abuse. Note that the encryption boundary does not mitigate this vector because the server itself encrypts the attacker-chosen callback during shortcode rendering, supplying any authenticated Contributor with a cryptographically valid blob that any unauthenticated visitor can subsequently replay to trigger invocation.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.8
Save as PDF Plugin by PDFCrowd <= 4.6.1 - Authenticated (Contributor+) Arbitrary Function Invocation / Code Injection via 'pdf_created_callback' Shortcode Attribute
The Save as PDF Plugin by PDFCrowd plugin for WordPress is vulnerable to Arbitrary Function Invocation in all versions up to, and including, 4.6.1 via the pdf_created_callback shortcode attribute. The eval_shortcode() function copies any non-button_/non-email_ shortcode attribute verbatim into a custom options array without sanitization, allowlist enforcement, or capability checks, and create_button() AES-encrypts that array — including the attacker-supplied callback value — and embeds the resulting blob in the rendered button HTML; when the blob is later POSTed to the unauthenticated wp_ajax_nopriv_save_as_pdf_pdfcrowd endpoint, save_as_pdf_pdfcrowd() decrypts it and invokes $options['pdf_created_callback'] as a PHP callable at line 1722 with no is_callable() guard, no allowlist, and no capability check. This makes it possible for authenticated attackers, with Contributor-level access and above, to invoke arbitrary PHP functions or static class methods with plugin option data as the sole argument, enabling disclosure of the site's stored PDFCrowd API key and username or further server-side abuse. Note that the encryption boundary does not mitigate this vector because the server itself encrypts the attacker-chosen callback during shortcode rendering, supplying any authenticated Contributor with a cryptographically valid blob that any unauthenticated visitor can subsequently replay to trigger invocation.
- Record
CVE-2026-92807- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
EUVDEUVD-2026-83481
8.8
The Save as PDF Plugin by PDFCrowd plugin for WordPress is vulnerable to Arbitrary Function Invocation in all versions up to, and including, 4.6.1 via the pdf_created_callback shortcode attribute. The eval_shortcode() function copies any non-button_/non-email_ shortcode attribute verbatim into a custom options array without sanitization, allowlist enforcement, or capability checks, and create_button() AES-encrypts that array — including the attacker-supplied callback value — and embeds the resulting blob in the rendered button HTML; when the blob is later POSTed to the unauthenticated wp_ajax_nopriv_save_as_pdf_pdfcrowd endpoint, save_as_pdf_pdfcrowd() decrypts it and invokes $options['pdf_created_callback'] as a PHP callable at line 1722 with no is_callable() guard, no allowlist, and no capability check. This makes it possible for authenticated attackers, with Contributor-level access and above, to invoke arbitrary PHP functions or static class methods with plugin option data as the sole argument, enabling disclosure of the site's stored PDFCrowd API key and username or further server-side abuse. Note that the encryption boundary does not mitigate this vector because the server itself encrypts the attacker-chosen callback during shortcode rendering, supplying any authenticated Contributor with a cryptographically valid blob that any unauthenticated visitor can subsequently replay to trigger invocation.
- Record
EUVD-2026-83481- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-3fg9-62hh-37mh
8.8
The Save as PDF Plugin by PDFCrowd plugin for WordPress is vulnerable to Arbitrary Function...
The Save as PDF Plugin by PDFCrowd plugin for WordPress is vulnerable to Arbitrary Function Invocation in all versions up to, and including, 4.6.1 via the pdf_created_callback shortcode attribute. The eval_shortcode() function copies any non-button_/non-email_ shortcode attribute verbatim into a custom options array without sanitization, allowlist enforcement, or capability checks, and create_button() AES-encrypts that array — including the attacker-supplied callback value — and embeds the resulting blob in the rendered button HTML; when the blob is later POSTed to the unauthenticated wp_ajax_nopriv_save_as_pdf_pdfcrowd endpoint, save_as_pdf_pdfcrowd() decrypts it and invokes $options['pdf_created_callback'] as a PHP callable at line 1722 with no is_callable() guard, no allowlist, and no capability check. This makes it possible for authenticated attackers, with Contributor-level access and above, to invoke arbitrary PHP functions or static class methods with plugin option data as the sole argument, enabling disclosure of the site's stored PDFCrowd API key and username or further server-side abuse. Note that the encryption boundary does not mitigate this vector because the server itself encrypts the attacker-chosen callback during shortcode rendering, supplying any authenticated Contributor with a cryptographically valid blob that any unauthenticated visitor can subsequently replay to trigger invocation.
- Record
GHSA-3fg9-62hh-37mh- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
NVD
8.8
The Save as PDF Plugin by PDFCrowd plugin for WordPress is vulnerable to Arbitrary Function Invocation in all versions up to, and including, 4.6.1 via the pdf_created_callback shortcode attribute. The eval_shortcode() function copies any non-button_/non-email_ shortcode attribute verbatim into a custom options array without sanitization, allowlist enforcement, or capability checks, and create_button() AES-encrypts that array — including the attacker-supplied callback value — and embeds the resulting blob in the rendered button HTML; when the blob is later POSTed to the unauthenticated wp_ajax_nopriv_save_as_pdf_pdfcrowd endpoint, save_as_pdf_pdfcrowd() decrypts it and invokes $options['pdf_created_callback'] as a PHP callable at line 1722 with no is_callable() guard, no allowlist, and no capability check. This makes it possible for authenticated attackers, with Contributor-level access and above, to invoke arbitrary PHP functions or static class methods with plugin option data as the sole argument, enabling disclosure of the site's stored PDFCrowd API key and username or further server-side abuse. Note that the encryption boundary does not mitigate this vector because the server itself encrypts the attacker-chosen callback during shortcode rendering, supplying any authenticated Contributor with a cryptographically valid blob that any unauthenticated visitor can subsequently replay to trigger invocation.
- Record
CVE-2026-92807- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
Affected products
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-92807 is a high vulnerability (CVSS 8.8) in Pdfcrowd Save As Pdf Plugin By Pdfcrowd, published September 19, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.46%, the 39th percentile. No source names a fixed version.
References
wordfence.com/threat-intel/vulnerabilities/id/fc87f440-d26e-4535-afe4-c4a97b7c591a?source=cve
plugins.trac.wordpress.org/browser/save-as-pdf-by-pdfcrowd/tags/4.6.1/public/class-save-as-pdf-pdfcrowd-public.php
plugins.trac.wordpress.org/changeset?reponame=&old=3701540%40save-as-pdf-by-pdfcrowd&new=3701540%40save-as-pdf-by-pdfcrowd
nvd.nist.gov/vuln/detail/CVE-2026-92807
github.com/advisories/GHSA-3fg9-62hh-37mh