{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-80191",
        "assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
        "state": "PUBLISHED",
        "assignerShortName": "VulnCheck",
        "dateReserved": "2026-08-25T23:10:02.093Z",
        "datePublished": "2026-08-25T23:18:59.672Z",
        "dateUpdated": "2026-08-25T23:18:59.672Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
                "shortName": "VulnCheck",
                "dateUpdated": "2026-08-25T23:18:59.672Z"
            },
            "datePublic": "2026-08-25T00:00:00.000Z",
            "title": "GROWI before 8.0.2 Missing Authorization on Attachment Retrieval for Unauthenticated Requests",
            "descriptions": [
                {
                    "lang": "en",
                    "value": "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."
                }
            ],
            "problemTypes": [
                {
                    "descriptions": [
                        {
                            "lang": "en",
                            "cweId": "CWE-862",
                            "description": "Missing Authorization",
                            "type": "CWE"
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "vendor": "GROWI, Inc.",
                    "product": "GROWI",
                    "collectionURL": "https://github.com/growilabs/growi",
                    "packageURL": "pkg:github/growilabs/growi",
                    "repo": "https://github.com/growilabs/growi",
                    "defaultStatus": "unaffected",
                    "versions": [
                        {
                            "version": "0",
                            "lessThan": "8.0.2",
                            "status": "affected",
                            "versionType": "semver"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:a:weseek:growi:*:*:*:*:*:*:*:*",
                                    "versionEndExcluding": "8.0.2"
                                }
                            ]
                        }
                    ]
                }
            ],
            "metrics": [
                {
                    "format": "CVSS",
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "GENERAL"
                        }
                    ],
                    "cvssV4_0": {
                        "attackVector": "NETWORK",
                        "attackComplexity": "LOW",
                        "attackRequirements": "NONE",
                        "privilegesRequired": "NONE",
                        "userInteraction": "NONE",
                        "vulnConfidentialityImpact": "HIGH",
                        "subConfidentialityImpact": "NONE",
                        "vulnIntegrityImpact": "NONE",
                        "subIntegrityImpact": "NONE",
                        "vulnAvailabilityImpact": "NONE",
                        "subAvailabilityImpact": "NONE",
                        "exploitMaturity": "NOT_DEFINED",
                        "Safety": "NOT_DEFINED",
                        "Automatable": "NOT_DEFINED",
                        "Recovery": "NOT_DEFINED",
                        "valueDensity": "NOT_DEFINED",
                        "vulnerabilityResponseEffort": "NOT_DEFINED",
                        "providerUrgency": "NOT_DEFINED",
                        "version": "4.0",
                        "baseSeverity": "HIGH",
                        "baseScore": 8.7,
                        "vectorString": "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"
                    }
                },
                {
                    "format": "CVSS",
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "GENERAL"
                        }
                    ],
                    "cvssV3_1": {
                        "attackVector": "NETWORK",
                        "attackComplexity": "LOW",
                        "privilegesRequired": "NONE",
                        "userInteraction": "NONE",
                        "scope": "UNCHANGED",
                        "confidentialityImpact": "HIGH",
                        "integrityImpact": "NONE",
                        "availabilityImpact": "NONE",
                        "version": "3.1",
                        "baseSeverity": "HIGH",
                        "baseScore": 7.5,
                        "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
                    }
                }
            ],
            "references": [
                {
                    "url": "https://github.com/growilabs/growi",
                    "tags": [
                        "product"
                    ]
                },
                {
                    "url": "https://github.com/growilabs/growi/pull/11756",
                    "tags": [
                        "issue-tracking"
                    ]
                },
                {
                    "url": "https://github.com/growilabs/growi/blob/v8.0.1/apps/app/src/server/routes/attachment/get.ts",
                    "tags": [
                        "technical-description"
                    ]
                },
                {
                    "url": "https://github.com/growilabs/growi/releases/tag/v8.0.2",
                    "tags": [
                        "release-notes"
                    ]
                },
                {
                    "name": "VulnCheck Advisory: GROWI before 8.0.2 Missing Authorization on Attachment Retrieval for Unauthenticated Requests",
                    "tags": [
                        "third-party-advisory"
                    ],
                    "url": "https://www.vulncheck.com/advisories/growi-before-8.0.2-missing-authorization-on-attachment-retrieval-for-unauthenticated-requests"
                }
            ],
            "credits": [
                {
                    "lang": "en",
                    "value": "Dilipkumar Choudhary",
                    "type": "finder"
                }
            ],
            "x_generator": {
                "engine": "vulncheck-endgame"
            },
            "source": {
                "discovery": "UNKNOWN"
            }
        }
    }
}