Skip to main content

libssh CVE-2026-59845

| EUVDEUVD-2026-46178 MEDIUM
Detection of Error Condition Without Action (CWE-390)
2026-07-21 redhat GHSA-97fp-2vw9-q5jg
5.9
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Gain low-privileged local account access
  2. Delivery
    Leverage or configure ProxyCommand in SSH client config
  3. Exploit
    Exhaust process slots to induce fork() failure
  4. Install
    libssh stores return value -1 as child PID unchecked
  5. C2
    SSH cleanup issues kill(-1, sig)
  6. Execute
    Signal broadcasts to all user-accessible processes
  7. Impact
    Local denial of service across process tree

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Error detection with action
Exploitation Conditions

Three concurrent conditions are required: (1) ProxyCommand must be active in the SSH client configuration - either in the connecting user's ~/.ssh/config or in the system-wide /etc/ssh/ssh_config - this is a non-default configuration absent in most standard deployments; (2) a fork() failure must occur during ProxyCommand subprocess creation, which requires the system or per-user process count to be at or near its limit (natural exhaustion or attacker-induced via fork-bombing within their own process quota); (3) a low-privileged local account (PR:L) must actively initiate an SSH connection using the ProxyCommand path (UI:R). Exploitation is strictly bounded to local availability impact - no confidentiality or integrity compromise is possible, and the signal blast radius is limited entirely to processes that the triggering user's UID has permission to signal. Systems where ProxyCommand is never configured in any SSH client config are not affected regardless of libssh version.

Impact

The CVSS 3.1 base score of 5.3 Medium accurately reflects the constrained exploitation path: AV:L limits impact to users with local system access, AC:H reflects that ProxyCommand must be configured and a fork() failure must coincide with connection handling, PR:L requires a low-privileged account, and UI:R requires the user to actually initiate an SSH connection. The scope change (S:C) with A:H is the most notable risk factor - it means the availability impact propagates beyond libssh to all processes the attacker's user account can signal, including shells and background jobs. No EPSS score was provided in the input data; absence of a KEV listing and no identified public exploit code indicate no confirmed active exploitation at time of analysis. In practice, reliably triggering fork() failure demands either pre-existing resource exhaustion or deliberate fork-bombing by the attacker against their own process quota, making opportunistic mass exploitation unlikely. The realistic threat is a malicious or compromised local account in a multi-tenant environment using this flaw to disrupt co-tenant processes running under the same UID. No CVSS score conflict or inconsistency detected - the provided vector is well-grounded in the described mechanism.

Exploit ScenarioDerived

A low-privileged local user on a multi-tenant RHEL system that has ProxyCommand configured (e.g., for jump-host access) initiates an SSH connection while the system is under process table pressure - either naturally occurring or induced by the attacker exhausting their own RLIMIT_NPROC quota. libssh's fork() call fails and returns -1, which is stored unchecked as the child PID; when the SSH session tears down and cleanup signals the 'child', Linux broadcasts the signal to all processes the attacker's UID can reach, terminating the user's own shells, background jobs, or any co-owned services.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 21, 2026

Signal misdelivery in libssh's ProxyCommand handling allows a low-privileged local user to trigger a local denial of service affecting their entire accessible process tree. When fork() fails during ProxyCommand execution, the error return value of -1 is stored unchecked as a child process ID; at cleanup, libssh signals PID -1, which Linux interprets as a broadcast to all processes the caller has permission to signal. No public exploit code has been identified at time of analysis, and the vulnerability is not listed in CISA's KEV catalog, but the CVSS scope-changed metric (S:C) confirms that impact extends beyond the libssh component itself to co-located user processes.

RemediationAI

No specific patched libssh package version is confirmed in the available data; monitor the Red Hat advisory at https://access.redhat.com/security/cve/CVE-2026-59845 and the Bugzilla entry at https://bugzilla.redhat.com/show_bug.cgi?id=2498178 for errata providing fixed packages for RHEL 8, 9, 10, and Hardened Images - apply the errata update as soon as it is released. Until a patch is available, the most targeted compensating control is to remove or disable ProxyCommand directives from user-level SSH configurations (~/.ssh/config) and system-level configurations (/etc/ssh/ssh_config), since the vulnerability is entirely conditional on ProxyCommand being in use - eliminating this directive removes the vulnerable code path with no impact to standard SSH connections. The trade-off is loss of jump-host and connection-tunneling functionality. As a secondary hardening measure, enforcing per-user process limits via PAM (pam_limits, /etc/security/limits.conf) or cgroups to restrict RLIMIT_NPROC reduces the window during which fork() is likely to fail, decreasing the probability of accidental or induced triggering; however, this does not eliminate the flaw.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

