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-2025-20290

Cisco NX-OS: The Call is Coming From Inside the Logs

Amit Schendel
Amit Schendel
Senior Security Researcher

Feb 11, 2026·7 min read·32 visits

Executive Summary (TL;DR)

Cisco NX-OS and UCS devices were caught logging sensitive credentials in cleartext. An attacker with local, low-privileged access (like a guest shell) can simply grep the logs to find admin passwords and take over the device.

A classic but deadly instance of CWE-532 (Insertion of Sensitive Information into Log File) within Cisco's NX-OS and UCS Fabric Interconnects. While categorized as 'Medium' severity due to the local access requirement, this vulnerability serves as a trivial privilege escalation path for any insider or compromised low-level account. By simply reading the system's own diary—its log files—an attacker can recover cleartext credentials and elevate to full administrative control.

The Hook: Verbose Mode is a Drug

Every developer has been there. You're debugging a complex authentication flow, nothing is working, and out of frustration, you flip the logging switch to 'ALL'. You need to see exactly what's hitting the wire. It works, you fix the bug, and you go home. But did you remember to turn the logging back down? Did you sanitize the input variables before writing them to disk?

CVE-2025-20290 is the architectural equivalent of leaving that debug switch taped to the 'ON' position. Cisco's NX-OS, the operating system powering the backbone of countless data centers via Nexus switches, decided that secrets were meant to be shared—specifically with the local filesystem. This isn't a complex heap overflow or a race condition in the kernel. It is a failure of discipline.

The vulnerability resides in the logging mechanism itself. When specific system operations occur—likely during provisioning, authentication handshakes, or configuration merges—the system writes sensitive data into log files. These aren't encrypted vaults; they are standard text files sitting in directories like /var/sysmgr/log/. For a hacker, this is the best kind of vulnerability: no ROP chains, no heap grooming, just cat and grep.

The Flaw: A Diary of Secrets

The root cause here is mapped to CWE-532: Insertion of Sensitive Information into Log File. It sounds mundane, but in the context of a network appliance, it is catastrophic. Network devices are fortresses; the outer walls are thick, but the interior assumes a level of trust. The flaw specifically affects how NX-OS handles data sanitation before writing to the syslog or internal component logs.

In a correct implementation, sensitive parameters like passwords, API tokens, or SNMP community strings should be masked (e.g., ******) or redacted entirely before being passed to the logging daemon. In the affected versions of NX-OS (spanning 7.x to 10.x) and UCS software, this sanitation step was missed in certain code paths.

What makes this dangerous is the persistence. Logs aren't ephemeral; they persist on disk until rotated. A credential logged three days ago is just as valid as one logged three seconds ago. If an attacker gains a foothold today, they can scroll back through time to find the keys to the kingdom.

The Code: Anatomy of a Log Leak

Because Cisco NX-OS is proprietary, we don't have the public git commit to point and laugh at. However, we can reconstruct the logic failure with high fidelity based on the behavior. This is a logic bug, not a memory safety bug, so the code looks deceptively normal.

The Vulnerable Logic (Conceptual):

// A hypothetical logging function in the auth manager
void handle_auth_request(char *username, char *password) {
    // MISTAKE: Logging raw inputs for "debugging"
    syslog(LOG_INFO, "Processing auth for user: %s with pass: %s", username, password);
    
    if (authenticate(username, password)) {
        grant_access();
    } else {
        log_failure(username);
    }
}

In the snippet above, the developer likely intended to remove the %s for the password before shipping, or assumed that the log level LOG_INFO wouldn't be captured in production.

The Patched Logic:

// The fixed implementation sanitizes data first
void handle_auth_request(char *username, char *password) {
    // FIX: Never log the raw secret. 
    syslog(LOG_INFO, "Processing auth for user: %s", username);
    
    if (authenticate(username, password)) {
        grant_access();
    } else {
        log_failure(username);
    }
}

The patch likely involves searching the codebase for every instance of logging functions and ensuring that variables holding CREDENTIAL, TOKEN, or PASSWORD types are passed through a mask_secret() function or omitted entirely. In the context of the Cisco fix, they likely also had to implement a log scrubber to clean up existing logs on update, ensuring that applying the patch creates a clean slate.

The Exploit: Grepping for Gold

Exploiting CVE-2025-20290 is delightfully low-tech. The barrier to entry isn't technical skill; it's access. You need to be authenticated, but you only need low privileges. Let's look at the attack path for a Cisco Nexus 9000.

Step 1: Gain Shell Access

First, we need to get to the underlying Linux shell. On NX-OS, this is often done via the guestshell feature or, if we have a basic operator account, dropping into bash.

switch> enable
switch# guestshell
[guestshell@guestshell ~]$ whoami
guest_user

Step 2: The Treasure Hunt

Once we are in the shell, we are effectively on a Linux box. We want to look where the system manager (sysmgr) keeps its notes. The advisory points to system logs. A simple grep command can reveal the jewels.

# Searching recursively for common credential patterns
grep -rE "password|secret|token|key" /var/sysmgr/log/ 
 
# Output might look like:
# /var/sysmgr/log/auth_debug.log: 2025-08-20 10:00:01: User 'admin' password set to 'SuperSecretCisco123!'

Step 3: The UCS Variation

On Cisco UCS Fabric Interconnects, you might not get a direct shell easily. However, the vulnerability disclosure notes that the logs are included in Tech Support Files.

  1. Log in with a low-priv user allowed to generate reports.
  2. Trigger a "Show Tech-Support" generation.
  3. Download the tarball to your local machine.
  4. Extract and search: tar -xvf tech-support.tar && grep -r "password" .

This is a "delayed read" exploit. You don't need to be on the box to parse the logs if the box kindly packages them up and lets you download them.

The Impact: From Guest to God

Why is a CVSS 5.5 dangerous? Because metrics lie. The AV:L (Local Attack Vector) pulls the score down significantly, implying you need physical access or a prior compromise to use this. While true, it ignores the reality of modern network administration.

In many environments, "Level 1" support engineers or automated monitoring scripts have low-level access to these switches to check interface statuses. If any of those accounts are compromised—or if a disgruntled employee decides to look around—this vulnerability turns that limited access into full root or admin control.

Once an attacker recovers the admin credentials from the log:

  1. They can pivot to other devices (admin passwords are notoriously reused across fleet devices).
  2. They can redirect traffic, mirroring sensitive flows to a collection point.
  3. They can install persistent backdoors that survive the inevitable firmware update.

It is a classic Privilege Escalation. You start in the lobby, read the sticky note with the safe code, and walk into the vault.

The Fix: Scrubbing the Evidence

Mitigation here is binary: you patch, or you remain vulnerable. There is no configuration workaround because you cannot easily instruct a closed-source binary to stop logging specific lines without breaking the binary itself.

Remediation Steps:

  1. Upgrade NX-OS: Move to the fixed releases specified in Cisco Advisory cisco-sa-nxos-infodis-TEcTYSFG. Typically, this means jumping to the latest maintenance release of the 9.x or 10.x train.
  2. Upgrade UCS Manager: Ensure Fabric Interconnects are running versions > 4.2(3) or 4.3(2) as appropriate.
  3. Log Rotation/Deletion: This is critical. Applying the patch stops future leaks, but it might not delete past logs. After patching, force a log rotation or manually clear the log directories (clear logging logfile or similar CLI commands) to ensure the historical evidence is destroyed.
  4. Credential Rotation: Assume your admin passwords have been read. If you find your device was running a vulnerable version, rotate all administrative credentials immediately after patching. Do not skip this step.

Official Patches

CiscoCisco Security Advisory: Cisco NX-OS Software Information Disclosure Vulnerability

Technical Appendix

CVSS Score
5.5/ 10
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
EPSS Probability
0.02%
Top 97% most exploited

Affected Systems

Cisco Nexus 3000 Series SwitchesCisco Nexus 9000 Series Switches (Standalone)Cisco UCS 6400 Series Fabric InterconnectsCisco UCS 6500 Series Fabric InterconnectsCisco UCS 9108 100G Fabric Interconnects

Affected Versions Detail

Product
Affected Versions
Fixed Version
Cisco NX-OS Software
Cisco
7.0(3)I4(x) - 10.5(3o)See Vendor Advisory
Cisco UCS Manager
Cisco
4.0(1a) - 4.3(6b)4.3(6c) or later
AttributeDetail
CWE IDCWE-532
Attack VectorLocal
CVSS v3.15.5 (Medium)
EPSS Score0.00016
Exploit StatusPoC Not Public (Logic Trivial)
ImpactConfidentiality High

MITRE ATT&CK Mapping

T1005Data from Local System
Collection
T1552.001Unsecured Credentials: Credentials in Files
Credential Access
T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-532
Information Exposure Through Log Files

Insertion of Sensitive Information into Log File

Known Exploits & Detection

N/ANo public exploit code available; exploit relies on standard system tools (grep/cat).

Vulnerability Timeline

Vulnerability Published by Cisco
2025-08-27
NVD Analysis Completed
2025-08-29

References & Sources

  • [1]Cisco Advisory cisco-sa-nxos-infodis-TEcTYSFG
  • [2]CWE-532: Insertion of Sensitive Information into Log File

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

•about 14 hours ago•CVE-2026-118777
4.8

CVE-2026-118777: Prototype Pollution in Forge HTTP Client Cookie Management

CVE-2026-118777 is a prototype pollution vulnerability (CWE-1321) in the Forge JavaScript cryptography and networking library (distributed on npm as node-forge) prior to version 1.4.1. The flaw resides in the forge.http client subsystem, where incoming HTTP cookie names and paths parsed from Set-Cookie response headers are stored directly into standard JavaScript objects without key validation or property isolation. By returning crafted Set-Cookie headers containing keys such as __proto__ or constructor, a malicious HTTP server can inject arbitrary properties into Object.prototype, attach attributes to the global Object constructor, or delete built-in prototype methods to cause an application-wide denial of service.

Amit Schendel
Amit Schendel
6 views•10 min read
•about 15 hours ago•CVE-2026-118775
3.7

CVE-2026-118775: ASN.1 OID First Arc Truncation and Ambiguity in node-forge

CVE-2026-118775 (GHSA-4642-5mcj-2rqw) is an integer overflow and validation flaw in the ASN.1 serialization module of Forge (node-forge) prior to version 1.4.1. The asn1.oidToDer() function fails to validate the range of the first two arcs of an Object Identifier (OID) and truncates the packed initial subidentifier to a single 8-bit integer. Applications that perform policy checks on untrusted OID strings before encoding them into Distinguished Encoding Rules (DER) format can be tricked into emitting DER bytes that correspond to a completely different, restricted OID.

Amit Schendel
Amit Schendel
7 views•10 min read
•about 16 hours ago•CVE-2026-119194
7.5

CVE-2026-119194: Algorithmic Complexity Denial of Service in pyasn1 Schemaless ASN.1 Decoder

CVE-2026-119194 is an algorithmic complexity vulnerability (CWE-407) in the pyasn1 library for Python, affecting versions 0.3.3 through 0.6.4. The flaw resides in the schemaless decoding routine ConstructedPayloadDecoderBase._decodeComponentsSchemaless used across BER, CER, and DER codecs. By sending an ASN.1 container populated with child components whose tag identifiers are separated by multiples of CPython's integer hash modulus (sys.hash_info.modulus), an unauthenticated attacker can force worst-case hash collisions in an unbounded Python set, degrading decoding performance from O(N) to O(N^2) and causing a Denial of Service (DoS).

Alon Barad
Alon Barad
7 views•9 min read
•about 17 hours ago•CVE-2026-119195
7.5

CVE-2026-119195: Quadratic-Time Denial of Service in pyasn1 BER/CER/DER Decoders

CVE-2026-119195 is an algorithmic complexity vulnerability (CWE-407) in the pyasn1 library for Python, affecting all versions prior to 0.6.5. When decoding constructed strings or indefinite-length ANY types across BER, CER, and certain DER code paths, the payload decoders repeatedly concatenate incoming fragments onto an immutable bytes object using the += operator. Because Python bytes objects cannot be resized in-place, each fragment iteration allocates a new buffer and copies all previously accumulated bytes, resulting in quadratic O(N^2) time and memory copy complexity. An unauthenticated remote attacker can supply a highly fragmented ASN.1 stream to exhaust CPU cycles and stall application worker threads.

Amit Schendel
Amit Schendel
7 views•10 min read
•about 18 hours ago•CVE-2026-119197
7.5

CVE-2026-119197: Quadratic Algorithmic Complexity Denial of Service in pyasn1 REAL Mantissa Decoder

An algorithmic complexity vulnerability (CWE-407) in pyasn1 versions prior to 0.6.5 allows unauthenticated attackers to cause a Denial of Service (DoS) via crafted ASN.1 payloads. The flaw resides in the binary-encoded ASN.1 REAL mantissa deserialization routine within RealPayloadDecoder.valueDecoder. By performing iterative byte-string slicing and repeated bitwise shifts on a growing arbitrary-precision integer, the decoder exhibits quadratic time and memory allocation complexity relative to the mantissa length. Supplying a BER-, CER-, or DER-encoded payload with a large REAL mantissa causes excessive CPU consumption and blocks application worker processes.

Amit Schendel
Amit Schendel
7 views•10 min read
•about 19 hours ago•CVE-2026-119196
7.5

CVE-2026-119196: Quadratic CPU Consumption in pyasn1 Constructed BIT STRING Decoding

A vulnerability classified under CWE-407 (Inefficient Algorithmic Complexity) exists in the pyasn1 library prior to version 0.6.5. When parsing constructed ASN.1 BIT STRING payloads under BER, CER, or schema-driven DER encoding rules, the BitStringPayloadDecoder repeatedly shifts and copies the entire accumulated bit value for each incoming fragment. Processing inputs with a large number of small constructed fragments induces quadratic CPU consumption, allowing unauthenticated remote attackers to cause a denial of service via resource exhaustion during the initial decoding phase.

Alon Barad
Alon Barad
8 views•10 min read