chore(security): clear 12 advisories in langchain/uv.lock (h11, idna, orjson, requests, urllib3, pytest) - #10
Conversation
… langchain/uv.lock Lockfile-only scoped regeneration (uv lock --upgrade-package ...) clearing 12 advisories found by a local pip-audit run. No pyproject.toml constraint changes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CI triage: both red checks are pre-existing and unrelated to this changeCI is red, but neither failure is caused by anything in this PR. Both reproduce with the dependency versions this branch does not touch, and both hit PR #10 and PR #11 identically. Evidence below so a reviewer does not have to re-derive it. 1.
|
cdbartholomew
left a comment
There was a problem hiding this comment.
Reviewed the resolved lockfile diff rather than the raw patch. Seven version changes, one addition, nothing removed:
| package | before | after |
|---|---|---|
| h11 | 0.14.0 | 0.16.0 |
| httpcore | 1.0.7 | 1.0.9 |
| idna | 3.10 | 3.19 |
| orjson | 3.10.15 | 3.12.0 |
| pytest | 8.3.5 | 9.1.1 |
| requests | 2.32.3 | 2.34.2 |
| urllib3 | 2.3.0 | 2.7.0 |
plus pygments added as a transitive of pytest 9.
The critical is correctly addressed. GHSA-vqfr-h8mv-ghfj (h11 request smuggling via malformed Chunked-Encoding) is < 0.16.0, first patched in 0.16.0. This lands exactly on it.
Everything else moves within its major except pytest 8 → 9. That is declared in [dependency-groups], so it is dev/test-only and cannot affect the shipped package. Flagging it because a major bump in a lockfile is worth knowing about rather than discovering later.
On the red checks
All four failures are environmental and reproduce identically on #11, which is a different change:
- Unit tests —
vectorize_client.exceptions.ApiException: (402), "API access is available on paid plans only". The tests error at setup, before touching anything this PR changes. - Lint —
the configured Python interpreter version (3.14) is newer than…thenmaturin pep517 build-wheelfails. A toolchain problem.
Neither indicts this change. Both are worth fixing on their own, because in this state no PR in this repository can produce a trustworthy green — which is likely why this has been open since Sep 2.
Approving on that basis: the dependency movement is correct and minimal, the critical is genuinely closed, and the failures are demonstrably unrelated.
Security: 12 advisories cleared in
langchain/uv.lock(lockfile-only)Why this is a hand-authored branch, not a Dependabot PR
Dependabot alerts are not running on this repo.
GET /repos/vectorize-io/integrations-python/dependabot/alertsreturns HTTP 200 with an empty array for every state (open,fixed,dismissed,auto_dismissed) despite a committedlangchain/uv.lock— i.e. the repo has never been scanned. There are therefore no alert numbers to reference; the advisory set below came from a local audit:Baseline (
main, py3.13 resolution): 23 findings across 8 packages.Changes —
langchain/uv.lockonlypyproject.tomlis not modified. Every bump is a scoped lock regeneration:The lock resolves two legs because
requires-python = ">=3.9", so two versions appear for some packages:Two supporting bumps carry no advisory of their own:
h11<0.15, which pinned h11 at 0.14.0; h11 could not move without it.What this does NOT fix
langchain-core(6 advisories) andlangsmith(3) are deliberately excluded — clearing them requires langchain-core 1.x, a major bump of this package's primary dependency that pulls in 13 new transitive packages. It is proposed separately so it can be reviewed on its own merits.Residual on the Python 3.9 leg (
requires-python = ">=3.9"caps what is installable, because every fix below dropped 3.9):Note honestly: GHSA-mf9v-mfxr-j63j is newly introduced on the 3.9 leg — it was introduced in urllib3 2.6.0 and fixed in 2.7.0, and 2.6.3 is the newest urllib3 that still supports 3.9. Net for the 3.9 leg is still strongly positive (8 cleared, 1 introduced); on py3.10-3.13 all 12 are cleared with nothing introduced.
Verification (run locally on both ends of the CI matrix)
Commands derived from
.github/workflows/python_test.ymlandlint.yml, run underlangchain/on Python 3.9 and 3.13:uv sync --devuv run ruff format --checkuv run ruff checkuv run mypy .uv run pytest tests(collection)uv run pytest tests(execution)tests/test_retrievers.pyis a live integration suite: its session fixture raisesValueError: Please set the VECTORIZE_TOKEN environment variable. This fails identically on unmodifiedmain— it is environmental, not a regression from this change. Actual execution is what this PR's own CI run provides, which is the reason for opening a hand-authored branch at all (Dependabot's branches do not receive repository secrets).Post-change audit: py3.13 leg 23 -> 9 findings, py3.9 leg 23 -> 11; every remaining finding is langchain-core/langsmith or a 3.9-cap listed above.
Opened by the daily security sweep. Not to be merged automatically - please review.