CVE-2026-87797 in Sprout Invoices Plugininfo

Summary

by MITRE • 09/12/2026

The Sprout Invoices WordPress plugin before 20.8.16 does not perform a capability or ownership check before allowing a private note to be overwritten through one of its AJAX actions, allowing any authenticated user such as a subscriber to overwrite private notes on records belonging to other users.

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 09/12/2026

The vulnerability identified in Sprout Invoices prior to version 20.8.16 represents a critical failure in access control mechanisms within the WordPress plugin ecosystem. Specifically, the flaw resides in an AJAX endpoint designed for managing invoice or record notes. The core technical deficiency is the absence of both capability verification and ownership validation before processing requests that modify private note data. In secure software architecture, any action that alters stateful data associated with a specific entity must rigorously verify two conditions: first, whether the requesting user possesses the administrative privileges required for such an operation, and second, whether the resource being modified belongs to or is accessible by that user. The plugin fails on both counts, treating all authenticated requests as valid regardless of the requester's role or their relationship to the target record.

This lack of authorization checks allows any logged-in WordPress user, including those with the lowest privilege level such as subscribers, to interact directly with the administrative functionality intended for higher-privileged roles like administrators or editors. By exploiting this weakness through crafted HTTP requests targeting the specific AJAX action URL, an attacker can overwrite private notes attached to invoices or records owned by other users. This constitutes a clear instance of Insecure Direct Object Reference (IDOR), categorized under CWE-639 in the Common Weakness Enumeration standard. The vulnerability enables unauthorized data modification rather than just viewing, which significantly escalates its severity from simple information disclosure to active tampering with business-critical records.

The operational impact of this vulnerability extends beyond mere privacy violations. Private notes often contain sensitive financial details, client communications, or internal strategic discussions that are not meant for public consumption within the organization. An attacker can manipulate these notes to mislead other users, alter historical context regarding transactions, or inject malicious content into shared records. This undermines data integrity and trust in the system's reliability. Furthermore, because WordPress plugins often serve as gateways to broader site functionality, an authenticated user with write access could potentially chain this vulnerability with others to escalate privileges or disrupt business operations by corrupting invoice histories.

From a threat modeling perspective aligned with MITRE ATT&CK frameworks, this behavior maps closely to techniques involving unauthorized modification of stored data and exploitation of client-side controls for server-side actions. The attack vector is remote but requires authentication, placing it in the category of authenticated attacks that rely on social engineering or compromised credentials rather than unauthenticated exploits. This distinction is crucial for risk assessment, as it limits the blast radius to users who have already gained a foothold within the WordPress environment, yet remains highly dangerous due to the ease of execution and lack of complex exploitation requirements.

Mitigation strategies must prioritize immediate patching by upgrading Sprout Invoices to version 20.8.16 or later, where these authorization checks are presumably implemented correctly. For organizations unable to upgrade immediately, temporary mitigations include restricting access to WordPress admin endpoints via IP whitelisting if feasible, although this is often impractical for cloud-hosted sites. Additionally, implementing a Web Application Firewall (WAF) with rules that detect anomalous AJAX requests targeting note-related parameters from low-privilege user agents can provide an additional layer of defense. Long-term remediation should involve adopting secure coding practices that enforce strict object-level authorization checks on all state-changing API endpoints and conducting regular code audits to identify similar flaws in other plugins or custom themes integrated into the WordPress installation.

Responsible

WPScan

Reservation

09/09/2026

Disclosure

09/12/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Interested in the pricing of exploits?

See the underground prices here!