SentinelOne
CVE Vulnerability Database
Vulnerability Database/CVE-2024-45337

CVE-2024-45337: Go SSH Library Auth Bypass Vulnerability

CVE-2024-45337 is an authorization bypass flaw in Go's SSH library affecting PublicKeyCallback implementations. Attackers can exploit misused authentication logic to gain unauthorized access. This article covers technical details, affected applications, impact analysis, and mitigation strategies.

Updated:

CVE-2024-45337 Overview

Applications and libraries which misuse connection.serverAuthenticate (via callback field ServerConfig.PublicKeyCallback) may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key.

Critical Impact

This vulnerability allows attackers to bypass authentication checks, potentially gaining unauthorized access by manipulating callback processes in libraries susceptible to this misuse.

Affected Products

  • Not Available
  • Not Available
  • Not Available

Discovery Timeline

  • 2024-12-12 - CVE CVE-2024-45337 published to NVD
  • 2025-02-18 - Last updated in NVD database

Technical Details for CVE-2024-45337

Vulnerability Analysis

The root of the vulnerability lies in how PublicKeyCallback functions process keys during the authentication phase. Incorrect assumptions about key validity can lead to unauthorized access. Developers may misuse this API by improperly storing keys or derived information, leading to potential security flaws.

Root Cause

The issue emerges when applications make false assumptions about key order or control in ServerConfig.PublicKeyCallback. This can cause authorization decisions to be based on incorrect keys.

Attack Vector

This vulnerability is exploitable over a network, allowing attackers to interact with vulnerable authentication mechanisms via public-facing services.

go
// Example exploitation code (sanitized)
sshConfig := &ssh.ServerConfig{
    PublicKeyCallback: func(conn ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error) {
        // Incorrectly assigning permissions based on the key
        if isAuthorized(key) {
            return &ssh.Permissions{Extensions: map[string]string{"pubkey-fp": ssh.FingerprintSHA256(key)}}, nil
        }
        return nil, fmt.Errorf("unauthorized")
    },
}

Detection Methods for CVE-2024-45337

Indicators of Compromise

  • Unusual authentication success logs
  • Multiple PublicKeyCallback calls for a single session
  • Access logs reflecting unauthorized access patterns

Detection Strategies

Monitoring systems should track authentication flow and key validation processes. Anomalies in the number of callback executions or unexpected keys being accepted can indicate exploitation attempts.

Monitoring Recommendations

Implement comprehensive logging of all PublicKeyCallback transactions and correlating them with successful authentication events to identify deviations from normal activity.

How to Mitigate CVE-2024-45337

Immediate Actions Required

  • Review server configuration and authentication handling code for misuse
  • Update to go-crypto version that includes the fix (v0.31.0)
  • Implement logging to trace callback handling

Patch Information

Patch is available through golang.org/x/crypto at v0.31.0, which enforces a stricter handling of keys.

Workarounds

Applications should utilize the Permissions return value's Extensions field to ensure accurate tracking of authenticated keys.

bash
# Configuration example
GOPATH=/path/to/go
export GOPATH

# Securely update using go modules
cd /path/to/your/app
GO111MODULE=on go get golang.org/x/[email protected]

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the World’s Most Advanced Cybersecurity Platform

Experience the World’s Most Advanced Cybersecurity Platform

See how our intelligent, autonomous cybersecurity platform can protect your organization now and into the future.