Sprout Invoices – Client Invoicing & Estimates < 20.8.16 - Authenticated (Subscriber+) Insecure Direct Object Reference
Strategic Overview
- Status
- Patched in 20.8.16
- Affected Plugin
- Sprout Invoices – Client Invoicing & Estimates
- Affected Version
< 20.8.16- CVSS
- 4.3Medium
- Weakness type
- CWE-639 · Authorization Bypass Through User-Controlled Key
- CVE
CVE-2026-87797
At a glance
CVE-2026-87797 is a medium-severity Authorization Bypass Through User-Controlled Key vulnerability in the Sprout Invoices WordPress plugin, affecting versions < 20.8.16. It carries a CVSS score of 4.3 (reachable over the network; low attack complexity). Exploitation requires an authenticated account at Subscriber level or above. The issue is fixed in version 20.8.16; sites on affected versions should update now. Disclosed September 2026, reported by Usama Arshad.
Vulnerability Overview
The Sprout Invoices – Client Invoicing & Estimates plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to 20.8.16. This is due to missing validation on a user controlled key. This makes it possible for authenticated attackers, with subscriber-level access and above, to perform an unauthorized action.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no interaction from a victim user.
CWE-639: Authorization Bypass Through User-Controlled Key
Reaching this weakness in Sprout Invoices < 20.8.16 takes an account at Subscriber level or above. Authorization bypass through a user-controlled key, often called insecure direct object reference, means the application looks up a record by an identifier from the request without checking that the caller owns it.
Changing a number in the request is enough to read or modify other users' records, which on commerce and membership sites means customer data. For Sprout Invoices the fix is 20.8.16: builds < 20.8.16 are affected, anything from 20.8.16 onward is not.
Remediation
Update to version 20.8.16, or a newer patched version
How does WordSec protect against this?
Because it turns on account access, WordSec's login security is the relevant layer: role-based two-factor, captcha and brute-force limits raise the cost of getting the account this needs. None of that substitutes for the fix: Sprout Invoices 20.8.16 closes this, and updating the plugin is the step that ends it.
- Login Security
- Alerts
External References
Related records
Same weakness class
Other vulnerabilities in Sprout Invoices – Client Invoicing & Estimates
- 8.1CVE-2025-64227: Client Invoicing by Sprout… PHP Object Injection
CVE-2025-64227 - 7.5CVE-2026-32401: Client Invoicing by Sprout Invoices <= 20.8.9 LFI
CVE-2026-32401 - 7.3Client Invoicing by Sprout Invoices Missing Authorization
- 5.3CVE-2026-39562: Client Invoicing by Sprout… Missing Authorization
CVE-2026-39562 - 5.3CVE-2026-25364: Client Invoicing by Sprout… Missing Authorization
CVE-2026-25364 - 5.0CVE-2025-24606: Client Invoicing by Sprout… Missing Authorization
CVE-2025-24606 - 4.8CVE-2021-24787: Client Invoicing by Sprout Invoices Stored XSS
CVE-2021-24787 - 4.3CVE-2026-57418: Sprout Invoices Missing Authorization
CVE-2026-57418
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C