Skip to content

fix(ci): require uv >=0.8.6 for VULN-95456 - #154

Open
shuningc wants to merge 4 commits into
mainfrom
VULN-95456-uv-upgrade
Open

fix(ci): require uv >=0.8.6 for VULN-95456#154
shuningc wants to merge 4 commits into
mainfrom
VULN-95456-uv-upgrade

Conversation

@shuningc

@shuningc shuningc commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Remediates VULN-95456 / CVE-2025-54368 (GHSA-8qf3-x8v5-2pj8) by ensuring uv is at least 0.8.6 everywhere it is used in this repo.

uv ≤0.8.5 is vulnerable to ZIP payload obfuscation via parsing differentials — an attacker can craft ZIP archives that extract with benign contents under some installers and malicious contents under others (stacked/duplicate local file entries). This requires user interaction (installing an attacker-controlled package).

Changes

  • CI workflows (.github/workflows/ci-tests-splunk-ao-adk.yaml, ci-tests-splunk-ao-a2a.yaml): add version: ">=0.8.6" to astral-sh/setup-uv so CI always installs a patched uv.
  • Subproject pyproject.toml (splunk-ao-adk/, splunk-ao-a2a/): add [tool.uv] required-version = ">=0.8.6" so local dev also enforces the floor.

Fixed Version Rationale

Source Detail
CVE CVE-2025-54368
Advisory GHSA-8qf3-x8v5-2pj8
Affected uv ≤ 0.8.5
Fixed in uv 0.8.6+
Pin applied >=0.8.6 (minimum safe floor; allows newer compatible releases)

uv 0.8.6 reconciles local file entries with the central directory and rejects malformed/stacked ZIP archives.

Notes

  • uv is not a Python package dependency in this repo — it is used as a CI/dev tool only.
  • No lockfile regeneration needed (poetry.lock / uv.lock unaffected).
  • Prior CI used setup-uv without an explicit version (defaulting to latest); this change makes the floor explicit and durable.

Test plan

  • CI passes on ci-tests-splunk-ao-adk workflow
  • CI passes on ci-tests-splunk-ao-a2a workflow
  • Confirm installed uv version in CI logs is ≥ 0.8.6

Pin uv to the patched floor in CI workflows and enforce required-version
in splunk-ao-adk/a2a pyproject.toml. Fixes CVE-2025-54368 (ZIP parsing
differentials allowing malicious package extraction).

Co-authored-by: Cursor <cursoragent@cursor.com>
@shuningc
shuningc marked this pull request as ready for review July 27, 2026 21:44

@fercor-cisco fercor-cisco left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 This review was generated by the Astra agent (claude-opus-4-8). It may contain mistakes.

Verdict: request_changes — PR does not remediate VULN-95456: the flagged uv 0.8.9 in poetry.lock is untouched, and the applied floor (>=0.8.6) is below the required remediation (0.9.6).

General Comments

  • 🔴 critical (bug): This PR does not actually remediate VULN-95456 and the ticket will not close.

The ticket (CVE-2025-13327) flags uv 0.8.9 with origin path poetry.lock and remediation 0.9.6. In this repo poetry.lock pins uv 0.8.9 (line 5636), pulled in transitively as an optional dependency of crewai (uv = ">=0.4.25", poetry.lock line 811) under the crewai/all extras. This PR does not modify poetry.lock at all, so the scanner will continue to report the vulnerable uv 0.8.9.

The PR body's claims that "uv is not a Python package dependency in this repo" and "No lockfile regeneration needed (poetry.lock/uv.lock unaffected)" are both incorrect. To close the ticket, poetry.lock must be regenerated so the transitive uv is >= 0.9.6 (e.g. add a floor on uv and re-lock, or constrain the transitive dependency), then verify FOSSA no longer flags it.

Separately, the CVE in the PR body (CVE-2025-54368, fixed in 0.8.6) does not match the ticket's CVE (CVE-2025-13327, remediation 0.9.6). Please reconcile which vulnerability is being remediated; addressing only CVE-2025-54368 leaves VULN-95456 open.

Comment thread splunk-ao-a2a/pyproject.toml Outdated

# UV-specific configuration (path for dev, ignored when installed from PyPI)
[tool.uv]
required-version = ">=0.8.6"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 major (bug): Same as the a2a subproject: this floor >=0.8.6 is below the ticket's required remediation of uv 0.9.6, and required-version controls the uv executable, not the uv 0.8.9 locked in poetry.lock that the scanner actually flags.

Suggested change
required-version = ">=0.8.6"
required-version = ">=0.9.6"

🤖 Generated by the Astra agent

Comment thread .github/workflows/ci-tests-splunk-ao-a2a.yaml Outdated
Comment thread .github/workflows/ci-tests-splunk-ao-adk.yaml Outdated
shuningc and others added 3 commits July 30, 2026 11:36
Co-authored-by: Fernando Correia <fercor@cisco.com>
Co-authored-by: Fernando Correia <fercor@cisco.com>
Co-authored-by: Fernando Correia <fercor@cisco.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants