Skip to main content

GROWI EUVDEUVD-2026-111556

| CVE-2026-109848 LOW
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-10-28 jpcert GHSA-j29w-qwmj-w2j8
2.3
CVSS 4.0 · Vendor: jpcert
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as non-read-only GROWI user
  2. Delivery
    Obtain or guess target revision ObjectId
  3. Exploit
    Submit tags.update with foreign revisionId and editable pageId
  4. Execution
    Read restricted revision body in API response
  5. Impact
    Save 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).

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

GROWI v4.5.5 ≤v8.0.6

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

Vendor (jpcert) PRIMARY 2.3 MEDIUM
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
vuln.today AI 4.2 MEDIUM

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.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (jpcert).

CVSS VectorVendor: jpcert

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Severity Changed
Oct 28, 2026 - 03:22 NVD
MEDIUM LOW
CVSS changed
Oct 28, 2026 - 03:22 NVD
4.2 (MEDIUM) 2.3 (LOW)

DescriptionCVE.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

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Low
niche open-source self-hosted wiki, limited enterprise deployment footprint
Social Media
2
Sightings
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

12
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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 3

More in Growi

View all
CVE-2021-20736 CRITICAL
9.1 Jun 22

NoSQL injection vulnerability in GROWI versions prior to v4.2.20 allows a remote attacker to obtain and/or alter the inf

CVE-2019-5968 HIGH
8.8 Jul 05

Cross-site request forgery (CSRF) vulnerability in GROWI v3.4.6 and earlier allows remote attackers to hijack the authen

CVE-2026-80191 HIGH
8.7 Aug 25

Unauthenticated file disclosure in GROWI (all versions before 8.0.2) exposes private page attachments to any caller who

CVE-2026-41040 HIGH
8.7 Apr 23

Remote denial of service via regular expression attack in GROWI allows unauthenticated network attackers to exhaust serv

CVE-2026-25083 HIGH
8.7 Mar 16

Cross-user data exposure and tampering in GROWI v7.4.5 and earlier allows any authenticated user who learns a shared AI

CVE-2026-41951 HIGH
8.6 May 11

Remote path traversal in GROWI v7.5.0 and earlier allows authenticated administrators to execute arbitrary EJS templates

CVE-2021-20670 HIGH
7.5 Mar 10

Improper access control vulnerability in GROWI versions v4.2.2 and earlier allows a remote unauthenticated attacker to r

CVE-2020-5683 HIGH
7.5 Dec 16

Directory traversal vulnerability in GROWI versions prior to v4.2.3 (v4.2 Series), GROWI versions prior to v4.1.12 (v4.1

CVE-2020-5682 HIGH
7.5 Dec 16

Improper input validation in GROWI versions prior to v4.2.3 (v4.2 Series), GROWI versions prior to v4.1.12 (v4.1 Series)

CVE-2020-5676 HIGH
7.5 Dec 03

GROWI v4.1.3 and earlier allow remote attackers to obtain information which is not allowed to access via unspecified vec

CVE-2019-13338 HIGH
7.5 Jul 09

In WESEEK GROWI before 3.5.0, a remote attacker can obtain the password hash of the creator of a page by leveraging wiki

CVE-2019-13337 HIGH
7.5 Jul 09

In WESEEK GROWI before 3.5.0, the site-wide basic authentication can be bypassed by adding a URL parameter access_token

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy