{"kind": "product", "path": "vulns/debian-14/rust-russh", "name": "rust-russh", "product": "rust-russh", "ecosystem": "Debian:14", "items": [{"id": "CVE-2026-111061", "noindex": false, "published": "2026-10-19T16:30:24.445Z", "modified": "2026-10-19T18:29:47.486Z", "cvss": 4.3, "cvss_vector": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L", "severity": "medium", "epss": 0.00347, "kev": false, "exploits": ["public-poc"], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-111061", "title": "russh agent server converts constraint records into unbounded never-rolled-back tasks", "description": "russh is a Rust SSH client and server library that includes an SSH agent protocol implementation. Prior to 0.64.1, the agent server spawns a separate long-lived task for every SSH_AGENT_CONSTRAIN_LIFETIME record in a constrained add-key request. The loop accepts repeated lifetime records, clones the key blob into each task, and does not roll back tasks when later constraint parsing fails. An attacker that can speak the agent protocol locally or through agent forwarding can exhaust memory and tasks until the agent process is starved or terminated, denying SSH agent service. This issue is fixed in version 0.64.1.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-4wc5-f2rc-q74m", "https://github.com/Eugeny/russh/commit/4c305033d72f8e5dd21a3fd4c53a6c291a16ebd1", "https://github.com/Eugeny/russh/releases/tag/v0.64.1"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-102825", "noindex": false, "published": "2026-09-29T18:31:32.393Z", "modified": "2026-09-30T19:29:26.432Z", "cvss": 3.7, "cvss_vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "severity": "low", "epss": 0.00353, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-102825", "title": "Russh: Configured server auth-attempt cap is not enforced in the USERAUTH_REQUEST runtime path", "description": "Russh is a Rust SSH client and server library. Prior to 0.62.6, the USERAUTH_REQUEST path reached from server::run_stream in russh/src/server/encrypted.rs increments self.common.auth_attempts but never compares it with server::Config.max_auth_attempts. An unauthenticated remote client can continue submitting authentication requests on one connection beyond the configured cap, bypassing the deployment's attempt-limiting policy and increasing online guessing opportunity and backend authentication workload. This issue is fixed in version 0.62.6.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-g6xm-f9xp-qq35", "https://github.com/Eugeny/russh/commit/f8fd0b11a393364dc7f01a182482d86adafdd653", "https://github.com/Eugeny/russh/releases/tag/v0.62.6"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-102824", "noindex": false, "published": "2026-09-29T18:27:41.650Z", "modified": "2026-09-30T20:24:58.381Z", "cvss": 4.3, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "severity": "medium", "epss": 0.00141, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-102824", "title": "Russh: Missing X25519 zero-point validation in hybrid ML-KEM key exchange", "description": "Russh is a Rust SSH client and server library. Prior to 0.63.0, the hybrid ML-KEM 768 and X25519 implementation in russh/src/kex/hybrid_mlkem.rs accepts an all-zero 32-byte peer X25519 public key in both server_dh and compute_shared_secret, forcing the X25519 contribution to the combined shared secret to zero. A malicious SSH peer can therefore make the combined secret depend only on ML-KEM, defeating the hybrid exchange's intended fallback protection if ML-KEM is later weakened. This issue is fixed in version 0.63.0.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-w3jg-pjxf-73p4", "https://github.com/Eugeny/russh/commit/8da8967f196472576b1565d518a0ed60fce60f0c", "https://github.com/Eugeny/russh/releases/tag/v0.63.0"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-102823", "noindex": false, "published": "2026-09-29T18:25:58.084Z", "modified": "2026-10-02T12:20:10.605Z", "cvss": 7.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N", "severity": "high", "epss": 0.00317, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-102823", "title": "russh: Client-side channel-scoped Handler callbacks fire for channel IDs the client never opened", "description": "Russh is a Rust SSH client and server library. Prior to 0.63.1, client_read_authenticated in russh/src/client/encrypted.rs forwards CHANNEL_DATA, CHANNEL_EXTENDED_DATA, CHANNEL_EOF, CHANNEL_CLOSE, CHANNEL_OPEN_FAILURE, CHANNEL_SUCCESS, CHANNEL_FAILURE, and CHANNEL_REQUEST subtypes exit-status, exit-signal, and xon-xoff to public client::Handler callbacks without confirming that the ChannelId belongs to a channel the client opened and established. A malicious SSH server can send lifecycle events for predicted, unopened, unconfirmed, or released channel identifiers, causing application panics or corrupting command completion and exit-code track", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-47hw-gvq5-r2gm", "https://github.com/Eugeny/russh/commit/3430fd26ecafc0dc3705210f5f39a9119fa22774", "https://github.com/Eugeny/russh/releases/tag/v0.63.1"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-102822", "noindex": false, "published": "2026-09-29T18:23:28.061Z", "modified": "2026-09-29T19:53:30.291Z", "cvss": 3.7, "cvss_vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L", "severity": "low", "epss": 0.00327, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-102822", "title": "russh: negotiating a MAC-requiring block cipher (CTR/CBC) with mac=none causes a slice-index-out-of-range panic", "description": "Russh is a Rust SSH client and server library. Prior to 0.63.1, a connection configured to permit mac=none can negotiate it with a MAC-requiring CTR or CBC block cipher because the selection logic validates needs_mac() only when MAC selection fails. A remote peer can then send a packet with a decrypted length of zero, causing russh/src/cipher/mod.rs to shrink the previously read block before indexing buffer.buffer[16..], which panics and terminates the connection task. This issue is fixed in version 0.63.1.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-p8qx-h547-fjw9", "https://github.com/Eugeny/russh/commit/2885385abfee279092a41d80c6cb6ac367353159", "https://github.com/Eugeny/russh/releases/tag/v0.63.1"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-102821", "noindex": false, "published": "2026-09-29T18:21:21.858Z", "modified": "2026-09-30T19:35:02.962Z", "cvss": 6.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "severity": "medium", "epss": 0.00358, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-102821", "title": "Russh: Unbounded memory exhaustion via CHANNEL_OPEN flood during a client-stalled rekey", "description": "Russh is a Rust SSH client and server library. Prior to 0.63.2, an authenticated remote peer can send SSH_MSG_KEXINIT without the required SSH_MSG_KEX_ECDH_INIT and then flood SSH_MSG_CHANNEL_OPEN messages while SessionKexState::InProgress prevents priority_receiver in russh/src/server/session.rs from being drained. The server continues processing network input and enqueues a ChannelOpenReply for each request on an unbounded channel, allowing one connection to grow memory until the process is terminated. This issue is fixed in version 0.63.2.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-35g8-35p8-c8fw", "https://github.com/Eugeny/russh/commit/a282af361ac99bc76b80876d1aae128e89dbf66b", "https://github.com/Eugeny/russh/releases/tag/v0.63.2"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-102820", "noindex": false, "published": "2026-09-29T18:18:43.297Z", "modified": "2026-09-30T20:11:08.453Z", "cvss": 6.2, "cvss_vector": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "severity": "medium", "epss": 0.00191, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-102820", "title": "pageant: Out-of-bounds read / oversized allocation in `pageant` MemoryMap::read via a malicious Pageant agent (Windows)", "description": "pageant provides a [PageantStream] type that implements [AsyncRead] and [AsyncWrite] traits and can be used to talk to a running Pageant instance. Prior to pageant 0.2.3, the Windows pageant crate's pageant/src/wmmessage.rs MemoryMap::read function trusts a peer-controlled u32 response length supplied through the 8192-byte Pageant shared-memory mapping reached by AgentClient::connect_pageant. A local process that impersonates the Pageant window can make query_pageant_direct allocate up to approximately 4 GiB and copy beyond the mapped view, reliably crashing a russh client and conditionally exposing adjacent committed memory. This issue is fi", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-g4mp-vgx3-xrvm", "https://github.com/Eugeny/russh/commit/5d566989ebabfdebfe6b33243d31765a0812260b", "https://github.com/Eugeny/russh/releases/tag/v0.63.2"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-73489", "noindex": false, "published": "2026-08-13T22:04:44.470Z", "modified": "2026-08-17T19:50:33.126Z", "cvss": 4.3, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L", "severity": "medium", "epss": 0.00451, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-73489", "title": "Russh: Post-auth remote panic via pty-req with more than 130 terminal-mode records", "description": "Russh is a Rust SSH client & server library. Prior to 0.62.4, an authenticated SSH client can cause a denial of service by sending a pty-req channel request with more than 130 terminal-mode records. The parser in russh/src/server/encrypted.rs stores terminal modes in a fixed 130-entry [(Pty::TTY_OP_END, 0); 130] array but continues increasing the mode count, then constructs an out-of-bounds slice and panics before the application pty_request handler runs. The panic terminates the server session task without causing memory corruption. This issue is fixed in version 0.62.4.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-cqjc-rmpq-xprq", "https://github.com/Eugeny/russh/commit/8912512371820167a12a0a638bd666856ce458ad", "https://github.com/Eugeny/russh/releases/tag/v0.62.4"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-73430", "noindex": false, "published": "2026-08-12T20:55:38.202Z", "modified": "2026-08-13T17:53:22.532Z", "cvss": 5.3, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L", "severity": "medium", "epss": 0.00597, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-73430", "title": "Russh: Pre-auth remote panic via all-zero Curve25519 peer public value (encode_mpint OOB)", "description": "Russh is a Rust SSH client & server library. Prior to 0.62.4, an unauthenticated SSH client can cause a denial of service by sending SSH_MSG_KEX_ECDH_INIT with a 32-byte all-zero Q_C value. Curve25519Kex::server_dh in russh/src/kex/curve25519.rs accepts the all-zero peer public value and computes an all-zero shared secret, after which compute_exchange_hash calls encode_mpint in russh/src/kex/mod.rs and indexes beyond the end of the input while skipping leading zero bytes. The resulting panic occurs before authentication and terminates the server key-exchange task. This issue is fixed in version 0.62.4.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-5xvq-cp9x-6p6r", "https://github.com/Eugeny/russh/commit/a7fc1eb5717264e31c3c5f7dd849b73989a08f3d", "https://github.com/Eugeny/russh/releases/tag/v0.62.4"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-73429", "noindex": false, "published": "2026-08-12T20:53:19.558Z", "modified": "2026-08-14T22:15:45.159Z", "cvss": 5.3, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L", "severity": "medium", "epss": 0.00507, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-73429", "title": "Russh: client wrong-length X25519 `clone_from_slice` panic (pre-auth DoS)", "description": "Russh is a Rust SSH client & server library. Prior to 0.62.4, a malicious SSH server can crash a russh client session with a malformed KEX_ECDH_REPLY containing a server ephemeral value that is not 32 bytes long. The client-side Curve25519Kex::compute_shared_secret function in russh/src/kex/curve25519.rs passes the decoded exchange.server_ephemeral value to clone_from_slice without validating its length, causing a deterministic panic before the server host key is verified. The panic terminates the spawned client session task and surfaces as a JoinError, while the embedding process normally remains running. This issue is fixed in version 0.62.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-g9hv-x236-4qp3", "https://github.com/Eugeny/russh/commit/a7fc1eb5717264e31c3c5f7dd849b73989a08f3d", "https://github.com/Eugeny/russh/releases/tag/v0.62.4"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-68930", "noindex": false, "published": "2026-08-03T15:34:41.216Z", "modified": "2026-08-03T16:46:32.324Z", "cvss": 6.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N", "severity": "medium", "epss": 0.00376, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-68930", "title": "Russh: Channel-scoped server callbacks can be reached without an open channel", "description": "Russh is a Rust SSH client & server library. Prior to 0.62.5, russh dispatches channel-scoped Handler callbacks for recipient channel IDs that were never opened or confirmed in russh/src/server/encrypted.rs, server_read_authenticated, and the exec_request callback. Version 0.62.5 fixes the issue.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-m65r-rprj-r5rg", "https://github.com/Eugeny/russh/commit/7c5659f8cf6f6f2f9989d12dba0ebf49dc50a171", "https://github.com/Eugeny/russh/releases/tag/v0.62.5"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-48110", "noindex": false, "published": "2026-06-10T20:26:29.994Z", "modified": "2026-06-11T16:15:23.673Z", "cvss": 7.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "severity": "high", "epss": 0.00367, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-48110", "title": "Russh: SSH message fields were decoded through allocation-first parsers before field-specific bounds", "description": "Russh is a Rust SSH client & server library. From version 0.34.0 to before version 0.61.0, several russh client and server message handlers decoded attacker-controlled SSH strings, name-lists, and byte fields into owned allocations before applying field-specific bounds. A remote SSH peer could send oversized, high-fanout, or malformed length-prefixed fields and make the library allocate, attempt to allocate, or split data before rejecting input that should have been rejected earlier. This issue has been patched in version 0.61.0.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-4r3c-5hpg-58qr", "https://nvd.nist.gov/vuln/detail/CVE-2026-48110"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-48108", "noindex": false, "published": "2026-06-10T20:24:56.666Z", "modified": "2026-06-11T13:50:36.699Z", "cvss": 5.3, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L", "severity": "medium", "epss": 0.00277, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-48108", "title": "Russh: SSH identification parsing accepted non-canonical client banners and did not bound pre-banner input", "description": "Russh is a Rust SSH client & server library. From version 0.34.0-beta.1 to before version 0.61.0, russh did not enforce the SSH identification-string rules as deliberately as OpenSSH. In particular, the server-side identification reader used the same permissive path as the client, allowing pre-banner lines from clients, and the reader did not enforce a bounded number of pre-banner lines. For a library server built on russh, this could allow a remote peer to hold connection setup resources in the cleartext pre-authentication phase with malformed identification input that should have been rejected early. This issue has been patched in version 0", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-76r6-x97p-67vr", "https://nvd.nist.gov/vuln/detail/CVE-2026-48108"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-48107", "noindex": false, "published": "2026-06-10T20:23:45.325Z", "modified": "2026-06-11T13:05:20.827Z", "cvss": 6.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H", "severity": "medium", "epss": 0.00232, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-48107", "title": "Russh: Unchecked keyboard-interactive prompt count in client auth path", "description": "Russh is a Rust SSH client & server library. From version 0.37.0 to before version 0.61.0, in the russh client keyboard-interactive authentication path, a malicious SSH server could send a USERAUTH_INFO_REQUEST with an attacker-controlled prompt count, and the client would use that raw count directly in Vec::with_capacity(...) before validating that enough prompt data was actually present in the packet. This issue has been patched in version 0.61.0.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-g9g7-5cgw-6v28", "https://nvd.nist.gov/vuln/detail/CVE-2026-48107"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-46705", "noindex": false, "published": "2026-06-10T20:21:35.177Z", "modified": "2026-06-11T14:14:16.876Z", "cvss": 5.3, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", "severity": "medium", "epss": 0.00218, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-46705", "title": "russh server userauth state is not reset when authentication principal changes", "description": "Russh is a Rust SSH client & server library. From version 0.34.0-beta.1 to before version 0.61.0, the russh server authentication path keeps internal userauth state across SSH_MSG_USERAUTH_REQUEST messages without separating that state when the request principal changes. RFC 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, s", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-hpv4-5h6f-wqr3", "https://nvd.nist.gov/vuln/detail/CVE-2026-46705"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-46702", "noindex": false, "published": "2026-06-10T20:19:18.792Z", "modified": "2026-06-11T16:15:30.354Z", "cvss": 7.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "severity": "high", "epss": 0.00268, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-46702", "title": "Russh: Post-decompression SSH packet size was not bounded, allowing remote oversized compressed packets", "description": "Russh is a Rust SSH client & server library. From version 0.34.0 to before version 0.61.1, when SSH compression is enabled, russh accepted compressed packets whose on-wire size passed the normal transport packet-length checks but whose decompressed size was much larger. This allowed a remote peer to send oversized post-decompression packets that should have been rejected. In current releases, this is a remote denial-of-service / resource-exhaustion issue in the post-decompression receive path. In older releases before 0.58.0, the same remote decompression path used CryptoVec, which appears to make the historical impact worse. This issue has b", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-wwx6-x28x-8259", "https://nvd.nist.gov/vuln/detail/CVE-2026-46702"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-46673", "noindex": false, "published": "2026-06-10T20:16:28.001Z", "modified": "2026-06-11T14:33:14.237Z", "cvss": 7.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "severity": "high", "epss": 0.00263, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-46673", "title": "Russh: Unchecked CryptoVec allocation and growth handling is reachable from local agent inputs in current russh releases and from remote SSH traffic in historical pre-0.58.0 releases", "description": "Russh is a Rust SSH client & server library. Prior to version 0.60.3, CryptoVec used unchecked capacity growth, unchecked length arithmetic, and unsafe allocation/locking paths. In current russh releases, local SSH agent peers could still feed attacker-controlled frame lengths into buffer growth before validation. In older russh releases before 0.58.0, remote SSH traffic also reached CryptoVec through transport and compression buffers. This issue has been patched in version 0.60.3.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-g9f8-wqj9-fjw5", "https://nvd.nist.gov/vuln/detail/CVE-2026-46673"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}, {"id": "CVE-2026-42189", "noindex": false, "published": "2026-05-08T19:49:51.179Z", "modified": "2026-05-11T14:23:49.308Z", "cvss": 7.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "severity": "high", "epss": 0.00481, "kev": false, "exploits": [], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}], "path": "vulns/cve-2026-42189", "title": "Russh: Pre-auth DoS via unbounded allocation in keyboard-interactive auth", "description": "Russh is a Rust SSH client & server library. Prior to version 0.60.1, a pre-authentication denial-of-service vulnerability exists in the server's keyboard-interactive authentication handler. A malicious client can crash any russh-based server that implements keyboard-interactive auth (e.g., for 2FA/TOTP) with a single malformed packet, requiring no credentials. This issue has been patched in version 0.60.1.", "references": ["https://github.com/Eugeny/russh/security/advisories/GHSA-f5v4-2wr6-hqmg", "https://github.com/Eugeny/russh/commit/6c3c80a9b6d60763d6227d60fa8310e57172a4d1", "https://github.com/Eugeny/russh/releases/tag/v0.60.1"], "fixes": ["0.64.1-1"], "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}]}], "total": 18, "unknown_count": 0, "release_unconfirmed": false, "page": 1, "pages": 1, "filtered": false, "noindex": false, "filters": {}, "page_size": 20, "products": [{"name": "rust-russh", "path": "vulns/debian-14/rust-russh", "ecosystem": "Debian:14"}], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}, {"name": "web", "path": "vulns/stack/web", "slug": "web"}, {"name": "php", "path": "vulns/stack/php", "slug": "php"}, {"name": "python", "path": "vulns/stack/python", "slug": "python"}, {"name": "node", "path": "vulns/stack/node", "slug": "node"}, {"name": "database", "path": "vulns/stack/database", "slug": "database"}, {"name": "containers", "path": "vulns/stack/containers", "slug": "containers"}, {"name": "network", "path": "vulns/stack/network", "slug": "network"}, {"name": "applications", "path": "vulns/stack/applications", "slug": "applications"}], "versions": [], "stats": {"recent": 7, "kev": 0}, "lastmod": "2026-10-19T18:29:47.486Z", "early_advisories": [], "license": "You may freely use the PatchFirst selection and our additions (priorities, early warnings, texts, summaries and aggregates) for your own purposes, including internal business use. Resale, commercial distribution and bulk mirroring of this selection or these additions require a written agreement with the operator. Whenever you use or publish the selection or our additions, credit PatchFirst (https://patchfirst.dev/vulns/) with this link to the regional feed page. Original records from open sources remain subject to their respective licenses and terms. These conditions do not restrict your rights to the original data, which you can obtain directly from those sources.", "terms_url": "https://patchfirst.dev/vulns/#feed-terms", "attribution": {"name": "PatchFirst", "url": "https://patchfirst.dev/vulns/"}, "source_changes": "Records are selected, normalized and combined by PatchFirst; summaries and translations may be added. News is credited with a link to the original source in each entry.", "sources": [{"id": "cve", "name": "CVE List / CVE.org", "url": "https://www.cve.org/", "license": "CVE Terms of Use", "terms_url": "https://www.cve.org/Legal/TermsOfUse", "notice": "Copyright © 1999–2021, The MITRE Corporation. LICENSE Submissions : For all materials you submit to the Common Vulnerabilities and Exposures (CVE™), you hereby grant to The MITRE Corporation (MITRE) and all CVE Numbering Authorities (CNAs) a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute such materials and derivative works. Unless required by applicable law or agreed to in writing, you provide such materials on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. CVE Usage : MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE™). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. DISCLAIMERS ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN \"AS IS\" BASIS AND THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE MITRE CORPORATION, ITS BOARD OF TRUSTEES, OFFICERS, AGENTS, AND EMPLOYEES, DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION THEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."}, {"id": "osv", "name": "OSV", "url": "https://osv.dev/", "terms_url": "https://google.github.io/osv.dev/data/", "terms": "Upstream licenses vary; see the source catalog."}, {"id": "kev", "name": "CISA KEV", "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog", "license": "CC0-1.0", "terms_url": "https://github.com/cisagov/kev-data/blob/develop/LICENSE"}, {"id": "epss", "name": "FIRST EPSS", "url": "https://www.first.org/epss/", "terms_url": "https://www.first.org/epss/faq", "terms": "Free public scores; attribution requested (FIRST EPSS, scores generated by Empirical Security)."}, {"id": "github-advisory", "name": "GitHub Advisory Database", "url": "https://github.com/advisories", "license": "CC-BY-4.0", "terms_url": "https://github.com/github/advisory-database/blob/main/LICENSE.md"}, {"id": "exploitdb", "name": "Exploit-DB", "url": "https://www.exploit-db.com/", "license": "GPL-2.0", "terms_url": "https://gitlab.com/exploit-database/exploitdb/-/blob/main/LICENSE.md"}, {"id": "metasploit", "name": "Metasploit", "url": "https://github.com/rapid7/metasploit-framework", "license": "BSD-3-Clause", "terms_url": "https://github.com/rapid7/metasploit-framework/blob/master/LICENSE", "notice": "Copyright (c) 2006-2026, Rapid7, Inc.\nLicense: BSD-3-clause\n Redistribution and use in source and binary forms, with or without modification,\n are permitted provided that the following conditions are met:\n .\n * Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n .\n * Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n .\n * Neither the name of Rapid7, Inc. nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n .\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."}, {"id": "nuclei", "name": "Nuclei Templates", "url": "https://github.com/projectdiscovery/nuclei-templates", "license": "MIT", "terms_url": "https://github.com/projectdiscovery/nuclei-templates/blob/main/LICENSE.md", "notice": "MIT License\n\nCopyright (c) 2025 ProjectDiscovery, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."}, {"id": "linux-kernel", "name": "Linux kernel releases", "url": "https://www.kernel.org/", "license": "CC-BY-SA-4.0", "terms_url": "https://www.kernel.org/legal.html", "notice": "Copyright (C) 1997-2014 by The Linux Kernel Organization, Inc."}]}