Skip to main content

Netdata EUVDEUVD-2026-84564

| CVE-2026-83603 HIGH
External Control of File Name or Path (CWE-73)
2026-09-22 GitHub_M
8.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain netdata service-account foothold
  2. Delivery
    Start malicious UNIX socket
  3. Exploit
    Invoke setuid ndsudo with --socket_path
  4. Execution
    root fail2ban-client connects to socket
  5. Persist
    Malicious pickle deserialized by pickle.loads()
  6. Impact
    Arbitrary code execution as root

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File name/path control
Exploitation Conditions

Requires (1) local control of the low-privileged netdata service account on a host running Netdata prior to 2.10.4, (2) the setuid-root ndsudo helper present (default in affected packaged builds), and (3) fail2ban-client installed on the system, since the vulnerable command is fail2ban-client-status-socket. The attacker must be able to invoke ndsudo with a caller-controlled --socket_path and stand up a malicious UNIX socket. Limiting factors: no remote/network vector (AV:L) - a prior local foothold as the netdata account is mandatory - and hosts without fail2ban-client installed are not exploitable via this path.

Impact

This is a genuine high-priority local privilege-escalation-to-root issue, not a high-CVSS-but-low-risk case. The CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N, 8.4) accurately captures the shape: an attacker who already holds the low-privileged netdata service account can reach a setuid-root ndsudo helper whose caller-controlled --socket_path lets root's fail2ban-client connect to an attacker-owned UNIX socket, whose response is deserialized via pickle.loads() as root - a textbook unsafe-deserialization RCE-as-root. The Scope:Changed flag is correct because the netdata→root authority boundary is crossed. No EPSS score, KEV entry, or public POC was provided, so exploitation status is 'no public exploit identified at time of analysis'; however, the mechanism is well-understood and the fix diff is public (PR #22745 removes the caller-controlled socket path entirely and hardcodes it), which materially lowers the bar to reproduce. The A:N metric is arguably conservative - arbitrary root code execution can trivially destroy availability - so real impact may exceed the published vector. The one real limiter is that exploitation requires both prior local foothold as the netdata account AND fail2ban-client installed on the host.

Exploit ScenarioDerived

An attacker who has already compromised or otherwise controls the low-privileged netdata service account (e.g. via a separate web/collector foothold) invokes the setuid-root ndsudo helper's fail2ban-client-status-socket command with --socket_path pointing at a malicious UNIX socket they control. Root's fail2ban-client connects, CSocket.receive() feeds the attacker-supplied bytes to pickle.loads(), and a crafted pickle payload executes arbitrary code as root. No public POC is referenced, but the patch diff and deserialization sink are public, making reproduction straightforward on hosts with fail2ban-client installed.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 22, 2026

Local privilege escalation to root in Netdata versions prior to 2.10.4: the setuid-root ndsudo helper command fail2ban-client-status-socket accepted a caller-supplied --socket_path argument from the low-privileged netdata service account, letting that account point root's fail2ban-client at an attacker-controlled UNIX socket. Because fail2ban-client's CSocket.receive() deserializes the socket response with pickle.loads(), a crafted reply yields attacker-controlled code execution as root on any host where fail2ban-client is installed and the setuid ndsudo helper is present (default in affected packaged builds). The vector is strictly local (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H), so a prior foothold as the netdata account is mandatory, and hosts without fail2ban-client are not exploitable through this path; no public exploit code has been identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to Netdata 2.10.4 (or nightly 2.10.0-782-nightly), which hardcodes the fail2ban socket path in ndsudo.c and removes the caller-supplied --socket_path from the Go fail2ban collector - see advisory GHSA-qwh9-pq27-993w, PR 22745, and commit 9bced8d46464bd0fe01b0b5f8c63c4ac24e9b060. If immediate upgrade is not possible, the most effective compensating control is to remove the setuid bit from the ndsudo helper (chmod u-s on the ndsudo binary) or restrict its execution to root only; the trade-off is that all ndsudo-backed collectors, including fail2ban, smartctl, and nvme, stop working from the netdata account, degrading observability but closing the privilege boundary. A second option is to uninstall or otherwise remove fail2ban-client from hosts that do not need fail2ban monitoring, since the entire chain depends on root's fail2ban-client performing the attacker-directed socket connect and pickle.loads(); this costs fail2ban visibility but eliminates the root-side deserialization sink. Where fail2ban is genuinely required, restrict netdata's ability to reach it - for example by making the netdata account unable to create or bind UNIX sockets in writable directories the helper can be pointed at, and by tightening filesystem permissions so the service account cannot author socket path contents - though path-level restrictions are fragile and should be treated as defense in depth, not a substitute for the patch. Finally, audit for prior compromise by reviewing fail2ban-client invocations in ndsudo/sudo logs and any unexpected root-owned processes or files after netdata account activity, given the local root code-execution outcome.

Affected VersionsENISA

netdata < 2.10.4

Affected Packages

