Lookup for vulnerable packages by Package URL.

GET /api/packages/41557?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "url": "http://public2.vulnerablecode.io/api/packages/41557?format=api",
    "purl": "pkg:pypi/authlib@1.0.0",
    "type": "pypi",
    "namespace": "",
    "name": "authlib",
    "version": "1.0.0",
    "qualifiers": {},
    "subpath": "",
    "is_vulnerable": true,
    "next_non_vulnerable_version": "1.6.11",
    "latest_non_vulnerable_version": "1.6.11",
    "affected_by_vulnerabilities": [
        {
            "url": "http://public2.vulnerablecode.io/api/vulnerabilities/37302?format=api",
            "vulnerability_id": "VCID-hrf7-xz6n-efcg",
            "summary": "Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.6.11, there is no CSRF protection on the cache feature in authlib.integrations.starlette_client.OAuth.  This vulnerability is fixed in 1.6.11.",
            "references": [
                {
                    "reference_url": "https://github.com/authlib/authlib/security/advisories/GHSA-jj8c-mmj3-mmgv",
                    "reference_id": "",
                    "reference_type": "",
                    "scores": [
                        {
                            "value": "5.4",
                            "scoring_system": "cvssv3.1",
                            "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N"
                        }
                    ],
                    "url": "https://github.com/authlib/authlib/security/advisories/GHSA-jj8c-mmj3-mmgv"
                }
            ],
            "fixed_packages": [
                {
                    "url": "http://public2.vulnerablecode.io/api/packages/49680?format=api",
                    "purl": "pkg:pypi/authlib@1.6.11",
                    "is_vulnerable": false,
                    "affected_by_vulnerabilities": [],
                    "resource_url": "http://public2.vulnerablecode.io/packages/pkg:pypi/authlib@1.6.11"
                }
            ],
            "aliases": [
                "CVE-2026-41425",
                "GHSA-jj8c-mmj3-mmgv",
                "PYSEC-2026-25"
            ],
            "risk_score": null,
            "exploitability": null,
            "weighted_severity": null,
            "resource_url": "http://public2.vulnerablecode.io/vulnerabilities/VCID-hrf7-xz6n-efcg"
        },
        {
            "url": "http://public2.vulnerablecode.io/api/vulnerabilities/49616?format=api",
            "vulnerability_id": "VCID-pguz-hqre-77ac",
            "summary": "Authlib has 1-click Account Takeover vulnerability\nCache-backed state/request-token storage is not tied to the initiating user session, making CSRF possible for any attacker that possesses a valid state value (easily obtainable via an attacker-initiated authentication flow). When a cache is supplied to the OAuth client registry, `FrameworkIntegration.set_state_data` writes the entire state blob under `_state_{app}_{state}`, and `get_state_data` disregards the caller's session entirely. [1][2]\n\n```py\ndef _get_cache_data(self, key):\nvalue = self.cache.get(key)\nif not value:\nreturn None\ntry:\nreturn json.loads(value)\nexcept (TypeError, ValueError):\nreturn None\n[snip]\ndef get_state_data(self, session, state):\nkey = f\"_state_{self.name}_{state}\"\nif self.cache:\nvalue = self._get_cache_data(key)\nelse:\nvalue = session.get(key)\nif value:\nreturn value.get(\"data\")\nreturn None\n```\n\n*authlib/integrations/base_client/framework_integration.py:12-41*\n\nRetrieval in `authorize_access_token` therefore succeeds for whichever browser presents that opaque value, and the token exchange proceeds with the attacker's authorization code. [3]\n\n```py\ndef authorize_access_token(self, **kwargs):\n\"\"\"Fetch access token in one step.\n\n:return: A token dict.\n\"\"\"\nparams = request.args.to_dict(flat=True)\nstate = params.get(\"oauth_token\")\nif not state:\nraise OAuthError(description='Missing \"oauth_token\" parameter')\n\ndata = self.framework.get_state_data(session, state)\nif not data:\nraise OAuthError(description='Missing \"request_token\" in temporary data')\n\nparams[\"request_token\"] = data[\"request_token\"]\nparams.update(kwargs)\nself.framework.clear_state_data(session, state)\ntoken = self.fetch_access_token(**params)\nself.token = token\nreturn token\n```\n\n*authlib/integrations/flask_client/apps.py:57-76*\n\nThis opens up an avenue for Login CSRF in applications that use cache-backed storage. Depending on the dependent application's implementation (e.g., whether it links accounts in the event of a login CSRF), this could lead to account takeover.",
            "references": [
                {
                    "reference_url": "https://github.com/authlib/authlib",
                    "reference_id": "",
                    "reference_type": "",
                    "scores": [],
                    "url": "https://github.com/authlib/authlib"
                },
                {
                    "reference_url": "https://github.com/authlib/authlib/commit/2808378611dd6fb2532b189a9087877d8f0c0489",
                    "reference_id": "",
                    "reference_type": "",
                    "scores": [],
                    "url": "https://github.com/authlib/authlib/commit/2808378611dd6fb2532b189a9087877d8f0c0489"
                },
                {
                    "reference_url": "https://github.com/authlib/authlib/commit/7974f45e4d7492ab5f527577677f2770ce423228",
                    "reference_id": "",
                    "reference_type": "",
                    "scores": [],
                    "url": "https://github.com/authlib/authlib/commit/7974f45e4d7492ab5f527577677f2770ce423228"
                },
                {
                    "reference_url": "https://nvd.nist.gov/vuln/detail/CVE-2025-68158",
                    "reference_id": "CVE-2025-68158",
                    "reference_type": "",
                    "scores": [],
                    "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-68158"
                },
                {
                    "reference_url": "https://github.com/advisories/GHSA-fg6f-75jq-6523",
                    "reference_id": "GHSA-fg6f-75jq-6523",
                    "reference_type": "",
                    "scores": [],
                    "url": "https://github.com/advisories/GHSA-fg6f-75jq-6523"
                },
                {
                    "reference_url": "https://github.com/authlib/authlib/security/advisories/GHSA-fg6f-75jq-6523",
                    "reference_id": "GHSA-fg6f-75jq-6523",
                    "reference_type": "",
                    "scores": [],
                    "url": "https://github.com/authlib/authlib/security/advisories/GHSA-fg6f-75jq-6523"
                }
            ],
            "fixed_packages": [
                {
                    "url": "http://public2.vulnerablecode.io/api/packages/49675?format=api",
                    "purl": "pkg:pypi/authlib@1.6.6",
                    "is_vulnerable": true,
                    "affected_by_vulnerabilities": [
                        {
                            "vulnerability": "VCID-hrf7-xz6n-efcg"
                        }
                    ],
                    "resource_url": "http://public2.vulnerablecode.io/packages/pkg:pypi/authlib@1.6.6"
                }
            ],
            "aliases": [
                "CVE-2025-68158",
                "GHSA-fg6f-75jq-6523"
            ],
            "risk_score": null,
            "exploitability": null,
            "weighted_severity": null,
            "resource_url": "http://public2.vulnerablecode.io/vulnerabilities/VCID-pguz-hqre-77ac"
        },
        {
            "url": "http://public2.vulnerablecode.io/api/vulnerabilities/36812?format=api",
            "vulnerability_id": "VCID-tk6q-528z-rye4",
            "summary": "lepture Authlib before 1.3.1 has algorithm confusion with asymmetric public keys. Unless an algorithm is specified in a jwt.decode call, HMAC verification is allowed with any asymmetric public key. (This is similar to CVE-2022-29217 and CVE-2024-33663.)",
            "references": [
                {
                    "reference_url": "https://github.com/lepture/authlib/issues/654",
                    "reference_id": "",
                    "reference_type": "",
                    "scores": [],
                    "url": "https://github.com/lepture/authlib/issues/654"
                }
            ],
            "fixed_packages": [
                {
                    "url": "http://public2.vulnerablecode.io/api/packages/41563?format=api",
                    "purl": "pkg:pypi/authlib@1.3.1",
                    "is_vulnerable": true,
                    "affected_by_vulnerabilities": [
                        {
                            "vulnerability": "VCID-hrf7-xz6n-efcg"
                        }
                    ],
                    "resource_url": "http://public2.vulnerablecode.io/packages/pkg:pypi/authlib@1.3.1"
                }
            ],
            "aliases": [
                "CVE-2024-37568",
                "PYSEC-2024-52"
            ],
            "risk_score": null,
            "exploitability": null,
            "weighted_severity": null,
            "resource_url": "http://public2.vulnerablecode.io/vulnerabilities/VCID-tk6q-528z-rye4"
        }
    ],
    "fixing_vulnerabilities": [],
    "risk_score": null,
    "resource_url": "http://public2.vulnerablecode.io/packages/pkg:pypi/authlib@1.0.0"
}