CVE-2026-83601: 
Netdata vulnerability analysis and mitigation

Overview

CVE-2026-83601 is a Denial of Service vulnerability in Netdata, an open-source observability tool, caused by a missing upper-bound guard on the DIMENSION SLOT value in the streaming protocol parser. An authenticated child agent can send an oversized DIMENSION SLOT value that triggers a size_t integer overflow in prd_array_create, resulting in a critically undersized heap allocation and an immediate out-of-bounds write that crashes the parent Netdata agent. All Netdata versions prior to 2.10.4 are affected. The vulnerability was published on September 22, 2026, and carries a CVSS v3.1 base score of 6.5 (Medium) (GitHub Advisory, Red Hat Bugzilla).

Technical details

The vulnerability stems from three interacting bugs classified as CWE-190 (Integer Overflow or Wraparound) and CWE-787 (Out-of-bounds Write). First, pluginsd_rrddim_put_to_slot in src/plugins.d/pluginsd_internals.h (lines 163–165) accepts the DIMENSION SLOT value from the stream with only a lower-bound check and no upper-bound limit — unlike chart slots, which are guarded against values ≥ INT32_MAX. Second, prd_array_create in src/database/rrdset-pluginsd-array.h (lines 51–54) stores the original large slot value in arr->size before the size_t multiplication overflows: with wanted_size = 768614336404564651, size × 24 wraps mod 2⁶⁴ to 8, causing callocz to allocate only 24 bytes while arr->size retains the original large value. Third, the initialization loop in pluginsd_internals.h (line 202) iterates from current_size to wanted_size, writing NULL to entries[0] at byte offset 24 — immediately beyond the 24-byte allocation boundary. The slot value originates directly from str2ull_encoded with no internal cap, and the (ssize_t) cast preserves values up to INT64_MAX (GitHub Advisory, Fix PR).

Impact

Successful exploitation causes the parent Netdata agent process to terminate immediately via heap corruption or a segmentation fault, halting all monitoring, alerting, and data collection on that instance. Any Netdata deployment using parent-child streaming — a common production configuration for centralized monitoring — is at risk, as the parent aggregates metrics from multiple child agents. There is no confidentiality or integrity impact; the sole consequence is a complete availability loss of the parent agent, which can be triggered repeatedly to maintain a persistent denial of service (GitHub Advisory).

Exploitability

A proof-of-concept exploit with step-by-step instructions is publicly available in the official GitHub Security Advisory, including exact streaming handshake format and crafted DIMENSION SLOT payloads (GitHub Advisory). Exploitation requires a valid streaming API key from stream.conf, which is a pre-shared secret distributed to all child agents; it can be obtained via a compromised child agent, a leaked configuration file, or interception of an unencrypted stream connection. There is no evidence of in-the-wild exploitation at this time. The EPSS score is approximately 0.0055 (low probability of exploitation in the near term), and the vulnerability is not listed in the CISA KEV catalog (Feedly).

Exploitation steps

  1. Reconnaissance: Identify parent Netdata agents listening on the streaming port (default TCP 19999) using network scanning tools such as Nmap or Shodan. Confirm the target is running a version prior to 2.10.4.
  2. Obtain a valid streaming API key: Acquire the pre-shared API key from stream.conf via a compromised child agent, leaked configuration file, or network interception of an unencrypted stream connection.
  3. Establish TCP connection: Open a TCP connection to the parent Netdata agent on port 19999 (or the configured stream port).
  4. Send streaming handshake: Authenticate using the stolen API key with a crafted HTTP GET request:
    GET /stream?key=<api-key>&hostname=poc-host&machine_guid=<uuid>&os=linux&update_every=1&version=1.99.0 HTTP/1.1
    Host: <parent-host>:19999
    User-Agent: netdata/poc
  5. Send CHART command: Establish a chart context to satisfy protocol requirements:
    CHART SLOT:1 cpu.system "" "CPU System" "%" "" line 1000 1 "" "" ""
  6. Send malicious DIMENSION command: Deliver the oversized SLOT value to trigger the integer overflow:
    DIMENSION SLOT:768614336404564651 total absolute 1 1
    Alternatively, use SLOT:9223372036854775807 (INT64_MAX) to trigger an immediate allocation failure via fatal().
  7. Trigger crash: The oversized slot value causes prd_array_create to allocate only 24 bytes while storing the original large value in arr->size, and the initialization loop immediately writes out of bounds, crashing the parent agent process (GitHub Advisory).

Indicators of compromise

  • Network: Unexpected TCP connections to the Netdata streaming port (default 19999) from unknown or untrusted hosts; streaming handshake HTTP GET requests with unrecognized machine_guid or hostname values.
  • Logs: Netdata log entries showing a DIMENSION SLOT: value far exceeding normal bounds (e.g., values in the range of 768614336404564651 or 9223372036854775807); rate-limited warnings such as PLUGINSD: ignoring invalid SLOT value (present only in patched versions); fatal() calls or segmentation fault messages in the Netdata error log immediately following a streaming connection.
  • Process: Sudden termination of the parent netdata process without a graceful shutdown; repeated restarts of the Netdata service in a short time window, potentially indicating repeated exploitation attempts.
  • File System: Core dump files generated by the Netdata process in the working directory or system core dump location following an unexpected crash (GitHub Advisory).

Mitigation and workarounds

Upgrade Netdata to version 2.10.4 or the nightly build 2.10.0-782-nightly or later, which introduce per-command slot upper bounds (PLUGINSD_CHART_SLOT_MAX = 1,000,000; PLUGINSD_DIMENSION_SLOT_MAX = 65,535) and an allocation overflow guard in prd_array_create (Netdata v2.10.4 Release, Fix PR). As a workaround prior to patching, restrict network access to the Netdata streaming port (default 19999) to only trusted child agent hosts using firewall rules or network segmentation. Additionally, implement network segmentation to limit which systems can communicate with parent agents as child agents, and rotate streaming API keys if a compromise is suspected (GitHub Advisory).

Community reactions

The vulnerability was reported by researcher michaelddickenson and published as a GitHub Security Advisory by Netdata maintainer Ferroin on September 2, 2026 (GitHub Advisory). Red Hat tracked the issue via Bugzilla and assessed it as medium severity (Red Hat Bugzilla). The NixOS security tracker also flagged the issue for backporting in the nixpkgs repository. No significant broader media coverage or notable social media discussion has been identified beyond standard CVE aggregator publications.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

netdata

Fixed

Ubuntu

Unknown

bionic (esm-apps)

netdata

Unknown

focal (esm-apps)

netdata

Unknown

jammy

netdata

Unknown

jammy (esm-apps)

netdata

Unknown

noble

netdata

Unknown

noble (esm-apps)

netdata

Unknown

Source: This report was generated using AI

Related Netdata vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-83603HIGH8.4
  • Netdata logoNetdata
  • netdata
NoYesSep 22, 2026
CVE-2026-83597HIGH7
  • Netdata logoNetdata
  • netdata-2.10
NoYesSep 22, 2026
CVE-2026-83602MEDIUM6.5
  • Netdata logoNetdata
  • netdata
NoNoSep 22, 2026
CVE-2026-83601MEDIUM6.5
  • Netdata logoNetdata
  • netdata
NoYesSep 22, 2026
CVE-2026-83600MEDIUM6.5
  • Netdata logoNetdata
  • netdata
NoYesSep 22, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management