CVE-2026-80191: GROWI before 8.0.2 Missing Authorization on Attachment Retrieval for Unauthenticated Requests

Published Aug 25, 2026
·
Updated

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.

Affected Software

1 affected component
GROWI GROWI<8.0.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade GROWI to a version that resolves this vulnerability.

    Fixed in 8.0.2
  2. Configuration

    Remove/adjust the condition that currently requires the user to be non-null in retrieveAttachmentFromIdParam so that unauthenticated requests to /attachment/:id and /download/:id do not bypass the permission check (allow only when the requested file is already bound by a valid share link).

    GROWI route handler (apps/app/src/server/routes/attachment/get.ts; retrieveAttachmentFromIdParam) Attachment retrieval authorization check condition = Run permission check for both authenticated and unauthenticated requests; skip only when a valid share link has already bound the requested file to that share link's page

Event History

Aug 25, 2026
CVE Published
via MITRE·11:18 PM
Data Sourced
via MITRE·11:18 PM
DescriptionSeverityWeakness
Aug 26, 2026
Data Sourced
via NVD·05:18 AM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who can retrieve a private attachment?

Any unauthenticated remote caller who knows an attachment identifier can retrieve the corresponding file through /attachment/:id or /download/:id. The caller does not need permission to view the page that owns the attachment.

2

What does an attacker need to exploit this issue?

The attacker needs an attachment identifier. Identifiers may be retained by users whose access was later removed or recovered from places where they were previously exposed; no account, session, or user interaction is required.

3

Are share-link downloads affected in the fixed behavior?

Version 8.0.2 applies the permission check to both authenticated and unauthenticated requests. It skips the check only when a valid share link has already bound the requested attachment to that share link's page.

4

How can I determine whether an instance is vulnerable?

Versions before 8.0.2 are affected. On an affected instance, an unauthenticated request to /attachment/:id or /download/:id with an identifier for an attachment on a private page returns the file even though the requester cannot view that page.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203