libssh is an open-source C library implementing the SSH protocol, used by various applications for secure shell communications on Linux and other POSIX platforms. The ProxyCommand feature routes SSH connections through an intermediate shell command - commonly used for jump hosts or tunneling - and involves a fork() call to spawn a subprocess. POSIX specifies that fork() returns -1 on failure (e.g., when the system process table is exhausted or a per-user RLIMIT_NPROC limit is reached), but this error return is stored without validation as the child process ID. During session teardown or error cleanup, libssh issues a signal (e.g., SIGTERM/SIGKILL) to what it believes is the spawned child; Linux interprets kill(-1, sig) as a broadcast to every process the calling process has permission to signal - the entire reachable process tree of that user. The root cause is an unchecked error return value (closely related to CWE-252: Unchecked Return Value), though NVD has not assigned a formal CWE to this entry. Affected products are confirmed via CPE as libssh as packaged in Red Hat Enterprise Linux 8, 9, 10, and Hardened Images.

Know when Red Hat Enterprise Linux 10 gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (redhat) PRIMARY MEDIUM
NVD 5.9 MEDIUM
AV:L/AC:L/PR:L/UI:R/S:C/C:N/I:N/A:H
vuln.today AI 5.3 MEDIUM

ProxyCommand config and fork() failure both required (AC:H, AV:L); low-privileged local account and active SSH initiation needed (PR:L, UI:R); signal propagation beyond libssh to caller's process tree drives S:C with availability-only impact.

3.1 AV:L/AC:H/PR:L/UI:R/S:C/C:N/I:N/A:H
4.0 AV:L/AC:H/AT:P/PR:L/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
SUSE 6.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:H
Red Hat 5.3 MEDIUM

Primary rating from Vendor (redhat).

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
CVSS changed
Jul 30, 2026 - 13:22 NVD
5.3 (MEDIUM) 5.9 (MEDIUM)
CVE Published
Jul 21, 2026 - 11:26 cve.org
MEDIUM 5.3

DescriptionNVD

A flaw was found in libssh. When ProxyCommand is used, an unchecked fork() failure can be stored as process ID -1; during cleanup, signals may then be sent across the caller's accessible process tree, leading to local denial of service.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
High
RHEL dominates enterprise Linux deployments globally
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
High

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Affected Products (CPE)NVD

cpe:2.3:a:red_hat:red_hat_enterprise_linux_10:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_enterprise_linux_8:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_enterprise_linux_9:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_hardened_images:*:*:*:*:*:*:*:*
CVE-2026-18663 MEDIUM
5.9 Aug 12

Heap corruption via double-free in 389-ds-base's LDAP control parsing allows an unauthenticated remote attacker to crash

CVE-2026-4631 CRITICAL POC
9.8 Apr 07

Remote code execution in Cockpit's web interface allows unauthenticated attackers to execute arbitrary commands on the h

CVE-2026-4480 CRITICAL POC
9.0 May 26

Remote code execution in Samba's printing subsystem allows remote attackers to inject arbitrary shell commands via craft

CVE-2026-101258 HIGH POC
7.8 Oct 06

Ghostscript can execute arbitrary shell commands with the privileges of its process when it renders a crafted PostScript

CVE-2026-96889 HIGH POC
7.8 Sep 23

Use-after-free in librsvg during rendering of crafted SVG documents with nested XInclude directives and duplicate entity

CVE-2026-4775 HIGH POC
7.8 Mar 24

A signed integer overflow vulnerability exists in the libtiff library's putcontig8bitYCbCr44tile function that leads to

CVE-2026-114406 MEDIUM POC
6.8 Oct 21

The system CA trust store shipped in Red Hat's ca-certificates RPM packages includes eMudhra root authorities that signe

CVE-2026-18922 CRITICAL
9.8 Sep 07

Authentication bypass in 389 Directory Server (shipped as Red Hat Directory Server 11-13 and within RHEL 6-10) lets remo

CVE-2026-14544 CRITICAL
9.8 Jul 03

Remote code execution and privilege escalation in HPLIP (HP Linux Imaging and Printing) affects the hpcups print filter

CVE-2026-76578 CRITICAL
9.8 Sep 07

Unauthenticated privilege escalation in FreeIPA (Red Hat Identity Management) allows a remote attacker to gain genuine a

CVE-2026-102560 CRITICAL
9.8 Sep 29

A heap buffer overflow exists in libsoup's WebSocket permessage-deflate compression path: when a very large outbound mes

CVE-2026-5121 HIGH
7.5 Mar 30

Remote code execution in libarchive on 32-bit systems allows unauthenticated attackers to execute arbitrary code via spe

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Module for Basesystem 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Server for SAP Applications 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy