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

CVE-2026-26061: Unauthenticated Denial of Service via Unbounded Memory Allocation in Fleet

Amit Schendel
Amit Schendel
Senior Security Researcher

Mar 27, 2026·5 min read·51 visits

Executive Summary (TL;DR)

Missing HTTP request body size limits in Fleet allow unauthenticated attackers to cause Out-Of-Memory (OOM) crashes by sending massive payloads to osquery API endpoints.

Fleet device management software versions prior to 4.81.0 are vulnerable to an unauthenticated denial-of-service (DoS) attack. The vulnerability stems from a failure to enforce size limits on HTTP request bodies at specific osquery logging and telemetry endpoints, allowing remote attackers to exhaust server memory.

Vulnerability Overview

Fleet is an open-source device management platform that interfaces with osquery agents deployed across endpoints. The server exposes several API endpoints to receive telemetry, logs, and distributed query results. These endpoints are typically exposed to the internet to facilitate communication with off-network enrolled devices.

CVE-2026-26061 identifies a resource management flaw in how these internet-facing endpoints process incoming HTTP POST requests. Specifically, the software fails to throttle or limit the size of incoming request bodies. This flaw is classified under CWE-770 (Allocation of Resources Without Limits or Throttling).

Because the vulnerability exists in the HTTP handler layer prior to authentication payload parsing, any external entity can reach the vulnerable code path. The lack of size enforcement allows a remote attacker to force the server to allocate unbounded amounts of memory, ultimately degrading service availability.

Root Cause Analysis

The vulnerability originates in the Go HTTP handlers responsible for processing telemetry from osquery agents. When an agent sends data to endpoints such as /api/osquery/log or /api/osquery/distributed/write, the server must parse the JSON payload to extract status logs and query results.

In the vulnerable implementation, the application reads the incoming http.Request.Body directly into a memory buffer without establishing an upper boundary. Go's standard library provides mechanisms like http.MaxBytesReader or io.LimitReader specifically designed to prevent clients from sending exceptionally large payloads that consume excessive server resources.

By omitting these safety constraints, the server relies entirely on the underlying system's available RAM. An attacker transmitting a multi-gigabyte POST request causes the Go runtime to continuously allocate memory slices to buffer the incoming data. This allocation occurs before the application logic validates the enrollment node keys or authenticates the request, making the attack surface universally accessible.

Code Analysis and Remediation Mechanics

In vulnerable versions of Fleet, the HTTP handlers extract the request body using unbounded reader functions. The implementation typically mirrors the following pattern, where the entire body is read into memory before unmarshaling the JSON content.

// Vulnerable Implementation Pattern
func (h *Handler) ProcessLogs(w http.ResponseWriter, r *http.Request) {
    // Reads the entire request body into memory without constraints
    bodyBytes, err := io.ReadAll(r.Body)
    if err != nil {
        http.Error(w, "Bad Request", http.StatusBadRequest)
        return
    }
    // Processing continues...
}

The remediation introduced in Fleet 4.81.0 implements a strict body size limit using Go's built-in http.MaxBytesReader. This wrapper intercepts the underlying io.ReadCloser. If the read operation exceeds the defined threshold, the reader returns an error, and the connection is closed. This prevents the Go runtime from allocating memory beyond the configured limit.

// Patched Implementation Pattern
func (h *Handler) ProcessLogs(w http.ResponseWriter, r *http.Request) {
    // Limits the request body to a configurable maximum size
    r.Body = http.MaxBytesReader(w, r.Body, h.maxLogBodySizeBytes)
    
    bodyBytes, err := io.ReadAll(r.Body)
    if err != nil {
        // Error is triggered if payload exceeds maxLogBodySizeBytes
        http.Error(w, "Payload Too Large", http.StatusRequestEntityTooLarge)
        return
    }
    // Processing continues safely...
}

Exploitation and Attack Methodology

An attacker requires only network level access to the Fleet server's exposed API ports to execute this denial-of-service attack. No prior authentication, valid osquery node key, or specialized system configuration is necessary.

The attack begins with the adversary initiating an HTTP POST request to a vulnerable endpoint, such as /api/osquery/log. The attacker utilizes tools like curl, Python, or custom scripts to stream an exceptionally large payload. By setting a massive Content-Length header or utilizing chunked transfer encoding, the attacker streams gigabytes of arbitrary data to the target.

As the Fleet server processes the stream, the Go runtime allocates memory to buffer the incoming request. The server's memory consumption rapidly scales linearly with the size of the payload. Once the host operating system's memory capacity is breached, the Linux Out-Of-Memory (OOM) killer terminates the Fleet process to protect kernel stability.

Impact Assessment

The primary impact of CVE-2026-26061 is a complete loss of availability for the Fleet service. When the OOM killer terminates the Fleet process, all connected osquery agents lose their management channel. The system can no longer dispatch distributed queries, rotate credentials, or collect security telemetry.

In environments where Fleet serves as a critical component of the security monitoring and incident response infrastructure, this denial-of-service creates a significant visibility gap. Threat actors often execute DoS attacks against monitoring tooling as a precursor to lateral movement or data exfiltration, ensuring their actions are not logged or alerted upon.

The vulnerability carries a CVSS v4.0 score of 8.7. The high severity reflects the ease of exploitation, the lack of authentication requirements, and the complete degradation of service availability. Confidentiality and integrity are not directly impacted by this memory exhaustion vector.

Mitigation and Remediation Guidance

