{"items":[{"id":"NVI-00018654","kind":"vulnerability","title":"russh server userauth state is not reset when authentication principal changes","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-hpv4-5h6f-wqr3","CVE-2026-46705"],"plain_summary":"GitHub lists this reviewed advisory for russh. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-4bd90a3afb78f30bf1f9fa44d9e99645"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-06-11T14:06:32.000Z","value":"5.3 medium","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-4bd90a3afb78f30bf1f9fa44d9e99645"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-4bd90a3afb78f30bf1f9fa44d9e99645","url":"https://github.com/advisories/GHSA-hpv4-5h6f-wqr3","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-hpv4-5h6f-wqr3","publisher":"GitHub Advisory Database","observed_at":"2026-11-06T15:13:13.153Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-4bd90a3afb78f30bf1f9fa44d9e99645"],"technology":"russh","known_exclusions":[],"conditions_summary":"### Summary\nThe `russh` server authentication path keeps internal userauth state across `SSH_MSG_USERAUTH_REQUEST` messages without separating that state when the request principal changes.\n\nRFC 4252 allows the `user name` and `service name` fields to change between authentication requests. The issue is not that such changes are invalid. The issue is that russh-owned authentication state, such as remaining methods, partial-success state, and in-progress method state, can remain associated with the connection and then influence a later request for a different `(user, service)`.\n\nThis is an internal library state mismatch. Applications are responsible for any authentication state they keep in their own handlers, but russh must reset or separate state that russh itself owns.\n\n### Details\nThe relevant server-side auth logic is in:\n\n- `russh/src/server/encrypted.rs`\n- `russh/src/auth.rs`\n\nRFC 4252 section 5 says the `user name` and `service name` fields are repeated in every `SSH_MSG_USERAUTH_REQUEST` and may change. It also says the server implementation must check those fields in every message and flush accumulated authentication state if they change; if it cannot flush that state, it","public_affected_ranges":[">= 0.34.0-beta.1, < 0.61.0"]}],"null_published_at":"2026-11-07T07:07:39.868Z","source_updated_at":"2026-06-11T14:06:32.000Z","source_disclosed_at":"2026-05-29T19:39:41.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-06T15:13:13.153Z"}],"next_cursor":null,"snapshot_revision":"42594"}