Skip to content

OpenHands runtime lock: litellm 1.93.0 to 1.93.2 (GHSA-3cv6-jpf6-8222), unblocking the required osv-scanner check - #562

Merged
seathatflowsinourveins merged 3 commits into
mainfrom
claude/osv-litellm-1-93-2-6d-20260930
Oct 1, 2026
Merged

seathatflowsinourveins merged 3 commits into
mainfrom
claude/osv-litellm-1-93-2-6d-20260930

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Scope

  • What this PR changes, in one or two sentences: relocks the OpenHands recipe lock (blueprints/runtime-workers/openhands/requirements.lock) from litellm 1.93.0 to 1.93.2 (only the litellm requirement line and its hashes change) because OSV published GHSA-3cv6-jpf6-8222 at 2026-09-30T21:11:25Z and the scan workflow has concluded failure in every run listed after it (pull-request heads and main's own push runs; the one job log read shows the required osv-scanner job failing on this finding), which keeps every PR from merging; rebinds the lock's IGNORE_ALLOWED_LOCKS entry to the new digest and receipt; adds the receipt, the returned outputs, the published scripts, the review records and a dated research.md section; and adds tests/test_openhands_lock_binding.py, because a review showed that the grant guard accepted a receipt of the previous digest and that no test compared pins.json's digests with the lock files. No ignore is added.
  • Base commit: 29458b43 (origin/main)
  • Lane: lane:foundation (the OpenHands recipe lock; the lock's previous owner is gone, the merge-train owner asked the Gate A owner session to take it and to relock rather than ignore)
  • Owned paths touched: blueprints/runtime-workers/openhands/{requirements.lock,pins.json,research.md}, blueprints/runtime-workers/openhands/evidence/relock-2026-09-30-litellm.* (new: returned outputs, 10 published scripts, 4 scanner outputs, 5 review records), evidence/receipts/osv-openhands-litellm-relock-20260930.json, tests/test_osv_lockfile_coverage.py (the OpenHands IGNORE_ALLOWED_LOCKS entry and its comment), tests/test_openhands_lock_binding.py (new), manifests/evidence.json (registrations, last commit only).

SOTA sources

  • OpenHands/software-agent-sdk fcc102a697874d54a357e36004e02c95040dbdc0 (pins.json source_archive, tarball sha256 2d3006de86eaec690a82e497fcd4459816637afe6e53f7da87783183792148a8): root pyproject.toml:8,19 (the exclude-newer-package cap for litellm and the litellm==1.93.0 pin), openhands-sdk/pyproject.toml:18 (litellm>=1.93.0), root uv.lock:2174-2175 (litellm 1.93.0). The lock is generated from this source. The pinned archive and upstream main (fad63774459171b08f889b12fd3b4d6346168c3e, read 2026-09-30T23:04:29Z) still pin litellm 1.93.0 in pyproject.toml and uv.lock; no fixed upstream lock was found in those two inputs (other branches and releases were not read). The two-line edit of the extracted workspace (cap moved from 2026-07-20 to 2026-08-10, pin ==1.93.2) is therefore ours, printed in full in the returned outputs (section B) and recorded as a limitation.
  • uv 0.12.17 (astral-sh/uv, adoption/pins-linux-x86_64.json): uv lock --upgrade-package ("Allow upgrades for a specific package, ignoring pinned versions in any existing output file") and --exclude-newer-package, quoted from the pinned binary's own uv lock --help (returned outputs, section C); uv export --frozen as in the recipe.
  • The repository's published method, reused: blueprints/runtime-workers/openhands/research.md "Runtime lock security relock (2026-09-27)" and the 2026-09-30 sections, and the scripts evidence/relock-2026-09-30-urllib3.* at 29458b43 (the control of this relock reproduces the current lock byte for byte). The new scripts are published copies of what ran, derived from those; the review lane is the repository's packaged one (tools/sota-convergence/landscape-sweep, evidence/artifacts/terminal-lane-cross-family-review-20260930).
  • google/osv-scanner v2.6.0 (release asset sha256 ca69b3d3cd08f889a49dc0a383122f71cc528b83803671df5fd874d97485b108, pinned in .github/workflows/security-scan.yml:50-58): the workflow's own scan step, run with the pinned binary. Advisory: GHSA-3cv6-jpf6-8222 / CVE-2026-84377 (OSV API record and its GitHub advisory reference, GHSA-3cv6-jpf6-8222; fixed in 1.93.2 among nine releases).
  • BerriAI/litellm tags v1.93.0 (052b5a2169d8d3082e1d66e69f200a72b0c1e274) and v1.93.2 (cd1bd0f4b8af865f8d05fbd938392fdd4703babc): git diff --stat (34 files), and the blob id of litellm/llms/openai/responses/transformation.py, the file research.md R7 and worker.py cite, is equal at both tags. PyPI JSON API for litellm 1.93.0, 1.93.1 and 1.93.2 (upload times, hashes, yanked flags).
  • No new runtime code module is written. The new test module and the scripts have no upstream counterpart (project-specific checks of this repository's own grants and lock digests): the criteria are stated in their docstrings, and the test module's controls are synthetic receipts plus four single-defect copies (returned outputs, section L).

Evidence-class table

Claim Evidence class Command / receipt
The new lock reproduces from the pinned archive byte for byte (cmp exit 0, sha256 e24df832...), and the control (the current lock's six upgrades, unedited workspace) reproduces the current lock byte for byte local_integration (uv 0.12.17, network) returned outputs section B
Only the litellm entry differs: 1 requirement line, 4 hash lines removed, 7 added; every hash is the sha256 of a file of that release on PyPI, and no other file of the release for CPython 3.12-3.14 on Linux x86_64 is missing from the list local_integration and source_review sections E and I
OSV-Scanner 2.6.0 (the CI pin), the workflow's two scans: origin/main exits 1 with exactly this one finding, this change exits 0 and 0 native_proven (local run of the pinned binary; the authoritative run is this PR's required check) section F, evidence/relock-2026-09-30-litellm.osv-*
The recipe's hashed install (its own import line verbatim), uv pip check and litellm 1.93.2 pass on the new lock native_proven (host install in a scratch venv, no model request) section D
None of the paths the recipe cites or calls changed between litellm v1.93.0 and v1.93.2 (34 files changed, none of them there) source_review (upstream git tags) section C
The advisory concerns the LiteLLM proxy; no installed package outside litellm references litellm.proxy (8,877 files parsed by syntax tree, 0 references) source_review (static search; context only, the decision does not rest on it) section H
The scan workflow concluded failure in each of the runs listed after the OSV record; one job log shows the osv-scanner job failing on this finding source_review (GitHub API reads) section J
#535 replaces this lock (its candidate pins litellm 1.93.2) and conflicts with this change in pins.json, requirements.lock, manifests/evidence.json and the coverage test; #551 and #555 conflict only in manifests/evidence.json local_integration (dry-run merges) section K
The new test module passes as it is and fails on a grant that names the previous lock's receipt, on a pins.json digest that is not the lock's, and on a grant that names another lock's receipt; the published scripts exit nonzero on a failing test pipeline, hash check and install synthetic (single-defect copies of the worktree) section L
Three independent reviews (Opus; GPT-6.1 Sol at max in two lenses via Omni) read the first head: 16 findings (Opus 5, Sol 7 and 4; 23 disposition rows with Opus's sub-items), all checked and repaired in this head; the repaired head was not re-read (one review and one repair round) source_review receipt independent_review and the review-* files
No OpenHands task ran with the relocked venv; the agent-server image and the grader venv keep upstream's own locks not run (recorded as limitations) receipt limitations

Local commands run

$ bash <evidence-dir>/relock-2026-09-30-litellm.builder.sh.txt ...   (sections A to M of the returned outputs, one run, 23:46Z-23:47Z)
  control: sha256 1d11bae3... = committed lock; new: sha256 e24df832... = this change's lock; install check status 0; scans 1/0 -> 0/0
$ TMPDIR=/var/tmp/gate-a-osv-tests python3 -B -m unittest tests.test_osv_lockfile_coverage tests.test_openhands_lock_binding tests.test_workflow_hardening tests.test_runtime_worker_openhands
Ran 236 tests in 10.166s  OK (skipped=2)
$ TMPDIR=/var/tmp/gate-a-osv-tests python3 -B scripts/validate.py
{"components": 69, "hashed_files": 8613, "profiles": 4, "receipts": 177, "status": "passed"}
$ gitleaks dir (the changed files, .gitleaks.toml)   no leaks found   (and the commit hooks' scans of both commits: no leaks found)
$ git diff --check origin/main..HEAD   (exit 0)

Decision record

evidence/receipts/osv-openhands-litellm-relock-20260930.json (release_choice: the alternatives - an ignore, a newer line, waiting for upstream - and the overturn conditions; independent_review: the reviews and each finding's disposition) and the dated research.md section "Runtime lock litellm relock (2026-09-30)". Two edits are deferred to the pull requests that change the same files, with an owner and a date in the receipt's limitations: the dated paragraph of docs/decisions/2026-09-22-github-automation-closure.md (#555) and the ignore reasons of .github/osv-scanner.toml (#535).

Host evidence

Not applicable: no file under evidence/hosts/ changes.

Checklist

  • New/changed GitHub Actions are pinned to a full commit SHA with a version comment (no floating tags): none changed.
  • New/changed workflows declare top-level permissions: contents: read: none changed.
  • No secrets are printed, logged or committed; no new required secret was added.
  • No new paid hosting, subscription or billing surface was introduced.
  • Peer-owned untracked files and worktrees were preserved (not deleted, moved or overwritten).

🤖 Generated with Claude Code

…, which fails the required osv-scanner check on every head

Relocks requirements.lock with the recipe's own method (research.md "Runtime lock security relock") plus one upgrade, litellm==1.93.2, and the two-line
edit of the extracted upstream workspace that upgrade needs (its litellm exclude-newer-package cap and its litellm==1.93.0 pin). The control reproduces the
committed lock byte for byte; only the litellm requirement line and its hashes change. The IGNORE_ALLOWED_LOCKS entry is rebound to the new digest and to
the new receipt; no ignore is added. Returned outputs, published scripts, scanner outputs and the receipt are in the evidence directory.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Sep 30, 2026
@socket-security

socket-security Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedpypi/​litellm@​1.93.0 ⏵ 1.93.274 +1100 +2100100100

View full report

Scout and others added 2 commits September 30, 2026 19:47
…ord and open-PR sections, exit statuses of the published scripts, a test of the grants' receipts and of pins.json, review records

Opus and two GPT-6.1 Sol reviews (packaged Codex lane through the local OmniRoute gateway) read the first head: 23 findings, all checked and repaired. Returned outputs gain the CI
record (J), the open pull requests that touch the same files (K) and negative controls (L); the published scripts exit nonzero on a failing step; the grant guard now requires the
receipt to record the lock's path and sha256 (tests/test_openhands_lock_binding.py, with pins.json's digests); receipt wording limited to what the outputs show; review records and their
dispositions are in the tree.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Independent bounded review found no concrete blocking defect at exact #562 head f2bf733. No hold or source correction is requested by this review.

The published lock SHA-256 is e24df8328149c921f751eb93d682b3f5b66eb4efd09bf4b053ffcfca057181e1. All 334 other unique packages / 335 physical blocks are byte-identical to main and to the separately prepared private candidate. Requirement/version/marker lines match; LiteLLM's seven platform-specific hashes are the sole hash-set difference and each is official PyPI 1.93.2 metadata. They include the reviewed CP313 wheel dee1b02b7f52a5a408bf7c8d499f0834e49194651743758a511dcdd926c0b692 and sdist c5d5223ef07f36e0886397fb45cc9db4150f86a0c6f6835cee1d5524cab69dfd.

All 26 changed source/artifact index bindings match. The guard, pins and new receipt agree on the new digest. Configurations, inventory, workflow, ignore IDs and expiries are unchanged. Actual light native reruns returned:

  • python3 -B -m unittest tests.test_osv_lockfile_coverage: exit 0, 38 tests, zero skips.
  • python3 -B -m unittest tests.test_openhands_lock_binding: exit 0, three tests, zero skips.

The original retained results support hashed installation/imports/pip checks (exit 0), and the 49-input native scans changing from 1/0 to 0/0. The reviewer inspected the original 236-test result with two skips; it did not rerun that full suite or installation.

The fresh LiteLLM/source observations record zero OAuthlib mentions and explicitly retain that other callers were not rescanned. The independently accepted private closure 30668ebc84c56d2c9b2bb03e4dcb4f89d222cb7c0c00ae1486166498a1d51456 can support the same reviewed Linux x86_64 / CPython 3.13.15 official wheel and unchanged graph. That is matching-input source-evidence reuse, not a new execution or complete installed-byte attestation by this PR. Dynamic reachability, compiled extensions and other platforms remain unqualified.

Claude 6d has confirmed ownership of #562. Root will not duplicate its MAIN repair or prefer the private candidate's broader hash set. Please return the actual squash merge SHA after the current head meets required gates; later #535/#560 integration must use that real commit and preserve their existing source scopes. This verdict remains bound to f2bf733, pending a final server-head freshness check.

seathatflowsinourveins added a commit that referenced this pull request Oct 6, 2026
)

### Scope

Fix the newly reviewed advisories that blocked every required OSV check: target only fsspec 2026.6.0/multidict 6.9.1 in the OpenHands runtime lock, Mako 1.4.2 in the application Python lock, and source-map-js 1.2.2 in its pnpm lock. Preserve all other package pins and the original captured artifact bytes.

The command center selected a dated source-backed exception for the frozen macOS input in its isolated config, and exclusion of both retired Lumibot lockchecks after the owner's confirmation. Each lock has native before/after evidence and its supported installation/qualification checks. No workflow or branch-protection setting changes.

- Base: `ecfa112764c664d35377dd66b8cfcb67e5a94d60` (fetch confirmed current main).
- Lane: `lane:foundation`.
- Owned scope: three production locks, SDK pins/research/evidence, qualification and ruling receipts, bounded OSV configuration/inventory, existing binding/no-use guards and closure record. Evidence registry committed last.

## SOTA sources

- [fsspec advisory GHSA-27vj-qcqg-25rc](GHSA-27vj-qcqg-25rc), [official 2026.6.0 release metadata](https://pypi.org/pypi/fsspec/2026.6.0/json), [maintainer tag](https://github.com/fsspec/filesystem_spec/tree/2026.6.0).
- [multidict advisory GHSA-54p9-h82j-f925](GHSA-54p9-h82j-f925), [official 6.9.1 release](https://github.com/aio-libs/multidict/releases/tag/v6.9.1), [PyPI metadata](https://pypi.org/pypi/multidict/6.9.1/json).
- [Mako advisory GHSA-5639-2j2p-m4mx](GHSA-5639-2j2p-m4mx), [maintainer release](https://github.com/sqlalchemy/mako/releases/tag/rel_1_4_2), [official metadata](https://pypi.org/pypi/Mako/1.4.2/json).
- [source-map-js advisory GHSA-68fv-2mgg-jv7q](GHSA-68fv-2mgg-jv7q), [published 1.2.2 metadata](https://registry.npmjs.org/source-map-js/1.2.2), [maintainer fix PR79](7rulnik/source-map-js#79).
- Dependent ranges: [Hugging Face Hub0.35.3](https://pypi.org/pypi/huggingface-hub/0.35.3/json), [aiohttp3.14.3](https://pypi.org/pypi/aiohttp/3.14.3/json), [yarl1.22.0](https://pypi.org/pypi/yarl/1.22.0/json), [Alembic1.20.0](https://pypi.org/pypi/alembic/1.20.0/json), [PostCSS8.5.23](https://registry.npmjs.org/postcss/8.5.23). Complete declared-parent checks include optional/null metadata handling; limitations remain explicit in receipts.
- [#562 at74cc5468](#562): original builder/relock/hash/install/scan/guard pattern. Installed [uv0.12.22](https://github.com/astral-sh/uv/releases/tag/0.12.22) reproduces the accepted baseline byte for byte; #562's0.12.17 remains historical.
- [#587 at798ac445](#587), [#252 atc96c2555](#252): bounded frontend qualification. [pnpm12.4.2 update parser](https://github.com/pnpm/pnpm/blob/9502f3c457717dae3a4ddbf4315a8c4aee16fdb4/pnpm/crates/cli/src/cli_args/update.rs) and [supported update docs](https://pnpm.io/cli/update): selective bare-name transitive update, no-save/lockfile-only; obsolete explicit-version/Infinity forms avoided.
- Frozen config precedent [8fc8611](8fc8611) and the maintained closure at `docs/decisions/2026-09-22-github-automation-closure.md`. Indexed source offsets/reconstruction inspected at [source-map-js1.2.1](https://github.com/7rulnik/source-map-js/blob/428d49f6b1e1614f082b7706fa879a3d9c64f728/lib/source-map-consumer.js#L944). Dedicated input/digest/expiry guards retained.
- Trial [#336 at20b52a5b](#336), existing captured XNYS exclusion precedent, and command-center ruling `task-ns2604-coop-20261006T003954Z`. The verified owner confirmation is a **report** row: `report-native-agent-stack-5f-20261006T0045Z-osv`, from `native-agent-stack-5f`, at `2026-10-06T00:41:23Z`, replying to `task-native-agent-stack-5f-20261006T004011Z`. Sanitized evidence: `evidence/receipts/osv-captured-lumibot-lockchecks-20261005.json`. No trial replay or new host-process census is claimed.

### Evidence-class table

| Claim | Class | Actual result |
| --- | --- | --- |
| Published dependent ranges permit the fixes | source_review | Complete pinned metadata review; no caps/errors; exact parents linked above |
| Targeted locks preserve other pins | local_integration | SDK byte-identical control; only two package blocks move. Mako only package block, native lock revision3→5 recorded. pnpm manager/importers unchanged; only source-map-js move |
| Release identity and supported artifact hashes match | local_integration | Native hash checks0: fsspec2, multidict14, Mako2; universal wheels/sdist included |
| Supported isolated/native qualification succeeds | local_integration | SDK178-package check/imports0; backend28-package check/import/render0; frontend frozen install/peers/typecheck/build0 |
| Both required scan partitions pass locally | local_integration | Before:60ordinary/1frozen,5+1 unignored findings. After:58ordinary/1frozen, actual native exits0/0, zero unignored findings |
| Binding/coverage/no-use guards remain effective | local_integration / synthetic |70 touched tests0; clean control0; all deliberate negative controls1 as expected |
| Registry integrity | local_integration | validate.py0;69components/4profiles/212receipts/10309hashes; integrity only |
| Hosted, image, provider and full API/browser acceptance | unknown | No claim; command-center exact-head cross-family read remains pending |

### Local commands run

All heavy phases used nice19; scratch/cache and installs were isolated. Exact supported commands and sanitized actual returned output/hashes are retained in the three relock prefixes and linked receipts.

```
#562-pattern paired native uv control/targeted lock/check/export:0
native release hash checks:0
hashed SDK install / uv pip check / exact imports:0
targeted Mako lock/check; frozen/no-build sync; pip check; imports/render:0
pnpm12.4.2 update source-map-js --no-save --lockfile-only --ignore-scripts:0
pnpm install --frozen-lockfile --ignore-scripts; peers check; typecheck; build:0
python -m unittest tests.test_openhands_lock_binding tests.test_osv_lockfile_coverage tests.test_frozen_macos_variant_no_use
70 tests; latest final data-pin run6.936s; exit0
OSV2.6.0 ordinary scan:0; frozen scan:0
python3 scripts/validate.py:0,10309hashes
component_matrix --write:0,32rows/zero flips
new_host_grand_list --write:0,32layers/66winners
git diff --check and git diff --cached --check:0
```

### Failed conditions

The initial root-added UV_NO_CONFIG1 discarded the resolver's Linux workspace settings; the next copied formatter inserted two plus signs. Native lock/check/export succeeded in both, while the relock byte-comparison script failed. Neither candidate was adopted; both are disclosed separately. Test preflight rejected inside-checkout TMPDIR before execution; existing external lane cache was used. Intermediate stale receipt/unreviewed metadata-line guards failed before being corrected. Publication caught one private interpreter path in a negative-control trace; it was sanitized. Terminal progress whitespace was normalized and its capture hash rebound. No failure is promoted to a passing upstream test.

### Decision record

`docs/decisions/2026-09-22-github-automation-closure.md`, "Four production relocks and preserved receipt inputs (2026-10-06)"; SDK research section and qualification/ruling receipts record alternatives, source/replay limits and overturn conditions. The macOS exception expires2026-12-24; its `.frozen` rename is a separate follow-up. Future use of captured trial dependencies requires a separately maintained/scanned qualification environment.

### Host evidence

No evidence/hosts or platform-status flip. The native runtime imports/builds are local integration; source reviews, synthetic controls and hosted acceptance remain separate. Exact-head command-center review is requested.

### Checklist

- [x] No workflow/action permission or branch-protection change.
- [x] No credential value or authentication store read/printed/copied; no new required secret.
- [x] No paid hosting, provider/model runtime call, deployment or restart.
- [x] Peer-owned worktrees preserved; three captured locks remain byte-identical.
- [x] Registry committed last; one lane:foundation label.
- [x] Ordinary AND frozen native scans and touched tests passed before ready.
- [ ] Command-center exact-head cross-family read and 5f landing; lane never merges.

## Dated input-binding repair (2026-10-06)

The command-center exact-head read of67c6594d2 found two omitted downstream gates: both convergence records still resolved their original UV digest through the newly relocked live file, and the recipe ledger's PNPM current digest was stale. This amendment preserves trial evidence instead of attributing new dependencies to the original runs.

- Retain ecfa112 UV/PNPM bytes and the two pre-amendment experiment snapshots byte-for-byte.
- Change only each canonical record's UV input path; keep frozen digests, commands, observations, outputs and usage. Both records remain declared.
- Append dated recipe supersession/current mappings and ordered path relocations; protect original/prior/superseded bytes and all non-path record bytes with the portability assertions.
- Source: [#252 path-only relocation](https://github.com/seathatflowsinourveins/native-agent-stack/blob/c96c2555c2d84683d9e519623354c814aeb6a584/blueprints/convergence-practice/application-delivery/history/recipe-revisions.json#L121) and [#587 supersession](https://github.com/seathatflowsinourveins/native-agent-stack/blob/798ac445307e2cd8eba6e74d7722ac0e16da02c7/blueprints/convergence-practice/application-delivery/history/recipe-revisions.json#L99).
- Dated decision/source receipt: `docs/decisions/2026-10-06-application-input-binding-amendment.md`, `evidence/receipts/pr765-bindings-amendment-20261006.json`.

Before repair, all-recorded convergence exited1 (2invalid/32) and native-maintenance exited1 (29cases/one PNPM mismatch). Repaired focused checks: native-maintenance29passed; convergence/OSVcoverage/frozenMAC102passed. After main-registry refresh and full own-file re-registration, local validate0/10315hashes and all-recorded convergence0/32valid. Full local suite ran under A22's specific copied-fixture `install.sh --list` exception and exited1:10,343tests/2217.568s,18failures/18errors/905skips. Installer apply paths remain banned. Raw output is retained privately; known systemd parser (#767), missing calendar/mutation imports, PATH fixtures, token-canary fixtures and installed Windows Terminal type drift are recorded separately, never presented as a pass.

Old reviewed head's hosted baseline was6/7 required contexts: validate failed, six others passed. Required acceptance is measured at the new pushed head; no workflow rerun loop or old local check is promoted into that acceptance. No production pin, recorded trial output, raw receipt, frozen macOS lock, captured trading lock or scanner exclusion changed in this repair.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant