Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with any GROWI account
-
DeliveryEnumerate or infer target revision ObjectId from restricted page
-
ExploitIdentify a pageId the account can legitimately access
-
ExecutionIssue GET /_api/v3/revisions/<target_id>?pageId=<accessible_page_id>
-
PersistServer authorizes against accessible page, returns restricted revision content
-
ImpactExfiltrate sensitive historical page data
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 | Exploitation requires an active authenticated session on the GROWI instance - any account with login access suffices, including low-privilege contributor or viewer roles (CVSS PR:L confirms this). The attacker must also be able to enumerate or guess at least one valid MongoDB ObjectId for a revision belonging to a restricted page; this is a non-trivial but not insurmountable barrier, especially in instances with high revision counts or predictable ID patterns. The targeted page must have page-level access controls configured (GRANT_OWNER or group-restricted) - public pages without restrictions are not meaningfully exposed. No special server-side configuration is required; the flaw exists in the default GROWI API routing. Exploitation is limited to confidentiality: no write or administrative operations are exposed through this endpoint. |
| Impact | The CVSS 4.0 vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N places this as a straightforward network-reachable, low-complexity exploit requiring only a valid authenticated session - no special privileges or user interaction. Real-world risk is moderate-to-high for organizations using GROWI with page-level access controls: any contributor or viewer account can bypass those controls entirely, reading page history (revision content) regardless of grant settings. There is no KEV listing and no public exploit code confirmed, keeping the immediate exploitation risk lower than the CVSS alone suggests. EPSS data is not provided; absent active exploitation, risk is primarily insider-threat or credential-compromise-driven rather than mass automated scanning. The VulnCheck advisory covers all versions through 8.0.2, with a patch now available, so unpatched instances represent the full exposed population. The scope is confidentiality-only: no write, delete, or privilege escalation path is identified from this flaw. |
| Exploit ScenarioDerived | An authenticated GROWI user with read access to a single public page discovers the revision ID of a private page through indirect means - for example, by observing revision IDs in URLs of accessible pages and incrementing or guessing adjacent IDs. The attacker calls GET /_api/v3/revisions/<private_revision_id>?pageId=<accessible_public_page_id>, supplying their accessible page's ID as the query parameter. The server authorizes the request against the accessible page, then returns the full revision document from the private page, exposing its historical text content without triggering an access-denied response. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
Authenticated IDOR in GROWI through v8.0.2 exposes revision content from access-restricted pages via the GET /_api/v3/revisions/:id API endpoint. The endpoint performs its access check against a caller-supplied query parameter (page identifier) but returns the revision record identified by the URL path parameter without verifying both identifiers resolve to the same page. Any authenticated user can pair a page ID they legitimately access with an arbitrary revision ID from a private or restricted page to silently exfiltrate its historical content. No public exploit is identified at time of analysis; CVSS 4.0 scores this 7.1 with high confidentiality impact and no integrity or availability loss.
RemediationAI
Upstream fix is available via GitHub PR #11810 and commit d298e0b1dbbf568c99db657fa0f7e90f72ddc59b (https://github.com/growilabs/growi/pull/11810). A specific patched release version is not independently confirmed from available data - the patch reference points to a GitHub commit rather than a tagged release, so administrators should verify the fix is included in the installed release version by checking changelog or git tags after v8.0.2. As a compensating control pending upgrade, restrict the GROWI instance to trusted internal networks or VPN-only access to limit the pool of authenticated users who can reach the API. Additionally, audit GROWI access logs for unexpected calls to GET /_api/v3/revisions/:id where the pageId query parameter does not correspond to the revision's owning page - this pattern indicates active exploitation or reconnaissance. Restricting contributor accounts to minimum required permissions reduces risk surface. No workaround eliminates the flaw without the patch.
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 an open-source wiki platform (cpe:2.3:a:growilabs:growi:*:*:*:*:*:*:*:*) built on Node.js and MongoDB, commonly deployed for team knowledge management. The affected code lives in apps/app/src/server/routes/apiv3/revisions.js (confirmed present at tag v8.0.2 via the source reference). The root cause is CWE-639: Authorization Bypass Through User-Controlled Key - the server trusts a caller-supplied pageId query parameter to gate access, then independently resolves and returns the revision document using the :id path parameter, never asserting that the resolved revision belongs to the authorized page. Because MongoDB ObjectId values for revisions are predictable in structure (though not necessarily guessable without enumeration), an attacker with any authenticated session can systematically probe revision IDs. The patch in PR #11810 / commit d298e0b introduces a cross-validation step ensuring the resolved revision's owning page matches the access-checked page, and the accompanying regression tests confirm attachment retrieval (GET /attachment/:id) received a parallel fix for the same class of flaw.
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:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable API, low complexity; requires authenticated session (PR:L); confidentiality-only impact, no integrity or availability effect.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
GROWI contains an access control vulnerability in the GET /_api/v3/revisions/:id endpoint that validates access against a query parameter but returns the revision identified by the path parameter without confirming they reference the same page. Authenticated attackers can pair a page identifier they can access with an arbitrary revision identifier to read revision content from pages they lack permission to view.
Executive ViewAI
GROWI through version 8.0.2 contains an authenticated information disclosure flaw allowing any logged-in user to view historical content from access-restricted pages they should not see. This violates page-level access controls and exposes confidential revision history, creating unauthorized data access and potential compliance violations.
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
Unauthenticated file disclosure in GROWI (all versions before 8.0.2) exposes private page attachments to any caller who
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
EUVD-2026-69292
GHSA-gjwx-pwx3-4hxq
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB