Repository navigation
chore(release): integrate v1.0.3 security and stability patches - #259
Merged
abruption merged 91 commits intoOct 5, 2026
Merged
Conversation
Unknown paths and connects without a valid one-use session no longer spend the global handshake window. /v1/session attempts are also limited per source (--client-handshake-rate, default 5) so a single source cannot exhaust the global window. Sources are direct peer addresses, or, behind a loopback reverse proxy, dedicated headers authorized by --trusted-proxy-secret-file; X-Forwarded-For is never trusted. IPv6 sources are grouped by /64 and the per-source table is bounded.
Store a source window only for charged or source-rejected attempts, so global rejections leave no empty entries and pruning cannot fail. Treat duplicated proxy identity headers as unidentified. Report the source limit under a separate sourceCapacity field so schema version 1 capacity consumers keep accepting relay metrics, and document the remaining shared-source and distributed-source limits.
Accept only client_id in device-code requests, prune codes that expired more than 15 minutes ago before issuing another, and refuse new codes with 503 device_code_capacity once 500 unexpired codes are pending. Late polls within the retention window still receive expired_token.
Count stored codes and reserve an in-flight slot without an intervening await, immediately before the BetterAuth handler, and release it in finally. Concurrent requests can no longer all pass the cap before the insert. Prune expired codes at most once a minute so refused requests do less database work before the rate limit.
Trust valid matching schema envelopes before login-shell stderr, and report SSH send timeouts as unknown without allowing automatic retry. Fixes #228
abruption
deleted the
abruption/release-103-security-integration-20261005
branch
October 5, 2026 00:17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Integrate the reviewed v1.0.3 security/stability candidates and release preparation through one protected, exact-tree release gate. Preserve the original head commits of #249–#258 using a merge commit, not squash/rebase, so those PRs are recorded as indirectly merged when their commits reach main.
Closes #228
Closes #229
Closes #230
Closes #231
Closes #233
Closes #234
Closes #235
Closes #236
Closes #237
Closes #239
Type
Changes
The five security fixes correspond to GHSA-9x52-82cv-4c22, GHSA-4rvw-q2vm-v4x3, GHSA-6xwm-5p7g-8v8q, GHSA-2hjv-35jg-gghm and GHSA-646x-xjw9-mf6x. CVE identifiers remain unassigned; existing requests are retained, without making assignment a release prerequisite. Advisory publication follows verified package publication, not this PR alone.
Checklist
The legacy template's
cc_peer.pyand real-host messaging checks are not applicable to this non-delivery release gate. No live agent messages were submitted for release validation.Verified against
Local macOS arm64: Python 3.13.7, Node 24.16.0. Before version/docs integration: full extras suite 739 tests / 12 skips; Control 123 tests; actual Python↔Node Control integration 11 tests, all passed. Python 3.9 core/adapter/Codex and distribution/docs scopes passed. Python/Node runtime audits reported no known vulnerabilities. Final candidate CI 37246632730 and exact-main CI 37246912330 passed. An initial Ubuntu/Python3.11 diagnostic-clock test failure was reproduced as fractional boundary rounding; exact 0/59.999/60 clock fixtures now preserve both suppression and renewal assertions without product changes.
Notes
Source fixes do not establish hosted deployment. Relay trusted-proxy headers/secret and edge admission remain operator configuration; Control source rollout is separate. Existing suspicious pairing bindings, sessions, provider credentials and devices are not automatically audited or revoked.
RC4 live-campaign evidence is historical, exact ACK20/21 unchanged; no new live campaign or #161 root-cause resolution is claimed. The fixture shutdown regression is proven separately and does not establish the cause/resolution of historical WebSocket accept warnings or native exit139. Side-session and instant-steering experimental PRs are excluded.
Use normal protected merge only after aggregate release gate success. Do not bypass branch protection or PyPI environment review.
Publication evidence
Protected merge
0d252550ab40c26d1ac4a19193df6ca2f84d830b, immutable stable v1.0.3. Preparation 37247147805 and publish/verify 37247453910 succeeded. Requiredpypiwaiting state was observed, followed by a recorded human approval byabruption. All seven protected-source attestations verified; published wheel and sdist match locked candidates and independent fresh installs passed. Actual public-release downloader/provenance verifier also passed, without changing installed runtimes. Five advisories published with patched version 1.0.3 and no assigned CVE. Private Draft PRs were closed after source inclusion, not directly merged through a protection bypass. No fleet or production service deployment.Wheel SHA256:
252371d35016385b4ded2ea3347b5836eead1dfc3b4cf3c903376ff9a7a3325c.Sdist SHA256:
57f17bfbc0e5281d261c1eb5594220eabf8abe360780d5a7c6e9868acff1d953.