Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid attachment identifier
-
DeliverySend unauthenticated GET to /attachment/:id
-
ExploitHandler skips permission check (no session)
-
ExecutionServer returns file contents
-
ImpactPrivate page attachment exfiltrated
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must possess a valid GROWI attachment identifier (a MongoDB ObjectID exposed in the /attachment/:id or /download/:id URL path). No authentication, special headers, or specific configuration is required - the bypass applies to all default GROWI deployments running versions before 8.0.2. Exploitation is limited to information disclosure: the attacker cannot write, modify, or delete content. The realistic limiting factor is identifier availability: former authorized users retain identifiers from their access period, and the identifiers may also have been exposed in browser history, server logs, or shared links. The vulnerability is not exploitable by a fully blind attacker who has never interacted with the GROWI instance and has no other path to obtain an identifier. |
| Impact | The CVSS 4.0 score of 8.7 with AV:N/AC:L/PR:N/UI:N accurately reflects that exploitation requires no authentication and no special technical complexity once an attachment identifier is in hand. The sole practical barrier to exploitation is identifier possession: an attacker needs to know or recover a valid attachment ID, which is feasible for former employees, leaked URLs, or browser history. EPSS data is not provided, limiting probabilistic exploitation forecasting. The vulnerability is not in the CISA KEV catalog and no public exploit code has been disclosed, suggesting it has not yet seen broad automated exploitation. Despite the high score, real-world risk is gated by identifier accessibility - organizations whose GROWI instances are only reachable internally, or whose attachment IDs have never leaked externally, face lower practical exposure than those serving GROWI publicly. The confidentiality-only impact (no integrity or availability) bounds the blast radius to information disclosure from private wiki pages. |
| Exploit ScenarioDerived | A former GROWI user whose account was deprovisioned retains browser history containing an attachment URL of the form https://wiki.example.com/attachment/64a3f2b1c8e9d0001234abcd. That user submits a GET request to the URL without any session cookie; because retrieveAttachmentFromIdParam skips the permission check for unauthenticated requests, the server responds with the file contents from the now-private page. The attacker extracts confidential documents without any credentials or active account. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 26, 2026
Unauthenticated file disclosure in GROWI (all versions before 8.0.2) exposes private page attachments to any caller who possesses a valid attachment identifier. The route handler retrieveAttachmentFromIdParam in apps/app/src/server/routes/attachment/get.ts conditionally gates the page-viewer permission check on the presence of an authenticated session, meaning HTTP requests without a session entirely bypass authorization and receive the requested file. Both /attachment/:id and /download/:id endpoints are affected, and identifiers are obtainable by former users whose access was revoked or from any prior exposure of the attachment URL. No public exploit code has been identified at time of analysis, and this CVE is not listed in the CISA KEV catalog.
RemediationAI
Upgrade to GROWI v8.0.2, the vendor-released patch available at https://github.com/growilabs/growi/releases/tag/v8.0.2, which restructures retrieveAttachmentFromIdParam to enforce the isAccessiblePageByViewer check for all callers regardless of session state. If an immediate upgrade is not feasible, place an authentication-enforcing reverse proxy (such as nginx with auth_request or an OAuth proxy) in front of the /attachment/ and /download/ path prefixes to require a valid session before requests reach the GROWI application; this prevents unauthenticated bypass but adds a dependency on the proxy's own security posture. As a secondary measure, audit GROWI access logs for unauthenticated GET requests to /attachment/ and /download/ paths to detect prior exploitation. If the instance is publicly internet-exposed, consider temporarily restricting those routes by IP allowlist until the patch is applied.
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
GROWI is a Node.js-based team wiki platform whose attachment serving logic lives in apps/app/src/server/routes/attachment/get.ts. The vulnerable handler, retrieveAttachmentFromIdParam, resolves an attachment by its database identifier from the request path, then conditionally invokes an isAccessiblePageByViewer check - but only when req.user is non-null. This is a textbook CWE-862 (Missing Authorization) pattern: the guard exists but is not applied to all code paths. Unauthenticated HTTP requests carry no session object, so the condition evaluates false and the file is returned without any visibility check. The fix in v8.0.2 (PR #11756) restructures the logic to run the authorization check unconditionally for both authenticated and unauthenticated callers, with the sole bypass reserved for requests already certified by a valid share link via the certify-shared-page-attachment middleware. The same PR additionally ensures that a globally-disabled link-sharing setting (security:disableLinkSharing) prevents existing unexpired share link documents from still certifying attachment requests. CPE: cpe:2.3:a:growi,_inc.:growi:*:*:*:*:*:*:*:*.
Know when Growi 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:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable unauthenticated endpoint; no complexity beyond possessing an ID; confidentiality-only impact with no scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
GROWI applies its page-viewer permission check to attachment requests only when the request carries an authenticated user. retrieveAttachmentFromIdParam in apps/app/src/server/routes/attachment/get.ts guards the check with a condition requiring the user to be non-null, so a request that carries no session skips the check entirely and the handler returns the file. The routes reached this way, /attachment/:id and /download/:id, take the attachment identifier from the path, so an unauthenticated caller who has an attachment identifier receives the file regardless of whether the page owning it is private and regardless of whether that caller would be permitted to view the page. Identifiers can be retained by a user whose access was later removed, or recovered from anywhere the identifier was previously exposed. Version 8.0.2 runs the check for authenticated and unauthenticated requests alike, skipping it only where a valid share link has already bound the requested file to that link's page.
Executive ViewAI
GROWI versions prior to 8.0.2 contain an unauthenticated file disclosure vulnerability that exposes private page attachments to any caller with a valid attachment identifier. Organizations risk disclosure of confidential documents without authentication, including through former employee access or prior URL exposures.
Apply vendor patch.
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
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
NoSQL injection vulnerability in GROWI versions prior to v4.2.20 allows a remote attacker to obtain and/or alter the inf
Cross-site request forgery (CSRF) vulnerability in GROWI v3.4.6 and earlier allows remote attackers to hijack the authen
Remote denial of service via regular expression attack in GROWI allows unauthenticated network attackers to exhaust serv
Cross-user data exposure and tampering in GROWI v7.4.5 and earlier allows any authenticated user who learns a shared AI
Remote path traversal in GROWI v7.5.0 and earlier allows authenticated administrators to execute arbitrary EJS templates
Improper access control vulnerability in GROWI versions v4.2.2 and earlier allows a remote unauthenticated attacker to r
Directory traversal vulnerability in GROWI versions prior to v4.2.3 (v4.2 Series), GROWI versions prior to v4.1.12 (v4.1
Improper input validation in GROWI versions prior to v4.2.3 (v4.2 Series), GROWI versions prior to v4.1.12 (v4.1 Series)
GROWI v4.1.3 and earlier allow remote attackers to obtain information which is not allowed to access via unspecified vec
In WESEEK GROWI before 3.5.0, a remote attacker can obtain the password hash of the creator of a page by leveraging wiki
In WESEEK GROWI before 3.5.0, the site-wide basic authentication can be bypassed by adding a URL parameter access_token
Invalid file validation on the upload feature in GROWI versions v4.2.2 allows a remote attacker with administrative priv
EUVD-2026-66213
GHSA-c3h5-hg99-q693
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB