Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as non-read-only GROWI user
-
DeliveryObtain or guess target revision ObjectId
-
ExploitSubmit tags.update with foreign revisionId and editable pageId
-
ExecutionRead restricted revision body in API response
-
ImpactSave stolen content to attacker-editable page
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 GROWI user who is NOT read-only (edit capability), per PR:L. The attacker must additionally know or guess the target revision's MongoDB ObjectId - composed of a timestamp, per-process random value, and counter, so not secret by design but not trivially enumerable (this is the AT:P attack requirement). Exploitation is via POST /_api/tags.update (API v1), or via PUT /_api/v3/page where the previous revision is looked up from a client-supplied revisionId; the PUT path is reachable only when the editor's conflict check is skipped (origin=editor and the latest revision's origin is editor or view), and its cross-page diff can also leak via the Slack update notification when isSlackEnabled and slackChannels are set. Limiting factors: authentication and non-read-only privilege are mandatory, the attacker needs a usable foreign revision ID, and the PUT variant depends on the specific editor/conflict-check state. |
| Impact | This is a genuine but low-priority issue, and the signals are consistent rather than conflicting. The vendor/CVE CVSS 4.0 base is 2.3 (Low) and the vuln.today decision label is 'monitor' - both point to low urgency. There is no CISA KEV listing and no EPSS score was provided, so there is no evidence of active or widespread exploitation. The CVSS vector shows network reach (AV:N) but PR:L, meaning exploitation requires an authenticated, non-read-only account, and AT:P reflects a real attack requirement: the attacker must know or guess the target revision's identifier. Impact is bounded - VC:L/VI:L and VA:N: an attacker can read one unauthorized page revision's body at a time (confidentiality) and overwrite a page they can already edit with that body (integrity, which also destroys the editable page's prior content), with no availability effect. One nuance that modestly raises feasibility above the raw score: the advisory notes revision IDs are MongoDB ObjectIds (timestamp + per-process random + counter), so IDs created around the same time by the same process are somewhat more guessable than a random value - but this is a predictability note, not confirmed exploitation. No EPSS data is available to quantify exploitation probability; absent it, the KEV-absence, low CVSS, 'monitor' label, and authentication requirement all align on low real-world risk. |
| Exploit ScenarioDerived | A logged-in GROWI user who lacks read permission on a sensitive page learns or guesses the MongoDB ObjectId of one of that page's revisions, then calls POST /_api/tags.update supplying that foreign revisionId together with a pageId they are allowed to edit. The API returns the restricted revision's body in the response and stores it as a new revision of the attacker's page, leaving the stolen content readable there. No public exploit code was identified; the attack requires an authenticated non-read-only account and knowledge of a revision ID that is not secret by design but is not trivially enumerable (AT:P). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Authorization bypass in GROWI v4.5.5 through v8.0.6 lets an authenticated, non-read-only user copy the body of a page revision they cannot read into a page they can edit, via the tags.update API and, under specific editor conflict-check conditions, PUT /_api/v3/page. The attacker must know or guess the target revision's MongoDB ObjectId, which is not secret by design but is not trivially enumerable, making this a low-severity, monitor-level issue. No public exploit was identified at time of analysis, and the vendor fixed the flaw in v8.0.7.
RemediationAI
Vendor-released patch: v8.0.7. Upgrade to GROWI v8.0.7 or later; the advisory states this is the only remedy and that no workarounds exist. In v8.0.7, tags.update rejects requests where the revision does not belong to the target page, and PUT /_api/v3/page ignores a foreign revision. References: https://github.com/growilabs/growi/security/advisories/GHSA-pqx5-gx68-83h4 , https://growi.co.jp/news/48/ , https://jvn.jp/en/jp/JVN51223238/ .
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The tags.update endpoint (API v1) accepted a revisionId from the request body and saved that revision's body as a new revision of the page identified by pageId; it checked that the caller could view pageId but did not check that the revision belonged to that page, so a foreign revision's body could be read in the savedPage response and persisted into an attacker-editable page. PUT /_api/v3/page had the same gap when it looked up the previous revision from a client-supplied revisionId, but that lookup is reached only when the editor's conflict check is skipped (origin=editor and the latest revision's origin is editor or view); the foreign body could then influence the computed diff and leak through the Slack update notification when isSlackEnabled and slackChannels are sent. The root cause is CWE-639, authorization bypass through a user-controlled key: the revision identifier is a MongoDB ObjectId composed of a timestamp, a per-process random value, and a counter, so it is not secret by design but is not trivially enumerable, which is the high attack requirement in the assessed vector. A separate read-side issue is tracked as GHSA-m72c-xgjf-56ww.
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:P/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Network API reachable but requires an authenticated non-read-only account (PR:L) and knowledge of a non-secret yet non-trivial revision ObjectId (AC:H); limited read and overwrite impact, no availability effect.
Primary rating from Vendor (jpcert).
CVSS VectorVendor: jpcert
Lifecycle Timeline
2DescriptionCVE.org
GROWI contains an authorization bypass vulnerability in its tag update API and the page update API due to improper use of a user-controlled key. By exploiting this vulnerability, an attacker who can log in to the product may obtain the contents of pages without the required read permission and save them to pages that the attacker can edit.
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.
Related Vulnerabilities in GROWI Authorization Bypass Vulnerabilities
View all 3NoSQL 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-111556
GHSA-j29w-qwmj-w2j8
NVD
CVE.org
EPSS
Exploit-DB