CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-55785

CVE-2026-55785: Non-Constant-Time Cryptographic Comparison and Sensitive Information Leakage in free5GC AUSF

Amit Schendel
Amit Schendel
Senior Security Researcher

Aug 29, 2026·5 min read·21 visits

Executive Summary (TL;DR)

The free5GC AUSF component prior to version 1.4.5 leaks expected authentication secrets in plaintext console logs and verifies user authentication responses using non-constant-time operations, allowing potential credential recovery.

free5GC is an open-source implementation of the 5G core network. Prior to version 1.4.5, the Authentication Server Function (AUSF) component of free5GC performs cryptographic comparisons within its Service-Based Interface (SBI) handling logic using non-constant-time helpers. These comparison utilities return immediately upon encountering a mismatching character, creating a covert timing channel. Concurrently, the AUSF writes the expected validation vector to standard output logs at the INFO level, exposing sensitive cryptographic material to unauthorized processes or logging agents.

Vulnerability Overview

The free5GC Authentication Server Function (AUSF) acts as the authority verifying that a connecting User Equipment (UE) has computed a valid response vector corresponding to the home network's expectations. These protocol sequences operate under either 5G-AKA or EAP-AKA' profiles, as defined by 3GPP standards. The vulnerability resides inside the processor package of the SBI handling layer, specifically in the file internal/sbi/processor/ue_authentication.go.

By leveraging standard, non-constant-time comparison primitives, the AUSF introduces side-channel vulnerabilities during the verification of the cryptographic parameters RES*, XRES*, AT_MAC, and XMAC. Furthermore, the code prints the plaintext expected validation strings into standard system output at the INFO logging level.

This flaw exposes the 5G core's subscriber credential management mechanisms. This combination of structural flaws introduces two separate risk vectors: a timing-discrepancy vector under specific noise-free topologies, and a high-exposure diagnostic logging vector across all cloud environments.

Root Cause Analysis

The application's structural weakness stems from two independent coding errors in the validation of network challenge responses. Under 3GPP specifications, the AUSF generates expected authorization response challenges (XRES* or XRES) and expects the client to present a corresponding RES* or RES parameter calculated from its subscriber identity module.

First, during 5G-AKA validation, the AUSF invokes Go's native strings.EqualFold string equality wrapper to compare user responses against the internal expected vector. The execution flow of strings.EqualFold processes strings byte-by-byte and returns immediately upon discovering a mismatch. Because of this short-circuit logic, the total execution elapsed duration varies predictably depending on how many leading bytes of the client's guess match the correct token.

Second, the validation path for EAP-AKA' relies on standard bytes.Equal logic and the normal comparison operator == to validate cryptographic hash blocks. This implementation behaves exactly like the string comparison functions, introducing a covert timing channel. Compounding this risk, the developer included verbose logging statements that export the master confirmation vector (XresStar) to standard logs. This output is evaluated prior to validation, exposing credential strings to container orchestrators, sidecars, or syslog listeners.

Code Analysis and Differential Patch Walkthrough

The patch implemented in free5GC commit 7a5a4aa1ec6cd0e1febebf333911c3104968edf0 introduces constant-time evaluation and removes diagnostic leaks. In the vulnerable code, the Auth5gAkaComfirmRequestProcedure processes verification as follows:

// VULNERABLE CODE (Pre-v1.4.5)
logger.Auth5gAkaLog.Infof("res*: %x\nXres*: %x\n", updateConfirmationData.ResStar, ausfCurrentContext.XresStar)
if strings.EqualFold(updateConfirmationData.ResStar, ausfCurrentContext.XresStar) {
    // Authentication success
}

The fix addresses this by replacing the non-constant comparisons with secure comparison algorithms and deleting the logger instructions:

// PATCHED CODE (v1.4.5)
if constantTimeHexEqual(updateConfirmationData.ResStar, ausfCurrentContext.XresStar) {
    // Authentication success
}

The patch defines two custom validation wrappers to enforce uniform execution paths across different variable types:

func constantTimeHexEqual(a, b string) bool {
	aBytes, err := hex.DecodeString(a)
	if err != nil {
		return false
	}
	bBytes, err := hex.DecodeString(b)
	if err != nil {
		return false
	}
	return constantTimeEqual(aBytes, bBytes)
}
 
func constantTimeEqual(a, b []byte) bool {
	return len(a) == len(b) && subtle.ConstantTimeCompare(a, b) == 1
}

By calling subtle.ConstantTimeCompare, the process executes a bitwise comparison across the entire length of both byte arrays, eliminating any variation in timing. While the conditional length check (len(a) == len(b)) technically short-circuits, 5G authentication parameters are fixed in size, rendering the resulting timing variance useless to adversaries.

Exploitation and Attack Path Scenario

The vulnerability presents two practical attack paths based on configuration and target environment constraints. These are split between a static local timing evaluation and a direct credential harvest via diagnostic systems.

Attack Path 1: Log-Harvesting Exploitation

