CVE-2026-3497
Rocky Linux vulnerability analysis and mitigation

Overview

CVE-2026-3497 is a pre-authentication vulnerability in the OpenSSH GSSAPI Key Exchange (KEX) patch carried by various Linux distributions, including Ubuntu, Debian, Red Hat Enterprise Linux, Fedora, and Oracle Solaris. It does not affect the upstream OpenSSH project itself, only distribution-specific GSSAPI patches. Discovered by Jeremy Brown and disclosed on March 12, 2026, the flaw allows an unauthenticated remote attacker to trigger uninitialized variable access in the SSH server child process by sending a single crafted GSSAPI packet during key exchange. It carries a CVSS v3.1 base score of 7.5 (High) and a CVSS v4.0 base score of 6.9 (Medium), with actual severity varying significantly based on compiler hardening flags (Ubuntu Security, oss-security, Red Hat Bugzilla).

Technical details

The root cause is a coding defect in kexgsss.c (the GSSAPI KEX server code) where sshpkt_disconnect() — a non-terminating function that merely queues a disconnect message and returns — is used in the default: error-handling case instead of ssh_packet_disconnect(), which properly terminates the process (CWE-908: Use of Uninitialized Resource; CWE-824: Access of Uninitialized Pointer). When an attacker sends an unexpected GSSAPI message type during key exchange, the error handler returns without setting the recv_tok stack variable, which is never initialized to NULL. Execution then falls through to code that reads recv_tok, sends up to 127 KB of its contents to the privileged monitor process via IPC, and passes it to gss_release_buffer(), which may call free() on a garbage pointer. The behavior varies by compiler: Clang -O0 leaves a near-null address, while GCC -O2 without stack protector leaves a valid heap address of length 127,344 bytes, enabling confirmed heap corruption (SIGABRT) and a privsep boundary violation. The trigger is a single crafted SSH packet of approximately 300 bytes, requiring no authentication (oss-security, Red Hat Bugzilla).

Impact

Successful exploitation causes a 100% reliable crash of the SSH server child process (SIGSEGV or SIGABRT), resulting in denial of service with a 90-second SSH lockout per attempt. Beyond availability, the flaw enables a privsep boundary violation: up to 127 KB of heap data from the unprivileged child process can be transmitted to the privileged root monitor process via IPC, creating a potential information disclosure path that could expose sensitive in-memory data. In worst-case compiler configurations (GCC without stack protector), heap corruption via free() on an uninitialized pointer may lead to undefined behavior with unpredictable consequences. The vulnerability is exploitable pre-authentication over the network with no user interaction required, affecting any server with GSSAPIKeyExchange yes configured (oss-security, Ubuntu Security).

Exploitability

No public proof-of-concept exploit code is known to exist, and there is no evidence of in-the-wild exploitation as of the time of disclosure (Feedly). The EPSS score is approximately 0.06%, reflecting low current exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. However, the attack is highly reliable (100% child process crash per the researcher), requires only a single ~300-byte unauthenticated packet, and is network-accessible — making it straightforward to weaponize against servers with GSSAPI key exchange enabled (oss-security).

Exploitation steps

  1. Reconnaissance: Identify OpenSSH servers on affected Linux distributions (Ubuntu 20.04–25.10, Debian 11, RHEL 8/9/10, Fedora, Oracle Solaris 11.4) using tools like Shodan, Censys, or nmap (nmap -p 22 -sV <target>). Confirm the server banner indicates a distribution-patched OpenSSH version.
  2. Verify GSSAPI KEX is enabled: Attempt an SSH connection with GSSAPI key exchange methods enabled (e.g., ssh -o GSSAPIKeyExchange=yes <target>). If the server negotiates GSSAPI KEX, it is potentially vulnerable.
  3. Craft malicious GSSAPI packet: Construct a single SSH packet (~300 bytes) containing an unexpected/invalid GSSAPI message type targeting the GSSAPI KEX server loop in kexgsss.c. This triggers the default: error-handling branch that calls sshpkt_disconnect() instead of terminating.
  4. Trigger uninitialized variable access: The server's error handler returns without initializing recv_tok, causing the code to fall through and read the uninitialized stack variable, then pass it to gss_release_buffer() / free().
  5. Observe impact: Depending on compiler flags, the SSH child process crashes (SIGABRT/SIGSEGV), causing a 90-second lockout. In GCC -O2 without stack protector builds, up to 127 KB of heap data is also sent to the root monitor process via IPC before the crash (oss-security).

