gitsafehub
github.com/thliang01/pydantic-ai ↗

thliang01/pydantic-ai

scanned 2026-08-08 · git 219e788
3 of 6 checks flagged a security issue
🔴 Needs attention
Only 5 of 6 checks finished — treat this as provisional. Re-check ↻

Informational scan, not a security audit. How this is computed.

Leaked secrets1Vulnerable dependencies34Known OSS vulnerabilities64Risky code patternsMalicious dependenciesProject health

Security checks

Leaked secrets — Gitleaks 1 found · 1 serious

API keys, passwords or tokens committed into the repo.

  • Serious private-key Identified a Private Key, which may compromise cryptographic security and sensitive data encryption.
    tests/models/test_vertexai.py:178
    A credential (key, password or token) appears in your code. Fix: Remove it, rotate the key, and load it from an environment variable instead.

via Gitleaks v8.21.2 · MIT

Vulnerable dependencies — Trivy 34 found · 1 serious

Packages you depend on that have known security holes (CVEs).

  • Serious CVE-2025-43859 h11: h11 accepts some malformed Chunked-Encoding bodies
    uv.lock
    A package you depend on has a known security hole (CVE-2025-43859). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-45409 python-idna: idna: Denial of Service via specially crafted long inputs
    uv.lock
    A package you depend on has a known security hole (CVE-2026-45409). Fix: Update that package to its patched version.
  • Worth fixing GHSA-xf7x-x43h-rpqh json_repair: Circular JSON Schema `$ref` causes unbounded CPU DoS
    uv.lock
    A package you depend on has a known security hole (GHSA-xf7x-x43h-rpqh). Fix: Update that package to its patched version.
  • Worth fixing CVE-2025-4565 python-protobuf: Unbounded recursion in Python Protobuf
    uv.lock
    A package you depend on has a known security hole (CVE-2025-4565). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-0994 python: protobuf: Protobuf: Denial of Service due to recursion depth bypass
    uv.lock
    A package you depend on has a known security hole (CVE-2026-0994). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-23490 pyasn1: pyasn1: Denial of Service due to memory exhaustion from malformed RELATIVE-OID
    uv.lock
    A package you depend on has a known security hole (CVE-2026-23490). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-30922 pyasn1: pyasn1 Vulnerable to Denial of Service via Unbounded Recursion
    uv.lock
    A package you depend on has a known security hole (CVE-2026-30922). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-59884 python-pyasn1: pyasn1: Denial of Service via crafted BER input
    uv.lock
    A package you depend on has a known security hole (CVE-2026-59884). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-59885 pyasn1: python-pyasn1: pyasn1: Denial of Service via crafted ASN.1 OBJECT IDENTIFIER
    uv.lock
    A package you depend on has a known security hole (CVE-2026-59885). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-59886 pyasn1: pyasn1: Denial of Service via crafted ASN.1 REAL values
    uv.lock
    A package you depend on has a known security hole (CVE-2026-59886). Fix: Update that package to its patched version.
  • Worth fixing CVE-2024-53981 python-multipart: python-multipart has a DoS via deformation `multipart/form-data` boundary
    uv.lock
    A package you depend on has a known security hole (CVE-2024-53981). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-24486 python-multipart: Python-Multipart: Arbitrary file write via path traversal vulnerability
    uv.lock
    A package you depend on has a known security hole (CVE-2026-24486). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-42561 python-multipart: python-multipart: Denial of Service via excessive multipart part headers
    uv.lock
    A package you depend on has a known security hole (CVE-2026-42561). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-53539 python-multipart: Python-Multipart: Denial of Service via crafted form-urlencoded bodies
    uv.lock
    A package you depend on has a known security hole (CVE-2026-53539). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-40347 python-multipart: Python-Multipart: Denial of Service via crafted multipart/form-data requests
    uv.lock
    A package you depend on has a known security hole (CVE-2026-40347). Fix: Update that package to its patched version.
  • Worth fixing CVE-2024-47081 requests: Requests vulnerable to .netrc credentials leak via malicious URLs
    uv.lock
    A package you depend on has a known security hole (CVE-2024-47081). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-25645 requests: Requests: Security bypass due to predictable temporary file creation
    uv.lock
    A package you depend on has a known security hole (CVE-2026-25645). Fix: Update that package to its patched version.
  • Worth fixing CVE-2025-62727 starlette: Starlette DoS via Range header merging
    uv.lock
    A package you depend on has a known security hole (CVE-2025-62727). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-48818 starlette: Starlette: SSRF and NTLM credential theft via UNC paths in StaticFiles on Windows
    uv.lock
    A package you depend on has a known security hole (CVE-2026-48818). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-54283 starlette: Starlette: request.form() limits silently ignored for application/x-www-form-urlencoded enable DoS
    uv.lock
    A package you depend on has a known security hole (CVE-2026-54283). Fix: Update that package to its patched version.
  • Worth fixing CVE-2025-54121 starlette: Starlette denial-of-service
    uv.lock
    A package you depend on has a known security hole (CVE-2025-54121). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-48710 starlette: Starlette: Security restriction bypass via malformed HTTP Host header
    uv.lock
    A package you depend on has a known security hole (CVE-2026-48710). Fix: Update that package to its patched version.
  • Worth fixing CVE-2026-48817 starlette: Starlette: Information disclosure and unintended method execution via non-standard HTTP methods
    uv.lock
    A package you depend on has a known security hole (CVE-2026-48817). Fix: Update that package to its patched version.
  • Worth fixing CVE-2025-66418 urllib3: urllib3: Unbounded decompression chain leads to resource exhaustion
    uv.lock
    A package you depend on has a known security hole (CVE-2025-66418). Fix: Update that package to its patched version.
  • Worth fixing CVE-2025-66471 urllib3: urllib3 Streaming API improperly handles highly compressed data
    uv.lock
    A package you depend on has a known security hole (CVE-2025-66471). Fix: Update that package to its patched version.
