Description
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.
Published: 2026-08-25
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A flaw in GROWI’s attachment handling bypasses the page‑viewer permission check when a request contains no authenticated user. The route handler returns the attachment file unconditionally if the request is not bound to a valid share link, allowing the attacker to retrieve the file regardless of page privacy settings. This results in unauthorized disclosure of potentially sensitive content and is classified as CWE‑862, a missing authorization weakness.

Affected Systems

Any GROWI installation running a version prior to 8.0.2 is vulnerable. The flaw exists in the codebase referenced in the public repository and is fixed in the 8.0.2 release. Administrators should identify instances using GROWI 8.0.1 or earlier and audit the attachments stored therein for exposure risk.

Risk and Exploitability

The CVSS score of 8.7 marks the vulnerability as high severity, though the EPSS score is not available and the vulnerability is not listed in the CISA KEV catalog. Attackers only need to know an attachment identifier, which can be obtained if it has ever leaked or was left in a publicly exposed URL, and then issue an unauthenticated HTTP request to /attachment/:id or /download/:id. The path parameter nature of the injection point means the attack is straightforward to execute without additional credentials, making exploitation likely in environments where identifiers are not tightly protected.

Generated by OpenCVE AI on August 26, 2026 at 01:10 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade GROWI to version 8.0.2 or later to apply the authorization check to all attachment requests.
  • Configure access control or network policies to limit unauthenticated access to the /attachment and /download endpoints, ensuring only authenticated requests can reach them.
  • Audit current attachments for accidental public exposure and, if necessary, rotate or remove identifiers that may still be accessible from legacy or leaked URLs.

Generated by OpenCVE AI on August 26, 2026 at 01:10 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 25 Aug 2026 23:30:00 +0000

Type Values Removed Values Added
Description 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.
Title GROWI before 8.0.2 Missing Authorization on Attachment Retrieval for Unauthenticated Requests
First Time appeared Weseek
Weseek growi
Weaknesses CWE-862
CPEs cpe:2.3:a:weseek:growi:*:*:*:*:*:*:*:*
Vendors & Products Weseek
Weseek growi
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}

cvssV4_0

{'score': 8.7, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-25T23:18:59.672Z

Reserved: 2026-08-25T23:10:02.093Z

Link: CVE-2026-80191

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-26T01:15:04Z

Weaknesses