Commit 6d2ada8
fix(deps): bump litellm cap to >=1.83.7 to admit CVE patches
Merge #5489
Closes #5488
## Summary
Bumps the `litellm` constraint from `<=1.82.6` to `>=1.83.7,<=1.83.14`
in both the base project dependencies and the `[test]` extras.
The current cap was added in
[`77f1c41`](77f1c41) to
exclude the March 2026 supply-chain compromise of litellm 1.82.7
and 1.82.8. Since then, **five CVEs have been disclosed against
litellm `<=1.82.6`** (2 critical, 3 high), with patches in 1.83.0
and 1.83.7. The new lower bound (1.83.7) is strictly above the
originally compromised versions, so the original concern is still
respected.
The upper bound is pinned to the current latest release on PyPI
(1.83.14) per reviewer request, mirroring the project's prior
exact-version cap pattern. New litellm releases will require an
explicit ADK PR to admit, the same way `<=1.82.6` did.
Full CVE list and rationale in the linked issue (#5488).
## Diff
Two identical edits, one in project deps (line 126) and one in
`[test]` extras (line 145):
```diff
- "litellm>=1.75.5,<=1.82.6", # ... supply chain attack ...
+ "litellm>=1.83.7,<=1.83.14", # For LiteLlm class. Lower bound: 5 CVE patches (2026-04). Upper bound pinned to current latest; bump deliberately. See #5488.
```
## Testing plan
1. Re-installed `google-adk` (editable) against the updated
constraint; pip resolved litellm to 1.83.13 (latest stable
compatible with the rest of the lockfile, inside the new
`[1.83.7, 1.83.14]` window).
2. Ran `tests/unittests/models/test_litellm.py` and
`tests/unittests/models/test_litellm_import.py`; **all 259
tests pass**. Output below.
3. Verified `pyproject.toml` is parseable as TOML.
### Upstream litellm test output
```
collected 259 items
tests/unittests/models/test_litellm.py ................................. [ 12%]
........................................................................ [ 40%]
........................................................................ [ 68%]
........................................................................ [ 96%]
....... [ 98%]
tests/unittests/models/test_litellm_import.py ... [100%]
============================= 259 passed in 6.57s ==============================
```
## Heads up: litellm hard-pins python-dotenv
While verifying, we discovered that **litellm 1.83.7 (and every
subsequent version through 1.83.14) hard-pins
`python-dotenv==1.0.1`** as an unconditional core dependency. By
contrast, litellm 1.82.6 declared `python-dotenv>=0.2.0` (loose).
This does **not** affect adk-python itself -- ADK declares
`python-dotenv>=1,<2`, which admits `1.0.1` cleanly. But any
downstream project that has tightened `python-dotenv` (e.g.
`>=1.2.x`) will hit a resolver conflict after this bump and may
need to either relax its python-dotenv constraint or apply a
package-manager override. This is a litellm anti-pattern, not an
ADK problem; included here so reviewers know to expect downstream
issues of that shape.
## Out of scope
`langgraph` has a similar dep cap (`<0.4.8`) and one
medium-severity CVE
([GHSA-g48c-2wqr-h844](GHSA-g48c-2wqr-h844)),
but bumping past 0.4.x requires porting ADK's use of the removed
`graph.graph` API (per
[#1687](#1687)). That is
real engineering work, not a dep cap bump, and is left as a
separate effort.
COPYBARA_INTEGRATE_REVIEW=#5489 from cwest:topic/bump-litellm-cap 559f0c2
PiperOrigin-RevId: 9069798861 parent ad937fe commit 6d2ada8
1 file changed
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
127 | | - | |
| 127 | + | |
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
| |||
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
146 | | - | |
| 146 | + | |
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
| |||
0 commit comments