… 9 more not shown

via Trivy v0.70.0 · Apache-2.0

Known OSS vulnerabilities — OSV-Scanner 64 found · 2 serious

Your dependencies cross-checked against the OSV vulnerability database.

  • Serious PYSEC-2026-2120 Black is the uncompromising Python code formatter. Black provides a GitHub action for formatting code. This action supports an option, use_pyproject: true, for reading the version of Black to use from
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-31900). Fix: Update that package to its patched version.
  • Serious PYSEC-2026-348 h11 accepts some malformed Chunked-Encoding bodies
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2025-43859). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2121 Black is the uncompromising Python code formatter. Prior to 26.3.1, Black writes a cache file, the name of which is computed from various formatting options. The value of the --python-cell-magics opti
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-32274). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2122 CairoSVG is an SVG converter based on Cairo, a 2D graphics library. Prior to Kozea/CairoSVG has exponential denial of service via recursive <use> element amplification in cairosvg/defs.py. This causes
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-31899). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2132 Pallets Click, versions 8.3.2 and below, contain a command injection vulnerability in the click.edit() function, allowing attackers to pass arbitrary OS commands from an unprivileged account.
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-7246). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-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 prior
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-45409). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-1471 Jinja2 vulnerable to sandbox breakout through attr filter selecting format method
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2025-27516). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-1472 Jinja has a sandbox breakout through malicious filenames
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2024-56201). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-1475 Jinja has a sandbox breakout through indirect reference to format method
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2024-56326). Fix: Update that package to its patched version.
  • Worth fixing GHSA-xf7x-x43h-rpqh json_repair: Circular JSON Schema `$ref` causes unbounded CPU DoS
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole. Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-89 Python-Markdown version 3.8 contain a vulnerability where malformed HTML-like sequences can cause html.parser.HTMLParser to raise an unhandled AssertionError during Markdown parsing. Because Python-Ma
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2025-69534). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-165 Pillow is a Python imaging library. Prior to version 12.2.0, if a font advances for each glyph by an exceeding large amount, when Pillow keeps track of the current position, it may lead to an integer
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-42308). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2249 Pillow is a Python imaging library. From 10.3.0 to before 12.1.1, an out-of-bounds write may be triggered when loading a specially crafted PSD image. This vulnerability is fixed in 12.1.1.
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-25990). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2250 Pillow is a Python imaging library. Versions 10.3.0 through 12.1.1 did not limit the amount of GZIP-compressed data read when decoding a FITS image, making them vulnerable to decompression bomb attack
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-40192). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2252 Pillow is a Python imaging library. From version 10.3.0 to before version 12.2.0, processing a malicious PSD file could lead to memory corruption, potentially resulting in a crash or arbitrary code ex
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-42311). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2253 Pillow is a Python imaging library. Prior to 12.3.0, PIL/PcfFontFile.py _load_bitmaps() read glyph dimensions from the PCF METRICS section and passed them directly to Image.frombytes() without calling
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-54059). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2254 Pillow is a Python imaging library. Prior to 12.3.0, PIL/FontFile.py FontFile.compile() assembled per-glyph images into a combined bitmap with Image.new("1", (xsize, ysize)) without calling Image._dec
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-54060). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2255 Pillow is a Python imaging library. Prior to 12.3.0, PIL/BdfFontFile.py bdf_char() read the BBX width and height field from a BDF font file and passed attacker-controlled dimensions to Image.new() wit
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-55379). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2256 Pillow is a Python imaging library. Prior to 12.3.0, PIL/GdImageFile.py GdImageFile._open() read image dimensions from the GD 2.x header and stored them in self._size without calling Image._decompress
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-55380). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2257 Pillow is a Python imaging library. Prior to 12.3.0, WindowsViewer.get_command() constructed a cmd.exe shell command by directly embedding a file path into an f-string without escaping and passed the
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-55798). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-2874 Pillow has a PDF Parsing Trailer Infinite Loop (DoS)
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-42310). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-3451 Pillow is a Python imaging library. Prior to 12.3.0, Pillow public image coordinate APIs can trigger a native heap out-of-bounds write when given coordinates near the signed 32-bit integer limits in I
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-59199). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-3453 Pillow is a Python imaging library. Prior to 12.3.0, Pillow's ImageCms.ImageCmsTransform.apply(im, imOut) API can trigger controlled native heap corruption when the caller supplies an output image who
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-59205). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-3454 Pillow is a Python imaging library. Prior to 12.3.0, Pillow's public rank-filter API can trigger a native heap out-of-bounds write when given a very large odd filter size because ImageFilter.RankFilte
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-59197). Fix: Update that package to its patched version.
  • Worth fixing PYSEC-2026-3493 Pillow: Out-of-bounds read via attacker-controlled row stride on Pillow's mmap path (McIdas AREA files)
    /workdirs/scan-5d4038ba-2f64-412e-b6b2-6bc5e519d7d8/uv.lock
    A package you depend on has a known security hole (CVE-2026-54058). Fix: Update that package to its patched version.
… 39 more not shown

via OSV-Scanner v1.9.2 · Apache-2.0

Risky code patterns — Semgrep none found ✓

Code that can be exploited: injection, hardcoded credentials and similar.

Nothing found by this check. ✓

via Semgrep v1.147.0 · LGPL-2.1

Malicious dependencies — Guarddog none found ✓

Packages that look intentionally malicious: typosquats, sneaky install scripts.

Nothing found by this check. ✓

via Guarddog v2.10.0 · Apache-2.0

Project health

A signal about how the project is maintained — not a vulnerability in your code. It doesn’t affect the verdict above.

Project health — OpenSSF Scorecard didn’t run

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.

via OpenSSF Scorecard · Apache-2.0

About these results. Six open-source checks ran in parallel; every finding is tagged with the tool that produced it. The verdict follows a published rule. False positives and false negatives are normal — a clean scan does not mean the code is secure, and a red verdict does not mean the project is compromised.