An attacker targeting the cloud-native infrastructure exploits the logging weakness directly. If the attacker has compromised a co-resident pod, a telemetry collection system, or a local log aggregator, they query the stream for XresStar. Armed with the correct vector, they submit authentication confirmation requests using the stolen value, authenticating successfully as the targeted subscriber without performing any mathematical or cryptographic calculations.

Attack Path 2: Local Timing Analysis

An attacker attempts a side-channel attack targeting co-resident container systems where virtualization limits network jitter. The adversary initiates repetitive authentication procedures while tracking system processing latency at nanosecond-scale precision. By performing a character-by-character brute force, the adversary identifies longer processing windows indicating a correct prefix match. This allows complete recovery of validation keys over several million requests.

Impact Assessment

The impact of CVE-2026-55785 is concentrated on the confidentiality of 5G subscriber sessions. While rated as CVSS 3.7 (Low) due to the high complexity required to exploit timing vectors over live internet routing infrastructure, the practical severity increases to High in shared-tenant cloud platforms.

If the plaintext logger statements are active, any operator or adjacent software system capable of reading log containers or standard output streams can obtain active authentication challenges. This completely compromises authentication token confidentiality, allowing rogue hardware or emulation scripts to spoof subscriber identities. This compromises the non-repudiation guarantees of the 5G Service-Based Architecture.

Official Patches

free5gcFix commit for AUSF timing side-channel and logging vulnerabilities

Fix Analysis (1)

Technical Appendix

CVSS Score
3.7/ 10
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N

Affected Systems

free5gc AUSF

Affected Versions Detail

Product
Affected Versions
Fixed Version
ausf
free5gc
< 1.4.51.4.5
AttributeDetail
CWE IdentifierCWE-208: Observable Timing Discrepancy
Secondary CWECWE-532: Insertion of Sensitive Information into Log File
Attack VectorNetwork
CVSS v3.1 Score3.7
Exploit Statusnone
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1552.001Credentials In Files
Credential Access
CWE-208
Observable Timing Discrepancy

The use of non-constant-time string and byte comparison logic allows adversaries to extract keys or internal data via timing analysis, while verbose logger scripts write keys into diagnostic system outputs.

Vulnerability Timeline

Security patch authored and committed to branch.
2026-06-19
GitHub Advisory GHSA-fp46-6vfw-gc9c published.
2026-08-28
CVE-2026-55785 published.
2026-08-28

References & Sources

  • [1]GitHub Security Advisory GHSA-fp46-6vfw-gc9c
  • [2]free5gc/ausf Patch Commit
  • [3]free5gc/ausf Pull Request 63
  • [4]free5gc/ausf Tag Release v1.4.5

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•2 minutes ago•CVE-2026-109619
9.2

CVE-2026-109619: Remote Code Execution in PHP Core via Stale Global State Memory Corruption (PHP2Shell)

CVE-2026-109619 (PHP2Shell) is a critical Use-After-Free vulnerability in the core PHP engine caused by improper global state cleanup during out-of-memory exception handling across persistent worker requests.

Alon Barad
Alon Barad
1 views•6 min read
•5 minutes ago•CVE-2026-113721
4.5

CVE-2026-113721: Unsafe Link Resolution in virtualenv File Generation

In Python virtualenv prior to version 21.14.9, activation script generators and configuration writers use Path.exists() before writing files. Because Path.exists() resolves symbolic links, it returns False for dangling symlinks. Consequently, virtualenv skips unlinking pre-planted symbolic links or hard links, writing data directly to target locations outside the intended virtual environment directory.

Amit Schendel
Amit Schendel
1 views•5 min read
•9 days ago•CVE-2026-87697
8.8

CVE-2026-87697: Untrusted Deserialization in .NET PresentationCore Clipboard Handling

A remote code execution vulnerability exists in Microsoft .NET due to untrusted data deserialization within the PresentationCore component. The flaw stems from implicit auto-conversion flags during clipboard data retrieval operations.

Alon Barad
Alon Barad
31 views•5 min read
•9 days ago•CVE-2026-70007
8.8

CVE-2026-70007: Out-of-Bounds Write Vulnerability in .NET Framework and WPF Subsystem

An out-of-bounds write vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio allows unauthenticated remote attackers to execute arbitrary code via crafted pixel-shader bytecode or auto-converted clipboard payloads.

Amit Schendel
Amit Schendel
19 views•6 min read
•10 days ago•CVE-2026-70186
7.5

CVE-2026-70186: ASP.NET Core Denial of Service Vulnerability via Framework Deadlock

ASP.NET Core contains a thread deadlock vulnerability (CWE-833) that allows an unauthenticated remote attacker to cause a denial of service over the network by exhausting server thread pool resources.

Amit Schendel
Amit Schendel
18 views•5 min read
•10 days ago•CVE-2026-70035
8.8

CVE-2026-70035: Insecure Deserialization Remote Code Execution in Microsoft .NET Framework and .NET Runtime

CVE-2026-70035 is a high-severity Remote Code Execution (RCE) vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio caused by improper handling during the deserialization of untrusted data (CWE-502). An unauthenticated attacker can execute arbitrary code within the context of the affected process by delivering a crafted serialized payload.

Amit Schendel
Amit Schendel
24 views•6 min read