Informational scan, not a security audit. How this is computed.
API keys, passwords or tokens committed into the repo.
Nothing found by this check. ✓
Packages you depend on that have known security holes (CVEs).
GHSA-537c-gmf6-5ccf Vulnerable OpenSSL included in cryptography wheelsCVE-2026-45409 python-idna: idna: Denial of Service via specially crafted long inputsCVE-2026-52869 MCP Python SDK: HTTP transports serve session requests without verifying the authenticated principalCVE-2026-52870 MCP Python SDK: Experimental task handlers allow any client to access and cancel other clients' tasksCVE-2026-59950 MCP Python SDK: WebSocket server transport does not support Host/Origin validationGHSA-4xgf-cpjx-pc3j pydantic-settings: NestedSecretsSettingsSource follows symlinks outside secrets_dir, enabling local file read and bypassing secrets_dir_max_sizeCVE-2026-48526 python-pyjwt: PyJWT: Authentication bypass due to forged JSON Web TokensCVE-2026-48522 python-pyjwt: PyJWT: Server-Side Request Forgery (SSRF) via uncontrolled URL fetching in PyJWKClientCVE-2026-48523 python-pyjwt: PyJWT: Verifier-side algorithm bypass leads to unauthorized information accessCVE-2026-48525 python-pyjwt: PyJWT: Denial of Service via processing of crafted detached JWS tokensCVE-2026-42561 python-multipart: python-multipart: Denial of Service via excessive multipart part headersCVE-2026-53539 python-multipart: Python-Multipart: Denial of Service via crafted form-urlencoded bodiesCVE-2026-48818 starlette: Starlette: SSRF and NTLM credential theft via UNC paths in StaticFiles on WindowsCVE-2026-54283 starlette: Starlette: request.form() limits silently ignored for application/x-www-form-urlencoded enable DoSCVE-2026-48710 starlette: Starlette: Security restriction bypass via malformed HTTP Host headerCVE-2026-48817 starlette: Starlette: Information disclosure and unintended method execution via non-standard HTTP methodsCVE-2026-48524 python-pyjwt: PyJWT: Denial of Service via unverified JSON Web Token key IDsCVE-2026-53537 multipart: Python-Multipart: Information disclosure via header parsing discrepancyCVE-2026-53538 python-multipart: Python-Multipart: Information disclosure due to parser differential in form data handlingCVE-2026-53540 python-multipart: Python-Multipart: Negative Content-Length in parse_form buffers the entire body in memoryCVE-2026-54282 starlette: Starlette: Information disclosure due to improper HTTP request path validationYour dependencies cross-checked against the OSV vulnerability database.
GHSA-537c-gmf6-5ccf Vulnerable OpenSSL included in cryptography wheelsPYSEC-2026-215 Internationalized Domain Names in Applications (IDNA) for Python provides support for Internationalized Domain Names in Applications (IDNA) and Unicode IDNA Compatibility Processing. In versions priorPYSEC-2026-3481 MCP Python SDK: Experimental task handlers allow any client to access and cancel other clients' tasksPYSEC-2026-3482 MCP Python SDK: HTTP transports serve session requests without verifying the authenticated principalPYSEC-2026-3483 MCP Python SDK: WebSocket server transport does not support Host/Origin validationGHSA-4xgf-cpjx-pc3j pydantic-settings: NestedSecretsSettingsSource follows symlinks outside secrets_dir, enabling local file read and bypassing secrets_dir_max_sizePYSEC-2026-175 PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient passes its uri argument directly to urllib.request.urlopen() which uses Python stdlib's default OpenerDirector registerPYSEC-2026-178 PyJWT is a JSON Web Token implementation in Python. From 2.8.0 to 2.12.1, when verifying detached JWS tokens using the unencoded-payload option ("b64": false, RFC 7797), PyJWT performs Base64URL decodPYSEC-2026-179 PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, when the verifier is decoding JSON Web Tokens, while supporting both asymmetric and HMAC algorithms, the library does not validate GHSA-jq35-7prp-9v3f PyJWT: Algorithm allow-list bypass when decoding with `PyJWK` / `PyJWKClient` keysPYSEC-2026-3036 python-multipart: Quadratic-time querystring parsing with semicolon separators causes CPU denial of servicePYSEC-2026-3039 python-multipart has Denial of Service via unbounded multipart part headersPYSEC-2026-161 BadHost: Missing Host header validation poisons request.url.path, bypassing path-based security checksPYSEC-2026-2280 Starlette is a lightweight ASGI framework/toolkit. In versions 1.0.1 and below, when dispatching a request, HTTPEndpoint selects the handler by lowercasing the HTTP method and looking it up as an attrPYSEC-2026-2281 Starlette is a lightweight ASGI framework/toolkit. In versions 1.0.1 and earlier, StaticFiles on Windows is vulnerable to SSRF. An UNC path such as \\attacker.com\share can cause os.path.realpath to iPYSEC-2026-248 Starlette is a lightweight ASGI framework/toolkit. Prior to 1.3.0, the HTTP request path is not validated before being used to reconstruct request.url. Because request.url is rebuilt by concatenating PYSEC-2026-249 Starlette is a lightweight ASGI framework/toolkit. From 0.4.1 until 1.3.1, request.form() accepts max_fields and max_part_size to bound resource consumption while parsing form data. These limits are ePYSEC-2026-177 PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no ratPYSEC-2026-3037 python-multipart: Semicolon treated as querystring field separator enables parameter smugglingPYSEC-2026-3040 python-multipart: Negative Content-Length in parse_form buffers the entire body in memoryPYSEC-2026-3041 python-multipart: Content-Disposition parameter smuggling via RFC 2231/5987 extended parametersCode that can be exploited: injection, hardcoded credentials and similar.
Nothing found by this check. ✓
Packages that look intentionally malicious: typosquats, sneaky install scripts.
Nothing found by this check. ✓
A signal about how the project is maintained — not a vulnerability in your code. It doesn’t affect the verdict above.
Maintenance & supply-chain hygiene. A signal about the project, not a vulnerability in your code.
This check didn’t finish — that’s not the same as “clean.” Try Check again above.