
Cloud Vulnerability DB
A community-led vulnerabilities database
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).
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).
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).
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).
stream.conf via a compromised child agent, leaked configuration file, or network interception of an unencrypted stream connection.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/pocCHART SLOT:1 cpu.system "" "CPU System" "%" "" line 1000 1 "" "" ""DIMENSION SLOT:768614336404564651 total absolute 1 1Alternatively, use SLOT:9223372036854775807 (INT64_MAX) to trigger an immediate allocation failure via fatal().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).machine_guid or hostname values.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.netdata process without a graceful shutdown; repeated restarts of the Netdata service in a short time window, potentially indicating repeated exploitation attempts.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).
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.
Fix availability across major Linux distributions and their releases.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."