Description
The Easy Invoice plugin for WordPress is vulnerable to Missing Authorization in versions up to, and including, 2.1.19. This is due to the plugin registering the easy_invoice_accept_quote and easy_invoice_decline_quote AJAX actions via wp_ajax_nopriv_ hooks and relying solely on a quote-scoped nonce that is rendered into the publicly accessible single quote template, combined with an ownership check that is gated behind an off-by-default Pro option (easy_invoice_pro_restrict_quote_to_client). This makes it possible for unauthenticated attackers to accept or decline arbitrary published quotes — and, depending on the configured accept action, automatically convert them into invoices (and even email them to the client) — by harvesting the per-quote nonce from the public quote page and submitting it to admin-ajax.
Published: 2026-07-09
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Easy Invoice WordPress plugin lacks proper authorization checks for accepting or declining quotes. The AJAX actions easy_invoice_accept_quote and easy_invoice_decline_quote are registered on the wp_ajax_nopriv hook, exposing them to unauthenticated users. The plugin relies on a quote‑specific nonce that is rendered into the public quote template, and the ownership check is gated behind an optional Pro setting that is off by default. As a result, an attacker can harvest the nonce from any publicly visible quote page and submit a request to admin‑ajax.php to accept or decline the quote, thereby converting it into an invoice, potentially emailing it to the client. This flaw allows unauthorized creation of financial documents and disclosure of client data. The weakness is a missing authorization flaw (CWE‑862).

Affected Systems

Site owners running any version of the matrixaddons Easy Invoice – Invoice Generator, PDF Quotes & Payments plugin up to and including 2.1.19 have public quote pages that are accessible to anyone. The vulnerability is present in all these versions because the insecure AJAX callbacks are hard‑coded and the Pro ownership check remains disabled by default. Displaying the quote page on public-facing URLs exposes the nonce and the flaw to unauthenticated access.

Risk and Exploitability

The CVSS score of 5.3 indicates moderate severity, while the EPSS score of less than 1% suggests a low probability of exploitation at the present time. The flaw is not listed in CISA’s KEV catalog, so there is no known widespread exploitation. Attackers can trivially exploit the issue by accessing a public quote page, retrieving the nonce, and submitting a crafted request to admin‑ajax.php with the desired action. No authentication or additional privileges are required, making the risk persistent until the plugin is patched or mitigated.

Generated by OpenCVE AI on July 29, 2026 at 12:33 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Easy Invoice plugin to the latest release.
  • If an upgrade cannot be performed immediately, enable the Pro option easy_invoice_pro_restrict_quote_to_client to enforce ownership checks before quote acceptance or decline.
  • Disable the wp_ajax_nopriv_easy_invoice_accept_quote and wp_ajax_nopriv_easy_invoice_decline_quote callbacks using a custom code snippet or plugin until a patch is applied.
  • Restrict the visibility of quote pages to authorized users or remove them if they are not required.

Generated by OpenCVE AI on July 29, 2026 at 12:33 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 10 Jul 2026 10:15:00 +0000

Type Values Removed Values Added
First Time appeared Matrixaddons
Matrixaddons easy Invoice – Invoice Generator, Pdf Quotes & Payments
Wordpress
Wordpress wordpress
Vendors & Products Matrixaddons
Matrixaddons easy Invoice – Invoice Generator, Pdf Quotes & Payments
Wordpress
Wordpress wordpress

Thu, 09 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 09 Jul 2026 10:45:00 +0000

Type Values Removed Values Added
Description The Easy Invoice plugin for WordPress is vulnerable to Missing Authorization in versions up to, and including, 2.1.19. This is due to the plugin registering the easy_invoice_accept_quote and easy_invoice_decline_quote AJAX actions via wp_ajax_nopriv_ hooks and relying solely on a quote-scoped nonce that is rendered into the publicly accessible single quote template, combined with an ownership check that is gated behind an off-by-default Pro option (easy_invoice_pro_restrict_quote_to_client). This makes it possible for unauthenticated attackers to accept or decline arbitrary published quotes — and, depending on the configured accept action, automatically convert them into invoices (and even email them to the client) — by harvesting the per-quote nonce from the public quote page and submitting it to admin-ajax.
Title Easy Invoice <= 2.1.19 - Unauthenticated Arbitrary Quote Accept/Decline and Invoice Creation via easy_invoice_accept_quote / easy_invoice_decline_quote AJAX Actions
Weaknesses CWE-862
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N'}


Subscriptions

Matrixaddons Easy Invoice – Invoice Generator, Pdf Quotes & Payments
Wordpress Wordpress
cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-07-09T13:52:00.900Z

Reserved: 2026-05-19T15:07:10.933Z

Link: CVE-2026-9021

cve-icon Vulnrichment

Updated: 2026-07-09T13:51:58.373Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-29T12:45:03Z

Weaknesses