Skip to content

feature: Add Trivy CVE scanner #2248

Description

@m-misiura

Did you check the docs?

  • I have read all the NeMo-Guardrails docs

Is your feature request related to a problem? Please describe.

There is no automated scanning for vulnerabilities in Python dependencies. With many dependencies, CVEs in packages like aiohttp, urllib3, and NLTK can go undetected until downstream consumers or container image scanners flag them.

Describe the solution you'd like

A weekly cron on the develop branch makes to catch newly disclosed CVEs using trivy

We would get a report along the lines of this:

Report Summary

┌─────────────┬────────┬─────────────────┐
│   Target    │  Type  │ Vulnerabilities │
├─────────────┼────────┼─────────────────┤
│ poetry.lock │ poetry │       48        │
└─────────────┴────────┴─────────────────┘
Legend:
- '-': Not scanned
- '0': Clean (no security findings detected)


poetry.lock (poetry)
====================
Total: 48 (HIGH: 48, CRITICAL: 0)

┌───────────────────┬─────────────────────┬──────────┬────────┬───────────────────┬───────────────┬──────────────────────────────────────────────────────────────┐
│      Library      │    Vulnerability    │ Severity │ Status │ Installed Version │ Fixed Version │                            Title                             │
├───────────────────┼─────────────────────┼──────────┼────────┼───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ aiohttp           │ CVE-2026-69244      │ HIGH     │ fixed  │ 3.13.5            │ 3.14.3        │ AIOHTTP: Out-of-bounds heap read in C HTTP response parser   │
│                   │                     │          │        │                   │               │ error path (malformed...                                     │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-69244                   │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ cryptography      │ CVE-2026-69247      │          │        │ 46.0.6            │ 50.0.0        │ cryptography: PKCS#7 EnvelopedData decryption exposes a      │
│                   │                     │          │        │                   │               │ Bleichenbacher oracle through distinguishable errors and...  │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-69247                   │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-69249      │          │        │                   │ 49.0.0        │ python-cryptography: Duplicate self-signed intermediates can │
│                   │                     │          │        │                   │               │ cause exponential path-building                              │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-69249                   │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-537c-gmf6-5ccf │          │        │                   │ 48.0.1        │ Vulnerable OpenSSL included in cryptography wheels           │
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-537c-gmf6-5ccf            │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ gitpython         │ CVE-2026-42215      │          │        │ 3.1.46            │ 3.1.47        │ GitPython is a python library used to interact with Git      │
│                   │                     │          │        │                   │               │ repositories. ...                                            │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-42215                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-42284      │          │        │                   │               │ GitPython is a python library used to interact with Git      │
│                   │                     │          │        │                   │               │ repositories. ...                                            │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-42284                   │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-44243      │          │        │                   │ 3.1.48        │ GitPython: GitPython: Arbitrary file write via crafted       │
│                   │                     │          │        │                   │               │ reference paths                                              │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-44243                   │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-44244      │          │        │                   │ 3.1.49        │ GitPython is a python library used to interact with Git      │
│                   │                     │          │        │                   │               │ repositories. ...                                            │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-44244                   │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-2f96-g7mh-g2hx │          │        │                   │ 3.1.51        │ GitPython: Command Injection via git long-option prefix      │
│                   │                     │          │        │                   │               │ abbreviation bypass of CVE-2026-42215 blocklist...           │
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-2f96-g7mh-g2hx            │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-3f7w-8rr8-f37f │          │        │                   │ 3.1.57        │ GitPython: Unguarded git option forwarding in                │
│                   │                     │          │        │                   │               │ IndexFile.checkout() and TagReference.create() enables       │
│                   │                     │          │        │                   │               │ arbitrary file...                                            │
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-3f7w-8rr8-f37f            │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-3rp5-jjmw-4wv2 │          │        │                   │ 3.1.53        │ GitPython: git-config section-name injection enables         │
│                   │                     │          │        │                   │               │ arbitrary config directives (core.sshCommand RCE)            │
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-3rp5-jjmw-4wv2            │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-6p8h-3wgx-97gf │          │        │                   │ 3.1.54        │ GitPython: Incomplete unsafe_git_clone_options denylist      │
│                   │                     │          │        │                   │               │ omits --template enabling arbitrary command execution via    │
│                   │                     │          │        │                   │               │ clone...                                                     │
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-6p8h-3wgx-97gf            │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-94p4-4cq8-9g67 │          │        │                   │ 3.1.55        │ GitPython: Environment-variable exfiltration via             │
│                   │                     │          │        │                   │               │ Repo.create_remote() / Remote.add() URL (incomplete fix of   │
│                   │                     │          │        │                   │               │ GHSA-rwj8-pgh3-r573)...                                      │
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-94p4-4cq8-9g67            │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-956x-8gvw-wg5v │          │        │                   │ 3.1.51        │ GitPython: command injection via unguarded Git options in    │
│                   │                     │          │        │                   │               │ `Repo.archive()`, `git.ls_remote()`, and arbitrary...        │
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-956x-8gvw-wg5v            │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-fjr4-x663-mwxc │          │        │                   │ 3.1.54        │ GitPython: Arbitrary file overwrite via git diff --output    │
│                   │                     │          │        │                   │               │ argument injection in Diffable.diff...                       │
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-fjr4-x663-mwxc            │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-mv93-w799-cj2w │          │        │                   │ 3.1.50        │ GitPython: Newline injection in config_writer() section      │
│                   │                     │          │        │                   │               │ parameter bypasses CVE-2026-42215 patch, enabling RCE...     │
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-mv93-w799-cj2w            │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-r9mr-m37c-5fr3 │          │        │                   │ 3.1.54        │ GitPython: Unsafe git option guard bypass via                │
│                   │                     │          │        │                   │               │ single-character kwarg value token smuggling...              │
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-r9mr-m37c-5fr3            │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-rwj8-pgh3-r573 │          │        │                   │ 3.1.52        │ GitPython: Environment-variable exfiltration via             │
│                   │                     │          │        │                   │               │ os.path.expandvars() on Repo.clone_from() URL                │
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-rwj8-pgh3-r573            │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ langchain-classic │ CVE-2026-45134      │          │        │ 1.0.3             │ 1.0.7         │ LangSmith SDK: Public prompt pull deserializes untrusted     │
│                   │                     │          │        │                   │               │ manifests without trust boundary warning...                  │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-45134                   │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ langchain-core    │ CVE-2026-44843      │          │        │ 1.2.26            │ 1.3.3, 0.3.85 │ langchain: LangChain: Information disclosure and data        │
│                   │                     │          │        │                   │               │ integrity compromise via insecure deserialization            │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-44843                   │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ langsmith         │ CVE-2026-45134      │          │        │ 0.7.26            │ 0.8.0         │ LangSmith SDK: Public prompt pull deserializes untrusted     │
│                   │                     │          │        │                   │               │ manifests without trust boundary warning...                  │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-45134                   │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ GHSA-f4xh-w4cj-qxq8 │          │        │                   │ 0.8.18        │ LangSmith SDK TracingMiddleware: Arbitrary server-side file  │
│                   │                     │          │        │                   │               │ read
│                   │                     │          │        │                   │               │ https://github.com/advisories/GHSA-f4xh-w4cj-qxq8            │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ nltk              │ CVE-2026-12061      │          │        │ 3.9.4             │ 3.10.0        │ Natural Language Toolkit (NLTK): ReDoS in NLTK               │
│                   │                     │          │        │                   │               │ ReviewsCorpusReader FEATURES regex                           │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-12061                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-12072      │          │        │                   │               │ Natural Language Toolkit (NLTK): Path Traversal in
│                   │                     │          │        │                   │               │ NKJPCorpusReader leads to Arbitrary File...                  │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-12072                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-12074      │          │        │                   │               │ Natural Language Toolkit (NLTK) has path traversal in
│                   │                     │          │        │                   │               │ FramenetCorpusReader.frame() that allows arbitrary...        │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-12074                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-12075      │          │        │                   │               │ Natural Language Toolkit (NLTK): DNS-rebinding SSRF filter   │
│                   │                     │          │        │                   │               │ bypass in nltk.pathsec.urlopen (nltk.download /...           │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-12075                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-54293      │          │        │                   │               │ nltk: NLTK: Information Disclosure via Path Traversal in
│                   │                     │          │        │                   │               │ `nltk.data.load()`
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-54293                   │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ pillow            │ CVE-2026-54058      │          │        │ 12.2.0            │ 12.3.0        │ Pillow: Pillow: Memory disclosure or denial of service via   │
│                   │                     │          │        │                   │               │ crafted McIdas AREA...                                       │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-54058                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-54059      │          │        │                   │               │ python-pillow: Pillow: Denial of Service via crafted PCF     │
│                   │                     │          │        │                   │               │ font data                                                    │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-54059                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-54060      │          │        │                   │               │ python-pillow: Pillow: Denial of Service via excessive       │
│                   │                     │          │        │                   │               │ memory allocation when processing font...                    │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-54060                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-55379      │          │        │                   │               │ python-pillow: Pillow: Denial of Service via crafted BDF     │
│                   │                     │          │        │                   │               │ font file                                                    │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-55379                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-55380      │          │        │                   │               │ python-pillow: Pillow: Denial of Service via crafted GD 2.x  │
│                   │                     │          │        │                   │               │ image file                                                   │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-55380                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-59197      │          │        │                   │               │ Pillow: Pillow: Native heap out-of-bounds write              │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-59197                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-59199      │          │        │                   │               │ Pillow: Pillow: Denial of Service via out-of-bounds write in
│                   │                     │          │        │                   │               │ image processing                                             │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-59199                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-59200      │          │        │                   │               │ Pillow: Pillow: Denial of service via crafted PDF stream     │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-59200                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-59204      │          │        │                   │               │ Pillow: Pillow: Denial of Service via crafted JPEG2000 image │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-59204                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-59205      │          │        │                   │               │ Pillow: Pillow: Controlled native heap corruption in
│                   │                     │          │        │                   │               │ ImageCms.ImageCmsTransform.apply API                         │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-59205                   │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ pyasn1            │ CVE-2026-59884      │          │        │ 0.6.3             │ 0.6.4         │ python-pyasn1: pyasn1: Denial of Service via crafted BER     │
│                   │                     │          │        │                   │               │ input                                                        │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-59884                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-59885      │          │        │                   │               │ pyasn1: python-pyasn1: pyasn1: Denial of Service via crafted │
│                   │                     │          │        │                   │               │ ASN.1 OBJECT IDENTIFIER                                      │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-59885                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-59886      │          │        │                   │               │ pyasn1: pyasn1: Denial of Service via crafted ASN.1 REAL     │
│                   │                     │          │        │                   │               │ values                                                       │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-59886                   │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ soupsieve         │ CVE-2026-49476      │          │        │ 2.8.3             │ 2.8.4         │ python-soupsieve: Soupsieve: Denial of Service via crafted   │
│                   │                     │          │        │                   │               │ CSS selector string                                          │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-49476                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-49477      │          │        │                   │               │ soupsieve: Soupsieve: Denial of Service via crafted CSS      │
│                   │                     │          │        │                   │               │ selector strings                                             │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-49477                   │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ starlette         │ CVE-2026-48818      │          │        │ 1.0.0             │ 1.1.0         │ starlette: Starlette: SSRF and NTLM credential theft via UNC │
│                   │                     │          │        │                   │               │ paths in StaticFiles...                                      │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-48818                   │
│                   ├─────────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-54283      │          │        │                   │ 1.3.1         │ starlette: Starlette: request.form() limits silently ignored │
│                   │                     │          │        │                   │               │ for application/x-www-form-urlencoded enable DoS             │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-54283                   │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ tornado           │ CVE-2026-49853      │          │        │ 6.5.5             │ 6.5.6         │ Tornado is a Python web framework and asynchronous           │
│                   │                     │          │        │                   │               │ networking library. ...                                      │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-49853                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-49855      │          │        │                   │               │ Tornado is a Python web framework and asynchronous           │
│                   │                     │          │        │                   │               │ networking library. ...                                      │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-49855                   │
├───────────────────┼─────────────────────┤          │        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ urllib3           │ CVE-2026-44431      │          │        │ 2.6.3             │ 2.7.0         │ urllib3: urllib3: Information disclosure via cross-origin    │
│                   │                     │          │        │                   │               │ redirects forwarding sensitive headers                       │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-44431                   │
│                   ├─────────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│                   │ CVE-2026-44432      │          │        │                   │               │ urllib3: urllib3: Denial of Service due to excessive HTTP    │
│                   │                     │          │        │                   │               │ response decompression                                       │
│                   │                     │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2026-44432                   │
└───────────────────┴─────────────────────┴──────────┴────────┴───────────────────┴───────────────┴──────────────────────────────────────────────────────────────┘

This can be used to inform dependency upgrades

Describe alternatives you've considered

n / a

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requeststatus: needs triageNew issues that have not yet been reviewed or categorized.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions