This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
+14 more
Affected surfaces
ReleasePort's take
Moderate signalThe /api/v3/settings endpoint now requires HTTP_ACL_DASHBOARD authentication, preventing anonymous users from making state‑changing requests.
Why it matters: Blocks unauthorized configuration changes via the settings API; critical for security teams managing access controls.
Summary
AI summaryBroad release touches https://github.com/stelfrag, Security and API, https://github.com/ktsaou, and Collectors.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | High |
/api/v3/settings endpoint now gated behind HTTP_ACL_DASHBOARD, blocking anonymous state-changing requests /api/v3/settings endpoint now gated behind HTTP_ACL_DASHBOARD, blocking anonymous state-changing requests Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Added macOS hardware sensor collectors: GPU power, clock, temperatures, NVMe SMART, with `powermetrics` fallback via `ndsudo` Added macOS hardware sensor collectors: GPU power, clock, temperatures, NVMe SMART, with `powermetrics` fallback via `ndsudo` Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Added bounded‑cardinality process grouping for `apps.plugin` on macOS to keep per‑process monitoring meaningful with high process churn Added bounded‑cardinality process grouping for `apps.plugin` on macOS to keep per‑process monitoring meaningful with high process churn Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | High |
Hardened DBENGINE against corrupted or truncated data files with validation and protection mechanisms Hardened DBENGINE against corrupted or truncated data files with validation and protection mechanisms Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | High |
Fixed page‑cache races, deadlock on dimension creation, and crash on virtual node takeover in DBENGINE Fixed page‑cache races, deadlock on dimension creation, and crash on virtual node takeover in DBENGINE Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | High |
Rotated active datafile and requeued pending extent on unrecoverable write errors, preventing DBENGINE stall on failing disk Rotated active datafile and requeued pending extent on unrecoverable write errors, preventing DBENGINE stall on failing disk Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Medium |
Fixed buffer overflows and counter‑size issues in platform collectors (macOS mach_smi, FreeBSD ipfw, freeipmi) Fixed buffer overflows and counter‑size issues in platform collectors (macOS mach_smi, FreeBSD ipfw, freeipmi) Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Medium |
Bounded alert notification execution wait so stuck scripts cannot block progress and fixed shutdown race restoring alerts from DB Bounded alert notification execution wait so stuck scripts cannot block progress and fixed shutdown race restoring alerts from DB Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Medium |
Prevented rare one‑core CPU spins in cloud‑connection loops and avoided returning uninitialized `packet_id` on publish failure (ACLK) Prevented rare one‑core CPU spins in cloud‑connection loops and avoided returning uninitialized `packet_id` on publish failure (ACLK) Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Medium |
Fixed `csvjsonarray` output format emitting invalid JSON when `label-quotes` is passed Fixed `csvjsonarray` output format emitting invalid JSON when `label-quotes` is passed Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Medium |
Fixed internal race conditions: TOCTOU in `dictionary_destroy()`, ARAL allocator races, and double‑free issues Fixed internal race conditions: TOCTOU in `dictionary_destroy()`, ARAL allocator races, and double‑free issues Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Low |
Validated data loaded from SQLite to prevent crashes on corrupted databases and improved UUID handling and error reporting in SQLite functions Validated data loaded from SQLite to prevent crashes on corrupted databases and improved UUID handling and error reporting in SQLite functions Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Kept chart indexes allocated while a host is archived and guarded against null root index in chart lookups, avoiding null dereferences during queries Kept chart indexes allocated while a host is archived and guarded against null root index in chart lookups, avoiding null dereferences during queries Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Fixed rrdcontext metadata leak on non‑DBENGINE hosts Fixed rrdcontext metadata leak on non‑DBENGINE hosts Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Tracked and accounted memory allocation size in replication queries, fixed sender replication counter leak on obsolete charts Tracked and accounted memory allocation size in replication queries, fixed sender replication counter leak on obsolete charts Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Rejected oversized ZSTD frames and handled decompression errors gracefully (log and fail connection instead of fatal) Rejected oversized ZSTD frames and handled decompression errors gracefully (log and fail connection instead of fatal) Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Fixed streaming receiver discarding already‑delivered data when a child disconnects Fixed streaming receiver discarding already‑delivered data when a child disconnects Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Added safeguards against ML database corruption and streamlined the recovery process Added safeguards against ML database corruption and streamlined the recovery process Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Fixed `systemd-journal.plugin` memory retention after queries and its `apps.plugin` accounting Fixed `systemd-journal.plugin` memory retention after queries and its `apps.plugin` accounting Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Fixed file descriptor accounting in `apps.plugin` (adding `nfds` monitoring) and eBPF FD PID map iteration Fixed file descriptor accounting in `apps.plugin` (adding `nfds` monitoring) and eBPF FD PID map iteration Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Fixed Windows Events row rendering crashes with stricter size checks, safer XML parsing, and robust variant handling Fixed Windows Events row rendering crashes with stricter size checks, safer XML parsing, and robust variant handling Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Restored stable temperature and power collection in `go.d/nvidia_smi` with NVIDIA driver 580 XML output variants Restored stable temperature and power collection in `go.d/nvidia_smi` with NVIDIA driver 580 XML output variants Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Fixed Windows hardware detection so virtual machines are no longer reported as bare metal Fixed Windows hardware detection so virtual machines are no longer reported as bare metal Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Moved the fail2ban socket path into `ndsudo` for `go.d/fail2ban` Moved the fail2ban socket path into `ndsudo` for `go.d/fail2ban` Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Bugfix | Low |
Fixed a pluginsd cleanup race with an active collector, added slot bounds check to the pluginsd parser, and initialized mountpoint state before slow worker in diskspace plugin Fixed a pluginsd cleanup race with an active collector, added slot bounds check to the pluginsd parser, and initialized mountpoint state before slow worker in diskspace plugin Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
Full changelog
Release notes
Netdata v2.10.4 is a patch release to address issues discovered since v2.10.3.
This is a larger-than-usual patch release focused on stability, memory safety, and crash resilience across the database engine, streaming, Cloud connectivity, and collectors. It also backports the new macOS hardware sensor collectors to the 2.10.x line.
New in this release
- macOS hardware sensor collectors: GPU power, clock, and temperatures, SMC and IOHID sensors and fans, power sources and thermal pressure, NVMe SMART, with a
powermetricsfallback viandsudo, plus a cross-OSsensorsfunction and a shared temperature-histogram context (#22475, #23085, @ktsaou) - Bounded-cardinality process grouping for
apps.pluginon macOS, keeping per-process monitoring meaningful on hosts with high process churn (#23085, @ktsaou)
Database engine and metadata
- Hardened DBENGINE against corrupted or truncated data files: extent disk-size and uncompressed-page-bounds validation, SIGBUS protection and header-offset bounds checks on v2 journal walks, improved journal file access error handling, and spinlock-holder identification for datafile/journal deadlock diagnostics (#22324, #22514, #22310, #22725, @stelfrag; #22666, @jmestwa-coder)
- Fixed page-cache races in
pgc_page_addandpgc_queue_del, a deadlock on dimension creation, and a crash on virtual node takeover (#22466, #22400, #22417, @stelfrag) - Validated data loaded from SQLite to prevent crashes on corrupted databases, and improved UUID handling and error reporting in SQLite functions (#22679, #22233, @stelfrag)
- Kept chart indexes allocated while a host is archived and guarded against a null root index in chart lookups, avoiding null dereferences during queries (#23074, #23056, @stelfrag)
- Fixed an rrdcontext metadata leak on non-dbengine hosts (#22438, @stelfrag)
- Rotated the active datafile and requeued the pending extent on unrecoverable write errors, so a failing disk no longer stalls the database engine (#23048, @ktsaou)
Streaming and replication
- Tracked and accounted memory allocation size in replication queries, and fixed a sender replication counter leak on obsolete charts (#22756, #22428, @stelfrag)
- Rejected oversized ZSTD frames and handled decompression errors gracefully (log and fail the connection instead of
fatal()) (#22830, @stelfrag) - Fixed the streaming receiver discarding already-delivered data when a child disconnects (#23118, @ktsaou)
Cloud connectivity (ACLK)
- Prevented rare unbounded one-core CPU spins in the cloud-connection loops, and avoided returning an uninitialized
packet_idon publish failure (#22879, @ktsaou; #22504, @stelfrag)
Alerts and machine learning
- Bounded the alert notification execution wait so a stuck notification script cannot block progress, and fixed a shutdown race when restoring alert information from the database (#22626, #22448, @stelfrag)
- Added safeguards against ML database corruption and streamlined the recovery process (#22478, @stelfrag)
Collectors
- Fixed
systemd-journal.pluginmemory retention after queries and itsapps.pluginaccounting (#23089, @ktsaou) - Fixed file descriptor accounting in
apps.plugin(addingnfdsmonitoring) and eBPF FD PID map iteration (#22447, @arch-yunus; #22436, @stelfrag) - Fixed buffer overflows and counter-size issues in platform collectors: a stack buffer overflow in macOS
mach_smi, FreeBSD counter size mismatches and an off-by-one infreebsd_ipfwand the claim code, and afreeipmi.pluginwatchdog underflow at low system uptime (#22553, @artem; #23044, @DavidMarec; #22710, @vkalintiris; #22490, @ktsaou) - Fixed Windows Events row rendering crashes with stricter size checks, safer XML parsing, and robust variant handling (#22872, @ktsaou)
- Restored stable temperature and power collection in
go.d/nvidia_smiwith NVIDIA driver 580 XML output variants (#23047, @copilot-swe-agent) - Fixed Windows hardware detection so virtual machines are no longer reported as bare metal (#22942, @thiagoftsm)
- Moved the fail2ban socket path into
ndsudoforgo.d/fail2ban(#22745, @ilyam8) - Fixed a pluginsd cleanup race with an active collector, added a slot bounds check to the pluginsd parser, and initialized mountpoint state before the slow worker in the diskspace plugin (#22207, #22598, #22298, @stelfrag)
Security and API
- The
/api/v3/settingsendpoint is now gated behindHTTP_ACL_DASHBOARDinstead ofHTTP_ACL_NOCHECK, enforcing connection allowlists and blocking anonymous state-changing requests (#22896, @stelfrag) - Fixed the
csvjsonarrayoutput format emitting invalid JSON whenlabel-quotesis passed (#23115, @ktsaou)
Core stability and memory safety
- Fixed internal race conditions: a TOCTOU race in
dictionary_destroy(), ARAL allocator races and a double-free (#22108, #22212, #22294, #22367, @stelfrag) - Fixed a payload memory leak, JSON object validation and null-key handling, an inverted empty-buffer guard in
simple_pattern, and prevented a concurrent fatal from masking the first one (#22492, #22309, #22326, #22671, @stelfrag; #22688, @vkalintiris) - Fixed memory-safety and correctness bugs surfaced by Coverity and Sonar audits (#22266, #22267, #22268, #22270, #22279, #22281, #22329, #22330, #22331, #22332, #22333, #22334, #22335, #22336, #22338, #22339, #22340, #22835, @stelfrag; #22293, @ktsaou)
- Improved shutdown robustness: fixed a SIGSEGV in
ctx_hosts_loadand pipe cleanup handling of the ENOENT case (#22419, #22509, @stelfrag)
Installation and packaging
- Windows: fixed MSI installer issues, adjusted the installer to run claiming only when both the token and rooms are provided (with safer wide-character handling and a capped HTTP claim response size), and fixed the search for Visual Studio tooling to check for multiple versions (#22751, #22754, @thiagoftsm; #22723, @Ferroin)
- Improved error handling in
netdata-updaterwhen fetching files and silencedcurloutput (#22422, @Ferroin; #22639, @AJCxZ0)
Support options
As we grow, we stay committed to providing the best support ever seen from an open-source solution. Should you encounter an issue with any of the changes made in this release or any feature in the Netdata Agent, feel free to contact us through one of the following channels:
- Netdata Learn: Find documentation, guides, and reference material for monitoring and troubleshooting your systems with Netdata.
- GitHub Issues: Make use of the Netdata repository to report bugs or open a new feature request.
- GitHub Discussions: Join the conversation around the Netdata development process and be a part of it.
- Community Forums: Visit the Community Forums and contribute to the collaborative knowledge base.
- Discord Server: Jump into the Netdata Discord and hang out with like-minded sysadmins, DevOps, SREs, and other troubleshooters. More than 2000 engineers are already using it!
Security Fixes
- /api/v3/settings now gated behind HTTP_ACL_DASHBOARD (prevents anonymous state‑changing requests).
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About netdata
The fastest path to AI-powered full stack observability, even for lean teams.
Related context
Related tools
Beta — feedback welcome: [email protected]