Indicators of compromise

  • Network: Repeated SSH connection attempts from a single source IP that terminate abnormally during key exchange (before authentication); connections using GSSAPI KEX methods from unexpected or external sources.
  • Logs: SSH daemon log entries (/var/log/auth.log, /var/log/secure) showing child process crashes or abnormal terminations during GSSAPI key exchange, e.g., sshd[PID]: fatal: ... or signal-related messages (SIGABRT, SIGSEGV) from sshd child processes; repeated 90-second SSH lockout events.
  • Process: Unexpected termination of sshd child processes (not the parent daemon) with signals 6 (SIGABRT) or 11 (SIGSEGV); core dump files generated by sshd in configured core dump directories.
  • System: Kernel messages (dmesg) referencing segmentation faults or aborts from sshd processes; unusual IPC activity between unprivileged sshd child and the privileged monitor process around the time of connection attempts (oss-security).

Mitigation and workarounds

Immediate workaround: Disable GSSAPI key exchange by setting GSSAPIKeyExchange no in /etc/ssh/sshd_config and restarting sshd — this eliminates the attack surface entirely if Kerberos/GSSAPI authentication is not required. Vendor patches are available across all major affected distributions:

  • Ubuntu: 25.10 → 1:10.0p1-5ubuntu5.1; 24.04 LTS → 1:9.6p1-3ubuntu13.15; 22.04 LTS → 1:8.9p1-3ubuntu0.14; 20.04 LTS → 1:8.2p1-4ubuntu0.13+esm1 (Ubuntu Pro) (Ubuntu Security).
  • Red Hat Enterprise Linux 8, 9, 10: Addressed via RHSA-2026:6461, RHSA-2026:6462, RHSA-2026:6463 respectively, with additional EUS/SAP errata available (Red Hat Bugzilla).
  • Oracle Solaris 11.4: Patched in the April 2026 bulletin (Oracle).
  • IBM Cloud Pak for AIOps: Addressed per IBM advisory (IBM Advisory). The code fix replaces sshpkt_disconnect() with ssh_packet_disconnect() at the three server-side call sites in kexgsss.c. Enhanced compiler hardening (stack protectors, ASLR) reduces but does not eliminate risk.

Community reactions

The vulnerability was disclosed publicly by Marc Deslauriers (Ubuntu Security Engineer, Canonical) via the oss-security mailing list on March 12, 2026, crediting Jeremy Brown as the discoverer, and included the full researcher PDF and Ubuntu patch (oss-security). Security news outlets including CyberSecurityNews, GBHackers, SecurityOnline, and CyberPress covered the disclosure, highlighting the pre-auth nature and the "single packet" trigger. The Hacker News weekly recap included it among notable vulnerabilities. Community discussion on Hacker News and social media (Bluesky) noted the unusual nature of the bug — a distribution-specific patch introducing a vulnerability absent from upstream OpenSSH — and the significant variance in impact based on compiler flags. F5 Labs included it in their weekly threat bulletin for March 18, 2026.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

openssh: 1:9.2p1-2+deb12u9

Fixed

sid

openssh: 1:10.2p1-6

Fixed

trixie

openssh: 1:10.0p1-7+deb13u2

Fixed

Ubuntu

Fixed

bionic (esm-infra)

openssh

Not Affected

bionic (fips-updates)

openssh

Unknown

bionic (fips)

openssh

Unknown

devel

openssh

Not Affected

focal (esm-infra)

openssh: 1:8.2p1-4ubuntu0.13+esm1

Fixed

focal (fips-updates)

openssh: 1:8.2p1-4ubuntu0.fips.0.13.1

Fixed

focal (fips)

openssh

Affected

jammy

openssh: 1:8.9p1-3ubuntu0.14

Fixed

RHEL / CentOS

Fixed

OpenShift

el8:rhcos-x86_64-0:412.86.202605271418-0

Fixed

RHEL 8

:appstream:openssh-0:8.0p1-28.el8_10.src

Fixed

RHEL 9

:appstream:openssh-0:8.7p1-13.el9_0.2.src

Fixed

RHEL 10

openssh-0:9.9p1-7.el10_0.2.src

Fixed

Alpine

Fixed

edge

openssh: 0

Fixed

SourceThis report was generated using AI

Related Rocky Linux vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-18922CRITICAL9.8
  • Rocky Linux logoRocky Linux
  • 389-ds-base-snmp-debuginfo
NoYesSep 07, 2026
CVE-2026-44950CRITICAL9.5
  • Rocky Linux logoRocky Linux
  • libXfont-debuginfo
NoYesSep 10, 2026
CVE-2026-59679CRITICAL9.2
  • Rocky Linux logoRocky Linux
  • libXfont2-doc
NoYesSep 10, 2026
CVE-2026-18453HIGH7.5
  • Rocky Linux logoRocky Linux
  • 389-ds:1.4::389-ds-base
NoYesSep 07, 2026
CVE-2026-18355HIGH7.5
  • Rocky Linux logoRocky Linux
  • 389-ds-base-snmp
NoYesSep 07, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management