euvd netdata fix: 2.10.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Netdata ships ndsudo, a small setuid-root helper used by the agent's Go collectors to run a fixed allowlist of privileged commands (fail2ban-client, smartctl, nvme, etc.) on behalf of the unprivileged netdata service account. The vulnerable entry is the fail2ban-client-status-socket command template in src/collectors/utils/ndsudo.c, which was written as "-s {{socket_path}} status"; the {{socket_path}} placeholder was interpolated from an argument the Go collector passed through (src/go/plugin/go.d/collector/fail2ban/exec.go), so the caller - not ndsudo - controlled which UNIX socket root's fail2ban-client would connect to. The root cause class is CWE-73 (External Control of File Name or Path): a privileged, setuid process trusting a path value supplied by a less-privileged caller, with no validation, canonicalization, or fixed-socket enforcement. The second half of the chain lives in fail2ban itself: fail2ban/client/csocket.py CSocket.receive() unpickles data returned over the socket with pickle.loads(), so any process that can answer on that socket controls a root-level deserialization primitive. The scoped CVSS rating (S:C) reflects that this crosses a privilege boundary from the netdata account to full root, with high confidentiality, integrity, and availability impact. The upstream fix removes the parameterization entirely - PR 22745 and commit 9bced8d46464bd0fe01b0b5f8c63c4ac24e9b060 replace the placeholder with the hardcoded FAIL2BAN_SOCKET_PATH_IN_DOCKER constant "/host/var/run/fail2ban/fail2ban.sock" and drop the --socket_path arguments from the Go collector, adding exec_test.go assertions that pin the exact ndsudo argv for host and Docker paths. Note that the supplied tag "Information Disclosure" understates the issue; the actual impact is root code execution.

Know when Netdata gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.4 HIGH
AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
vuln.today AI 8.8 HIGH

Local netdata-account attacker (AV:L/PR:L) reliably reaches a setuid helper for arbitrary root code execution (S:C, full C:H/I:H/A:H); I raise A:N to A:H because root RCE fully compromises availability.

3.1 AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
SUSE HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Sep 22, 2026 - 18:02 EUVD
CVE Published
Sep 22, 2026 - 17:01 cve.org
HIGH 8.4

DescriptionCVE.org

Netdata is an open source observability tool. Prior to 2.10.4, the setuid-root ndsudo helper command fail2ban-client-status-socket in src/collectors/utils/ndsudo.c accepts a caller-controlled --socket_path from the low-privileged netdata service account. The account can direct root fail2ban-client to a malicious UNIX socket, and fail2ban/client/csocket.py CSocket.receive() passes the returned data to pickle.loads(), allowing attacker-controlled code to execute as root on systems with fail2ban-client installed. This issue is fixed in version 2.10.4 and nightly build 2.10.0-782-nightly.

Technical POC Analysis

CWE-73 (External Control of File Name or Path), chained with unsafe deserialization in the child process.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Netdata installations running versions prior to 2.10.4 on hosts that also have fail2ban-client installed contain a local privilege-escalation flaw in the setuid-root ndsudo helper that allows an attacker holding the low-privileged netdata service account to execute arbitrary code as root. Affected hosts are those in default packaged builds, meaning a single compromised service account can escalate into a complete takeover of the machine and everything on it. Leadership should care because this is a contained-but-high-consequence risk: it demands a prior foothold, but the end state is full root control of production systems.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; the flaw is described as affecting Netdata versions prior to 2.10.4. Interim mitigations: remove the setuid bit from the ndsudo helper to eliminate the escalation path, uninstall or disable fail2ban-client on hosts where it is not operationally required, restrict and monitor the low-privileged netdata service account, and hunt for anomalous ndsudo or fail2ban-client invocations originating from that account until a fixed build is available.

Threat Intelligence Overview

EPSS Score
0.3%
Top 71% exploitable
Prevalence
High
Netdata is a very widely deployed open-source monitoring agent across servers and homelabs
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2023-22496 CRITICAL POC
9.8 Jan 14

Netdata is an open source option for real-time infrastructure monitoring and troubleshooting. Rated critical severity (C

CVE-2023-22497 CRITICAL POC
9.1 Jan 14

Netdata is an open source option for real-time infrastructure monitoring and troubleshooting. Rated critical severity (C

CVE-2019-9834 MEDIUM POC
6.1 Mar 15

The Netdata web application through 1.13.0 allows remote attackers to inject their own malicious HTML code into an impor

CVE-2026-83598 HIGH
7.8 Sep 22

Local privilege escalation in the Netdata Windows Agent (versions 2.0.0 through 2.10.3) allows an authenticated low-priv

CVE-2026-83599 HIGH
7.5 Sep 22

Memory exhaustion in Netdata versions prior to 2.11.0 allows a remote, unauthenticated attacker to inflate small, highly

CVE-2026-83597 HIGH
7.0 Sep 22

Local privilege escalation in the Netdata Windows Agent (versions 2.0.0 through 2.10.3) lets an authenticated low-privil

CVE-2026-83600 MEDIUM
6.5 Sep 22

A denial of service in Netdata Agent versions prior to 2.10.4 lets an authenticated streaming child agent crash the pare

CVE-2026-83601 MEDIUM
6.5 Sep 22

An authenticated Netdata child agent can crash its parent agent by streaming an oversized DIMENSION SLOT value in the pl

CVE-2026-83602 MEDIUM
6.5 Sep 22

Unauthenticated writes to the Netdata settings store are possible in versions 2.0.0 through 2.10.x because the /api/v3/s

CVE-2025-71385 MEDIUM
5.1 Jul 02

Reflected XSS in Netdata before 2.3.1 allows unauthenticated network attackers to inject and execute arbitrary JavaScrip

Vendor StatusVendor

SUSE

Severity: Important

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy