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-35406

CVE-2026-35406: Denial of Service via Uncontrolled Resource Consumption in Aardvark-dns

Amit Schendel
Amit Schendel
Senior Security Researcher

Apr 7, 2026·5 min read·61 visits

Executive Summary (TL;DR)

Unauthenticated DoS in Aardvark-dns via truncated TCP queries causing 100% CPU exhaustion due to missing error handling.

Aardvark-dns versions 1.16.0 through 1.17.0 are vulnerable to an uncontrolled resource consumption flaw (CWE-400). A truncated TCP DNS query followed by an immediate connection reset forces the server into an infinite polling loop, consuming 100% CPU and causing a Denial of Service.

Vulnerability Overview

Aardvark-dns operates as an authoritative DNS server for containerized environments, frequently deployed alongside tools like Podman to handle internal A/AAAA record resolution. The vulnerability, classified as Uncontrolled Resource Consumption (CWE-400), affects versions 1.16.0 through 1.17.0.

An attacker can trigger this flaw by sending a structurally incomplete TCP DNS query and subsequently terminating the connection. This specific sequence of network events initiates an unhandled error state within the asynchronous event loop responsible for processing TCP streams.

The resulting impact is a complete Denial of Service (DoS) for the DNS component. The unhandled error state causes the server to continuously poll the disconnected stream without blocking, driving CPU utilization to 100% on the affected core. This prevents the server from answering legitimate DNS queries originating from the container network.

Root Cause Analysis

The vulnerability originates in the TCP DNS stream polling logic located within src/dns/coredns.rs. The server implementation leverages the hickory-proto library to handle asynchronous stream iteration, retrieving incoming DNS messages over established TCP connections.

When a malformed packet arrives—specifically one announcing a TCP payload length but failing to deliver the corresponding payload before the connection resets—the underlying stream iterator returns an Err result. The application logic captures this error, writes the output to the debug log, but fails to alter the control flow of the connection loop.

The critical failure occurs because the asynchronous event loop immediately attempts to poll the same desynchronized stream again. Since the socket state remains persistently broken, every subsequent poll instantly returns another Err result.

This continuous polling executes without any artificial delay, blocking operations, or state validation. The tight execution loop rapidly exhausts available CPU cycles, locking the execution thread in a classic busy-wait scenario that degrades system availability.

Code Analysis

The vulnerable implementation attempts to process the message stream without evaluating the structural integrity of the connection following an error. The stream's iterator yields an error, but the surrounding processing loop continues execution without dropping the broken connection.

The patch implemented in commit 3b49ea7b38bdea134b7f03256f2e13f44ce73bb1 introduces explicit match arms for the stream output. When Err(e) is encountered during message parsing, the execution path now includes a decisive break statement.

// Patched logic
match message {
    Some(msg_result) => match msg_result {
        Ok(msg) => {
            Self::process_message(&data, msg, ...).await
        }
        Err(e) => {
            debug!("Error parsing dns message {e:?}");
            // CRITICAL FIX: Break the loop on error
            break; 
        }
    },
    None => break,
}

This modification ensures that any parsing error immediately terminates the specific TCP connection loop. The server drops the problematic socket context and returns to polling healthy connections, effectively eliminating the infinite loop condition.

Exploitation Methodology

Exploitation requires the attacker to possess network routing capability to the target aardvark-dns service port (TCP 53). Authentication is not required, as the vulnerability triggers during the initial parsing of the TCP DNS protocol framing layer.

The attacker establishes a standard TCP connection to the target server and transmits a carefully crafted binary payload. The payload consists solely of the two-byte TCP DNS length prefix (e.g., 0x003c indicating a 60-byte message) without appending any subsequent DNS message data.

Immediately after transmitting the length prefix, the attacker sends a TCP RST (reset) or FIN to abruptly terminate the connection. Standard network utilities like socat can execute this precise sequence by writing raw bytes to standard input and closing the socket.

# Proof of Concept command
echo -e '\x00\x3c' | socat - TCP4:$gw:53

Upon receipt of the truncated transmission and subsequent reset, the aardvark-dns process immediately spikes to 100% CPU utilization. The service ceases to respond to subsequent valid DNS queries.

Impact Assessment

The primary impact is a severe degradation of network availability for containerized applications relying on aardvark-dns for name resolution. Applications attempting to resolve internal infrastructure or external web services experience DNS timeouts and subsequent connection failures.

The vulnerability is classified under CVSS v3.1 as 6.2 (Medium), with a vector of CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H. The Local (AV:L) vector reflects the requirement for the attacker to originate from within the adjacent container network or possess explicit routing to the DNS gateway interface.

Confidentiality and Integrity remain entirely uncompromised. The infinite loop occurs within the connection handling thread and does not expose memory contents, allow execution of arbitrary instructions, or permit the manipulation of internal DNS cache records.

Sustained exploitation can induce secondary impacts on the host system. Exhaustion of CPU resources on the assigned execution core degrades the performance of co-located containers or host processes depending on resource limitation configurations.

Remediation and Mitigation

The primary remediation is to upgrade aardvark-dns to version 1.17.1. This release incorporates the upstream fix that correctly terminates the parsing loop upon encountering socket or protocol errors.

Administrators utilizing container management environments should update their associated dependency packages through the system package manager. For example, executing dnf update aardvark-dns on RPM-based distributions installs the patched binary. Administrators must ensure that all running container networks are restarted to load the patched binary into memory.

In environments where immediate patching is not feasible, administrators can deploy network-level rate limiting or connection state tracking on TCP port 53. Restricting the number of unestablished or rapidly resetting TCP connections mitigates automated exploitation attempts from compromised containers.

Security teams should implement process-level monitoring for aardvark-dns. Alerting logic should trigger if sustained CPU utilization reaches 100% concurrently with a high volume of Error parsing dns message debug entries in the service logs.

Official Patches

containersSecurity Advisory GHSA-hfpq-x728-986j

Fix Analysis (1)

Technical Appendix

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

Affected Systems

Aardvark-dnsPodman Container Networks

Affected Versions Detail

Product
Affected Versions
Fixed Version
aardvark-dns
containers
1.16.0 - 1.17.01.17.1
AttributeDetail
CWE IDCWE-400
Attack VectorLocal/Adjacent Network
ImpactDenial of Service (100% CPU Exhaustion)
Exploit StatusPoC Available
CVSS Score6.2 (Medium)

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
CWE-400
Uncontrolled Resource Consumption

The software does not properly control the allocation and maintenance of a limited resource, thereby enabling an attacker to influence the amount of resources consumed.

Known Exploits & Detection

BATS Test Suitesocat command sending 0x003c followed by immediate closure

Vulnerability Timeline

Fix commit merged into the repository
2026-04-02
Security advisory GHSA-hfpq-x728-986j and CVE published
2026-04-07

References & Sources

  • [1]Security Advisory GHSA-hfpq-x728-986j
  • [2]Fix commit 3b49ea7b38bdea134b7f03256f2e13f44ce73bb1
  • [3]Release Notes v1.17.1
  • [4]NVD Vulnerability Detail

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

•1 day ago•CVE-2026-11748
6.9

CVE-2026-11748: Unauthenticated LDAP Injection in Central Dogma Server Authentication

An LDAP injection vulnerability exists in the centraldogma-server-auth-shiro module of LY Corporation Central Dogma before version 0.84.0. The search logic dynamically constructs LDAP search filters by interpolating user-provided usernames without escaping RFC 4515 metacharacters. Unauthenticated remote attackers can leverage this flaw to bypass authentication, enumerate directory hierarchies, and access unauthorized resources.

Alon Barad
Alon Barad
9 views•6 min read
•1 day ago•CVE-2026-11746
9.4

CVE-2026-11746: Use of Hard-coded ZooKeeper Replication Secret 'ch4n63m3' in Central Dogma Server

CVE-2026-11746 is a critical vulnerability in Central Dogma Server prior to version 0.84.0, where an embedded ZooKeeper replication secret silently falls back to a publicly known, hard-coded default string ('ch4n63m3'). Remote attackers with access to the replication network can authenticate as legitimate cluster peers, potentially leading to unauthorized data exposure, state manipulation, or complete cluster takeover.

Amit Schendel
Amit Schendel
7 views•6 min read
•1 day ago•CVE-2026-56665
4.2

CVE-2026-56665: Logical Validation Bypass in ZITADEL External JWT Identity Provider

A logical verification flaw in ZITADEL's external JWT Identity Provider validation allows attackers to bypass session expiration checks. If an incoming JWT lacks the 'exp' claim, the system skips validation entirely, creating an indefinitely valid session. This issue has been addressed in versions 3.4.12 and 4.15.2.

Alon Barad
Alon Barad
7 views•7 min read
•1 day ago•CVE-2026-59149
6.5

CVE-2026-59149: Sibling Directory Path Traversal in Mockoon Backend Server

CVE-2026-59149 identifies a directory traversal vulnerability in `@mockoon/commons-server`, the backend mock-server library powering the Mockoon application. The flaw occurs in the path containment validation logic used during raw file response generation. An unauthenticated attacker can exploit this weakness to retrieve arbitrary files from sibling directories sharing a common prefix with the designated static base directory.

Amit Schendel
Amit Schendel
9 views•5 min read
•1 day ago•CVE-2026-59148
8.8

CVE-2026-59148: Unauthenticated Administrative API and CORS Misconfiguration in Mockoon

An in-depth analysis of CVE-2026-59148, a high-severity flaw in Mockoon where unauthenticated administrative endpoints and a wildcard Cross-Origin Resource Sharing (CORS) policy allow remote execution, state poisoning, and credential theft.

Alon Barad
Alon Barad
11 views•6 min read
•1 day ago•CVE-2026-56666
4.8

CVE-2026-56666: Account Takeover via Improper Email Verification in ZITADEL Federated Identity Handler

An improper authentication vulnerability (CWE-287) in ZITADEL's external identity provider handler before version 4.15.3 allows remote attackers to perform complete account takeover. When auto-linking by email is enabled, ZITADEL verifies that the local target account has a verified email address but fails to verify if the external provider confirmed ownership of that same email. Attackers can exploit this by registering an unverified account with a victim's email address on a permissive external provider, leading to unauthorized account binding and persistent access.

Amit Schendel
Amit Schendel
7 views•7 min read