The vendor provides an official patch for CVE-2026-26061 in Fleet version 4.81.0. System administrators must upgrade their Fleet deployments to this version or newer to permanently resolve the vulnerability. The update introduces configurable parameters that limit the maximum acceptable size for incoming osquery HTTP payloads.

Following the upgrade, administrators should evaluate the new body size limit configuration. The limits must be tuned to accommodate the largest legitimate log bundles generated by the environment's osquery agents while remaining small enough to prevent memory exhaustion during an attack.

If immediate patching is not technically feasible, administrators can implement mitigating controls at the reverse proxy or Web Application Firewall (WAF) layer. Configuring size limits on the proxy (for example, utilizing the client_max_body_size directive in Nginx or the SecRequestBodyLimit directive in ModSecurity) will reject oversized payloads before they reach the vulnerable Fleet backend application.

Technical Appendix

CVSS Score
8.7/ 10
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Affected Systems

Fleet device management (fleetdm/fleet)

Affected Versions Detail

Product
Affected Versions
Fixed Version
Fleet
Fleet
< 4.81.04.81.0
AttributeDetail
CWE IDCWE-770
Attack VectorNetwork
CVSS Score8.7
ImpactHigh (Denial of Service)
Authentication RequiredNone
Exploit StatusUnweaponized / Proof of Concept

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
CWE-770
Allocation of Resources Without Limits or Throttling

The software allocates a reusable resource or group of resources on behalf of an actor without any limits or throttling.

Vulnerability Timeline

Internal discovery and development of fix (approximate date of Fleet 4.81.0 release)
2026-02-20
Public disclosure and CVE assignment
2026-03-27

References & Sources

  • [1]GitHub Security Advisory: GHSA-99hj-44vg-hfcp
  • [2]Fleet 4.81.0 Release Notes
  • [3]CVE-2026-26061 Record at CVE.org

More Reports

•5 minutes ago•GHSA-JHJP-4C2Q-XMX4
8.1

GHSA-JHJP-4C2Q-XMX4: Falco k8saudit Plugin Ruleset Bypass via initContainers and ephemeralContainers

A security feature bypass vulnerability in the Falco k8saudit plugin (and its cloud-specific variants) allowed privileged workloads to run undetected. This bypass occurred because the plugin's default extraction logic and rules only evaluated standard containers, completely omitting initContainers and ephemeralContainers.

Amit Schendel
Amit Schendel
0 views•6 min read
•about 1 hour ago•CVE-2026-61630
4.2

CVE-2026-61630: Time-Based One-Time Password (TOTP) Reuse/Replay in nginx-ignition

nginx-ignition is a web-based user interface for managing the Nginx web server. In versions 2.33.0 through 2.35.0, the application is vulnerable to an improper authentication flaw (CWE-287) in its Multi-Factor Authentication (MFA) implementation. The stateless validation of Time-Based One-Time Passwords (TOTP) allows an attacker to reuse a captured, active verification code multiple times within the standard 30-second validity window, successfully bypassing secondary authentication checks if primary credentials are known.

Amit Schendel
Amit Schendel
4 views•5 min read
•about 2 hours ago•CVE-2026-61629
7.5

CVE-2026-61629: CPU Amplification Denial of Service via ParseAcceptLanguage Underscore Bypass

A vulnerability exists in the i18n middleware of nginx-ignition, enabling CPU amplification attacks. By transmitting a crafted Accept-Language header containing malformed tags separated by underscores, an unauthenticated remote attacker can bypass the length-guard threshold of the underlying Go parsing library. Normalization of underscores to hyphens occurs after the initial validation checks, forcing the parser into expensive quadratic-time loops that consume 100% of available CPU resources. This leads to a complete denial of service for the administrative API and potentially degrades the availability of the hosting system. This vulnerability has been resolved in version 2.40.1.

Alon Barad
Alon Barad
4 views•7 min read
•about 3 hours ago•CVE-2026-61628
8.1

CVE-2026-61628: Unauthenticated Admin Account Creation via Onboarding Race Condition in Nginx Ignition

Nginx Ignition prior to version 2.41.1 contains a Time-of-Check to Time-of-Use (TOCTOU) race condition in its unauthenticated onboarding API endpoint. This flaw allows remote, unauthenticated attackers to register an administrative account by sending concurrent HTTP requests during the initial system configuration phase, bypassing the check meant to restrict onboarding to a single initial administrator.

Amit Schendel
Amit Schendel
7 views•6 min read
•about 9 hours ago•CVE-2026-61687
7.1

CVE-2026-61687: OAuth State Validation Bypass and Login CSRF in Hatchet

A logic error in Hatchet's OAuth state validation mechanism allows unauthenticated remote attackers to bypass state parameter verification. By submitting an empty state parameter, attackers can exploit an equality collision with cleared session keys, facilitating Login Cross-Site Request Forgery (Login CSRF) or Session Fixation.

Amit Schendel
Amit Schendel
9 views•10 min read
•2 days ago•CVE-2026-58197
8.8

CVE-2026-58197: Host Escape and Lateral Movement via Insecure Container Network Defaults in ToolHive

A high-severity access control vulnerability in ToolHive CLI before v0.30.1 and ToolHive Studio before v0.38.0 allows local containerized MCP servers to bypass network isolation. This enables malicious workloads to establish TCP/IP connections to administrative and control plane endpoints exposed on the host loopback interface.

Amit Schendel
Amit Schendel
12 views•8 min read