Skip to content

fix(security): exclude compromised litellm 1.107.0 - #992

Merged
Abhijeet Prasad (AbhiPrasad) merged 1 commit into
mainfrom
fix/litellm-exclude-1.107.0
Oct 21, 2026
Merged

Abhijeet Prasad (AbhiPrasad) merged 1 commit into
mainfrom
fix/litellm-exclude-1.107.0

Conversation

@AbhiPrasad

Copy link
Copy Markdown
Member

Summary

LiteLLM 1.107.0 was published to PyPI with a credential-stealing payload (JFrog writeup). Our normal install paths already avoid it: py/uv.lock resolves 1.106.0 / 1.88.6, and the exclude-newer cutoff (2026-10-20T19:24:36Z) predates the release. PyPI has also removed 1.107.0. This PR closes the remaining gaps in case a mirror or cache still serves the bad wheel:

  • Exclude 1.107.0 from the lint group's open-ended litellm>=1.104.2 spec. This was the only open-ended LiteLLM spec under py/.
  • Pin examples/litellm and examples/dspy to litellm==1.106.0 (matrix latest). These were unpinned and outside the py/ cutoff.
  • Re-lock with the repo's pinned uv 0.13.4. The large uv.lock diff is format-only (lock revision 3 → 5, simplified markers).

Note: update-matrix-latest.py doesn't touch the examples, so their pins need a manual bump when matrix latest moves past 1.106.0.

Validation

  • Before and after uv.lock resolve to the same 355 packages at the same versions; the only real change is the LiteLLM spec. uv lock --check passes.
  • Each example installs in a fresh venv: litellm==1.106.0 (plus dspy==3.4.1 for the DSPy example). litellm and braintrust import cleanly, and none of the payload files (cook.pth, cook.py, sitecustomize.py) are present.
  • Pre-commit hooks pass on the changed files.
  • Did not run the examples end-to-end (no API keys on the dev box) or the full test suite.

🤖 Generated with Claude Code

LiteLLM 1.107.0 was published to PyPI with a credential-stealing payload
(https://research.jfrog.com/post/litellm-hijacked-again/). Our lockfile
and the uv exclude-newer cutoff already keep it out, but the lint group's
open-ended spec and the unpinned examples could pick it up from a mirror
or cache that still serves it.

- Exclude 1.107.0 from the lint group's litellm spec.
- Pin the litellm and dspy examples to litellm==1.106.0 (matrix latest).
- Re-lock with uv 0.13.4; the resolved package set is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-21T15:33:16.051305Z 461cc3c PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 461cc3ce09

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

"braintrust",
"dspy",
"litellm",
"litellm==1.106.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep the examples off broken LiteLLM on Python 3.10

In a Python 3.10 environment, which this example still declares supported, this exact pin selects a version the repository already identifies as broken due to unresolved Pydantic forward references: test_dspy preinstalls the same matrix pin and py/nox_session_constraints.py excludes that combination below Python 3.11. The identical pin in examples/litellm/pyproject.toml has the same problem, so either use a safe Python-3.10-compatible constraint or raise the examples' requires-python floor.

AGENTS.md reference: AGENTS.md:L17-L21

Useful? React with 👍 / 👎.

@AbhiPrasad
Abhijeet Prasad (AbhiPrasad) merged commit 2fff0fa into main Oct 21, 2026
98 checks passed
@AbhiPrasad
Abhijeet Prasad (AbhiPrasad) deleted the fix/litellm-exclude-1.107.0 branch October 21, 2026 17:38
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.

1 participant