{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-58108",
        "assignerOrgId": "85b1779b-6ecd-4f52-bcc5-73eac4659dcf",
        "state": "PUBLISHED",
        "assignerShortName": "ERIC",
        "dateReserved": "2026-06-29T10:41:35.472Z",
        "datePublished": "2026-08-26T06:48:06.407Z",
        "dateUpdated": "2026-08-26T06:48:06.407Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "85b1779b-6ecd-4f52-bcc5-73eac4659dcf",
                "shortName": "ERIC",
                "dateUpdated": "2026-08-26T06:48:06.407Z"
            },
            "title": "Personal access token delete filters on Session columns while deleting from PersonalAccessTokenDB",
            "problemTypes": [
                {
                    "descriptions": [
                        {
                            "lang": "en",
                            "cweId": "CWE-284",
                            "description": "CWE-284 Improper Access Control",
                            "type": "CWE"
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "vendor": "Ericsson",
                    "product": "CodeChecker",
                    "versions": [
                        {
                            "status": "affected",
                            "version": "6.26.0",
                            "lessThan": "6.28.3",
                            "versionType": "semver"
                        }
                    ],
                    "defaultStatus": "unaffected"
                }
            ],
            "descriptions": [
                {
                    "lang": "en",
                    "value": "The personal access token removal query selects from PersonalAccessTokenDB but filters on columns of Session, with no join between them. SQLAlchemy resolves that as an implicit cross join, so the filter does not constrain the delete to the calling user's own token in the way the code reads as intending. This way a user can delete all personal access tokens in the system.",
                    "supportingMedia": [
                        {
                            "type": "text/html",
                            "base64": false,
                            "value": "<p>The personal access token removal query selects from&nbsp;<code>PersonalAccessTokenDB</code>&nbsp;but filters on columns of&nbsp;<code>Session</code>, with no join between them. SQLAlchemy resolves that as an implicit cross join, so the filter does not constrain the delete to the calling user's own token in the way the code reads as intending. This way a user can delete all personal access tokens in the system.</p>"
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://github.com/Ericsson/codechecker/security/advisories/GHSA-mwpp-2jmv-26vv"
                }
            ],
            "metrics": [
                {
                    "format": "CVSS",
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "GENERAL"
                        }
                    ],
                    "cvssV4_0": {
                        "attackVector": "NETWORK",
                        "attackComplexity": "HIGH",
                        "attackRequirements": "NONE",
                        "privilegesRequired": "HIGH",
                        "userInteraction": "NONE",
                        "vulnConfidentialityImpact": "NONE",
                        "subConfidentialityImpact": "NONE",
                        "vulnIntegrityImpact": "LOW",
                        "subIntegrityImpact": "LOW",
                        "vulnAvailabilityImpact": "LOW",
                        "subAvailabilityImpact": "LOW",
                        "exploitMaturity": "PROOF_OF_CONCEPT",
                        "Safety": "NEGLIGIBLE",
                        "Automatable": "YES",
                        "Recovery": "USER",
                        "valueDensity": "CONCENTRATED",
                        "vulnerabilityResponseEffort": "LOW",
                        "providerUrgency": "NOT_DEFINED",
                        "version": "4.0",
                        "baseSeverity": "LOW",
                        "baseScore": 1.2,
                        "vectorString": "CVSS:4.0/AV:N/AC:H/AT:N/PR:H/UI:N/VC:N/VI:L/VA:L/SC:N/SI:L/SA:L/E:P/S:N/AU:Y/R:U/V:C/RE:L"
                    }
                }
            ],
            "credits": [
                {
                    "lang": "en",
                    "value": "Arpit Jain",
                    "type": "finder"
                }
            ],
            "source": {
                "discovery": "UNKNOWN"
            },
            "x_generator": {
                "engine": "Vulnogram 1.0.4"
            }
        }
    }
}