CVE-2026-94246 in Wallet System Plugininfo

Summary

by MITRE • 10/08/2026

The Wallet System for WooCommerce WordPress plugin before 2.8.0 does not verify that the wallet account named in a withdrawal submission belongs to the user making it, allowing any authenticated user, such as a subscriber, to file a withdrawal request against another user's wallet for an amount and a payout destination of their choosing, and to indefinitely prevent that user from submitting withdrawals of their own.

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 10/08/2026

The vulnerability identified in Wallet System for WooCommerce prior to version 2.8.0 represents a critical failure in server-side access control logic within the plugin's withdrawal processing mechanism. This flaw allows authenticated users with low-privilege roles, such as subscribers, to manipulate financial transactions by bypassing ownership verification checks. The core technical deficiency lies in the application's handling of user input during the withdrawal request submission process. Specifically, when a user initiates a payout from their digital wallet balance, the backend logic fails to validate that the account identifier associated with the transaction matches the unique identifier of the currently authenticated session. This absence of server-side authorization checks means that an attacker can craft malicious requests where they specify arbitrary target wallet accounts as the source of funds rather than relying on the system to automatically associate the action with their own verified identity.

From a technical perspective, this issue is classified under CWE-269, which denotes Improper Privilege Control, and more specifically aligns with CWE-862 regarding Missing Authorization. The vulnerability exploits the trust placed in client-supplied data without sufficient server-side validation. In typical secure implementations, the system would retrieve the user ID from the active session or authentication token and enforce that this ID matches the owner of the wallet account being debited. By omitting this verification step, the application effectively treats any provided wallet identifier as valid for withdrawal purposes if it exists in the database. This allows an attacker to target specific victim accounts by injecting their unique user IDs into the request parameters intended for self-service withdrawals.

The operational impact of this vulnerability is severe due to its direct implications on financial integrity and data availability. An authenticated attacker can drain funds from any other user's wallet, transferring them to a payout destination controlled by the attacker or an accomplice. This constitutes unauthorized fund transfer and potential theft. Furthermore, the vulnerability includes a secondary denial-of-service vector where the attacker can repeatedly submit invalid withdrawal requests against a victim's account. Depending on how the plugin handles error states or transaction locks during failed attempts, this activity could lock the victim out of their own wallet functionality indefinitely, preventing legitimate users from accessing their funds or managing their accounts. This dual nature of financial loss and service disruption significantly elevates the severity rating of the flaw beyond a simple data integrity issue.

In terms of threat modeling, this behavior aligns with ATT&CK technique T1078, Valid Accounts, as it requires initial authentication but leverages those credentials to perform unauthorized actions against other entities within the same system. It also reflects aspects of T1534, Internal Spearphishing, if an attacker were to trick a user into initiating such requests via social engineering, though direct exploitation is possible through automated scripts given the lack of server-side checks. The attack path typically involves logging in as a low-privilege user, intercepting or crafting HTTP POST requests containing withdrawal details with modified wallet identifiers corresponding to high-value targets, and submitting these payloads to execute the unauthorized transfers.

Mitigation strategies must prioritize immediate patching by upgrading Wallet System for WooCommerce to version 2.8.0 or later, where this authorization logic has been corrected. For organizations unable to upgrade immediately due to compatibility constraints, a temporary workaround involves restricting access to the withdrawal endpoints via web application firewall rules that validate session tokens against requested resource ownership at the network layer, although this is less robust than fixing the code directly. Additionally, implementing strict server-side validation for all financial transactions is essential; developers must ensure that every operation involving fund movement explicitly verifies that the authenticated user ID matches the owner of the affected wallet account before processing any debits or credits. Regular security audits focusing on access control lists and object-level permissions are recommended to prevent similar logic flaws in e-commerce plugins handling sensitive financial data.

Responsible

WPScan

Reservation

09/21/2026

Disclosure

10/08/2026

Moderation

accepted

EPSS

0.00132

KEV

no

Activities

very low

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!