Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privilege ShowDoc account
-
DeliveryIdentify/enumerate victim entry ids
-
ExploitCraft deleteEntries batch with own id first
-
ExecutionServer checks only first id's permission
-
ImpactVictim parameter-description entries permanently deleted
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Requires an authenticated ShowDoc account holding edit permission on at least one parameter-description library (PR:L), used to supply a legitimately-owned entry id as the first element of the deleteEntries id list. The specific trigger per the source code: api/paramDescLib/deleteEntries (ParamDescLibController) called ParameterDescriptionEntry::findById on $ids[0] only and ran checkItemEdit against that single entry's item_id, then deleted the entire $ids array - so appending victim entry ids after a valid owned id bypasses the per-item check. Limiting factors: exploitation is not possible pre-authentication, impact is restricted to deletion of parameter-description entries (no read/confidentiality impact), and the attacker must know or enumerate the target entry ids. Affected: ShowDoc through 3.9.5; the linked vendor commit is the fix. |
| Impact | This is a genuinely low-priority issue, and the signals are internally consistent rather than conflicting. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:L) and the 2.3 base score both point to low real-world severity: exploitation requires an authenticated account (PR:L) that already holds edit permission on at least one parameter-description library, and the impact is confined to integrity and availability of parameter-description entries (VI:L/VA:L) with no confidentiality exposure (VC:N) and no scope change (SC/SI/SA:N). The vuln.today decision label is 'monitor', the lowest urgency tier, which aligns with the low CVSS. There is no CISA KEV listing and no EPSS score was supplied, so there is no evidence of active or probable widespread exploitation. A public technical write-up (hackmd) and the upstream issue describe the flaw, but the input does not confirm working weaponized exploit code. The only mild tension is that the flaw is trivially understood and the fix is a simple per-entry permission check - so weaponization is easy if an attacker is motivated - but the pre-authentication barrier, the narrow data-only impact, and the niche product footprint keep real-world risk low. No key CVSS data is missing; the 4.0 vector is complete and consistent with the description. |
| Exploit ScenarioDerived | An authenticated ShowDoc user with edit rights to any one parameter-description library crafts a batch delete request to api/paramDescLib/deleteEntries, placing one of their own entry ids first and appending entry ids belonging to other users' projects. Because the server validated edit permission only against the first id, all listed entries - including those the attacker has no rights to - are permanently deleted. A public PoC reference exists describing this exact cross-item IDOR; it is not verified as working exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
ShowDoc through 3.9.5 lets an authenticated user with edit rights on any single parameter-description library delete parameter-description entries belonging to other projects, because the deleteEntries API only verified edit permission for the first entry id in the submitted list. An attacker supplies one entry id they legitimately control as the first element and appends victim entry ids; the permission check passes on the first entry and the delete then runs across the whole array, permanently removing the appended records. Confidentiality is unaffected and the assessed severity is low (CVSS 3.1: 5.4-equivalent vector scored as AV:N/AC:L/PR:L/UI:N/C:N/I:L/A:L, vendor CVSS 4.0 base 2.3); no CISA KEV entry exists, and a public technical writeup of the bypass is referenced, though it is not verified as working exploit code. Priority is 'monitor'.
RemediationAI
Vendor-released fix: upstream commit 53228511e656904abf7841c3d25ff78a4b5ce9c2 (https://github.com/star7th/showdoc/commit/53228511e656904abf7841c3d25ff78a4b5ce9c2), which enforces a per-entry edit-permission check instead of trusting $ids[0]; patch availability is confirmed by the vendor, but no tagged release version beyond 3.9.5 is listed in the available data, so confirm a fixed tag or deploy the commit directly (see also https://github.com/star7th/showdoc/issues/2612). If upgrading cannot be done immediately, the exposure window can be reduced by limiting edit rights on parameter-description libraries to users who are trusted across every project on the instance, since the bypass requires an account that already holds edit permission on at least one entry, and by reviewing or backing up parameter-description data so deleted entries can be restored - note that neither measure removes the flaw itself. Monitor deletion activity on api/paramDescLib/deleteEntries for requests whose id list spans multiple projects.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ShowDoc is a PHP web application (the affected controller is server/app/Api/Controller/ParamDescLibController.php in the v3.9.5 tree) that stores reusable parameter-description entries per documentation project. The flaw is CWE-639, Authorization Bypass Through User-Controlled Key - a classic IDOR pattern in a batch operation: the _deleteEntries handler fetched only ParameterDescriptionEntry::findById($ids[0]), ran checkItemEdit($uid, $firstEntry->item_id) against that single record, and then called ParameterDescriptionEntry::delete($ids) on the entire attacker-supplied array. The security decision was therefore bound to one user-controlled key while the destructive operation applied to all keys. The vendor fix (commit 53228511e656904abf7841c3d25ff78a4b5ce9c2) replaces this with a per-id loop that resolves each entry, re-runs checkItemEdit on every entry's item_id, skips entries that do not exist or fail the check, and deletes only the collected allowed ids, returning an error when none qualify. No confidentiality impact exists because the endpoint performs deletion only; integrity and availability impact are limited to loss of the affected parameter-description records, and the attacker must know or enumerate the target entry ids.
Know when Showdoc gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
Authenticated user with edit rights on one library (PR:L), simple batch request (AC:L), no read exposure (C:N); unauthorized deletion of others' entries yields low integrity and availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
ShowDoc through 3.9.5 contains an authorization bypass vulnerability in the api/paramDescLib/deleteEntries endpoint that checks edit permission only for the first supplied entry id. Authenticated attackers can place their own entry id first and append other users' entry ids to permanently delete those parameter-description entries.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Unrestricted File Upload in ShowDoc v2.9.5 allows remote attackers to execute arbitrary code via the 'file_url' paramete
showdoc is vulnerable to Cross-Site Request Forgery (CSRF). Rated high severity (CVSS 8.8), this vulnerability is remote
showdoc is vulnerable to Cross-Site Request Forgery (CSRF). Rated high severity (CVSS 8.8), this vulnerability is remote
Unrestricted Upload of File with Dangerous Type in Packagist showdoc/showdoc prior to 2.10.2. Rated high severity (CVSS
There is a Unrestricted Upload of File vulnerability in ShowDoc v2.10.3 in GitHub repository star7th/showdoc prior to 2.
showdoc is vulnerable to Cross-Site Request Forgery (CSRF). Rated medium severity (CVSS 6.5), this vulnerability is remo
showdoc is vulnerable to Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG). Rated medium severity (CVS
showdoc is vulnerable to Cross-Site Request Forgery (CSRF). Rated medium severity (CVSS 6.5), this vulnerability is remo
server/index.php?s=/api/teamMember/save in ShowDoc 2.4.2 has a CSRF that can add members to a team. Rated medium severit
ShowDoc 2.4.1 allows remote attackers to obtain sensitive information by navigating with a modified page_id, as demonstr
File Upload Restriction Bypass leading to Stored XSS Vulnerability in GitHub repository star7th/showdoc prior to 2.10.4.
showdoc is vulnerable to URL Redirection to Untrusted Site. Rated medium severity (CVSS 6.1), this vulnerability is remo
EUVD-2026-114077
GHSA-2x8q-m4r9-vg7h
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB