Back to Intelligence

Fedora 44 Domoticz 2026.3 Security Update: Web Server and API Fixes Require Immediate Patching

SA
Security Arsenal Team
August 12, 2026
9 min read

Fedora has released an important security update for Domoticz — version 2026.3 — for Fedora 44, addressing security flaws in the home automation platform's web server and API layer. The advisory (FEDORA-2026-471f1abb1f) flags the update as important and explicitly recommends that all users upgrade.

This matters far beyond hobbyist home labs. Domoticz is frequently deployed in small offices, industrial outbuildings, and maker/OT environments where it bridges IP networks to physical systems: HVAC, lighting, door locks, cameras, power relays, and environmental sensors. A vulnerability in the web server or REST API isn't just a web app bug — it's a potential path to physical control of building systems, and a pivot point into whatever network segment the Domoticz host lives on.

Historically, Domoticz's web interface has been a recurring attack surface, and internet-scanning data consistently shows exposed instances. Any "important" security fix to that component should be treated as urgent, especially where the instance is reachable beyond localhost.

Technical Analysis

Affected Products and Platforms

  • Product: Domoticz, open-source home automation system
  • Affected package: domoticz prior to version 2026.3
  • Fixed package: domoticz-2026.3 on Fedora 44
  • Attack surface: The Domoticz embedded web server (default TCP 8080 HTTP, optionally 443/HTTPS) and its JSON/REST API endpoints (e.g., /json.htm?type=...)

How the Vulnerability Class Works (Defender's Perspective)

The advisory describes security fixes to the web server and API components. While Fedora does not enumerate a specific CVE identifier in this advisory, the affected component is the HTTP/HTTPS listener and its API request handling — the exact layer that processes unauthenticated or lightly authenticated remote input.

From a defensive standpoint, vulnerabilities in this layer typically manifest as one or more of:

  1. Authentication bypass or session handling flaws — an attacker reaching the API without valid credentials, or replaying/stealing session tokens from plaintext HTTP traffic.
  2. Injection or input-validation bugs — malformed API parameters reaching backend handlers, potentially leading to command execution or unauthorized device manipulation.
  3. Memory safety issues in the embedded web server — crash or code-execution conditions triggered by crafted HTTP requests.

The real-world exploitation chain we've observed against IoT/home-automation panels generally looks like: internet or LAN scan → identify Domoticz instance by banner/login page → probe API endpoints → either exploit the flaw directly for RCE on the host, or abuse legitimate API functions to manipulate physical devices, then establish persistence on the host (a Linux box, often a Raspberry Pi or small x86 system) as a network foothold.

Critically, a successful exploit of the Domoticz process means code running as the domoticz service account — and because Domoticz is designed to execute scripts and shell commands triggered by automation events, the gap between "compromised web panel" and "arbitrary command execution" is often zero.

Exploitation Status

No CVE identifier, public proof-of-concept, or confirmed in-the-wild exploitation has been published alongside this advisory, and the flaw is not (as of this writing) listed in the CISA Known Exploited Vulnerabilities catalog. However, the vendor's characterization of the fixes as "important" security patches for the web server and API — combined with the ease of scanning for exposed Domoticz instances — means the window between patch release and opportunistic exploitation is short. Treat as patch-now, not patch-later.

Detection & Response

The highest-fidelity detection for compromise of a Domoticz host is monitoring the domoticz process itself: it should serve HTTP and talk to your devices — it should never spawn shells, downloaders, or scripting interpreters. The detections below are built around that behavioral principle, plus exposure auditing.

YAML
---
title: Domoticz Process Spawning Shell or Script Interpreter
id: 9c2e4b71-5f8a-4d3e-b6c1-7a9f0e2d5b84
status: experimental
description: Detects the domoticz service process spawning shells, script interpreters, or download utilities — a strong indicator of web server/API exploitation or abuse of Domoticz script-execution features by an attacker.
references:
  - https://linuxsecurity.com/advisories/fedora/fedora-44-domoticz-2026-471f1abb1f
  - https://attack.mitre.org/techniques/T1059/
  - https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/04/06
tags:
  - attack.execution
  - attack.t1059
  - attack.exploitation_of_public_facing_application
  - attack.t1190
logsource:
  category: process_creation
  product: linux
detection:
  selection_parent:
    ParentImage|endswith:
      - '/domoticz'
  selection_child:
    Image|endswith:
      - '/bash'
      - '/sh'
      - '/dash'
      - '/zsh'
      - '/python'
      - '/python3'
      - '/perl'
      - '/curl'
      - '/wget'
      - '/nc'
      - '/ncat'
      - '/socat'
  condition: selection_parent and selection_child
falsepositives:
  - Legitimate Domoticz automation scripts configured by the administrator (review CommandLine; known-good script paths can be allowlisted)
level: high
---
title: Domoticz Web API Probing and Enumeration
id: 3f7a1c58-2b9d-4e6f-a1c3-8d5e0b4a7f29
status: experimental
description: Detects scanning or enumeration behavior against the Domoticz web interface and JSON API, including access to sensitive device/command endpoints from external or unusual sources.
references:
  - https://linuxsecurity.com/advisories/fedora/fedora-44-domoticz-2026-471f1abb1f
  - https://attack.mitre.org/techniques/T1190/
  - https://attack.mitre.org/techniques/T1595/
author: Security Arsenal
date: 2026/04/06
tags:
  - attack.reconnaissance
  - attack.t1595
  - attack.exploitation_of_public_facing_application
  - attack.t1190
logsource:
  category: webserver
detection:
  selection_uri:
    cs-uri|contains:
      - '/json.htm'
      - '/api/'
  selection_query:
    cs-uri-query|contains:
      - 'type=command'
      - 'type=devices'
      - 'type=users'
      - 'type=camera'
  filter_local:
    c-ip|startswith:
      - '10.'
      - '192.168.'
      - '172.16.'
      - '127.'
  condition: selection_uri and selection_query and not filter_local
falsepositives:
  - Remote administration over VPN (allowlist VPN egress addresses)
  - Legitimate cloud/mobile app integrations
level: medium
---
title: Domoticz Listening on Internet-Facing Interface
id: 6b1d8e44-7c2a-4f5b-9e3d-0a8c6f1e4d72
status: experimental
description: Identifies the Domoticz web server bound to non-loopback interfaces, indicating potential network exposure of a component receiving important security fixes.
references:
  - https://linuxsecurity.com/advisories/fedora/fedora-44-domoticz-2026-471f1abb1f
  - https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/04/06
tags:
  - attack.exploitation_of_public_facing_application
  - attack.t1190
logsource:
  category: network_connection
  product: linux
detection:
  selection:
    Image|endswith: '/domoticz'
    DestinationPort:
      - 8080
      - 443
      - 6144
  filter_loopback:
    DestinationIp|startswith:
      - '127.'
      - '::1'
  condition: selection and not filter_loopback
falsepositives:
  - Intended LAN access to the home automation dashboard
level: low
KQL — Microsoft Sentinel / Defender
// Hunt for Domoticz exploitation indicators in Microsoft Sentinel
// Requires Syslog/CEF ingestion from Linux hosts (e.g., via auditd, osquery, or Sysmon for Linux)

// Part 1: Domoticz process spawning suspicious child processes
Syslog
| where TimeGenerated > ago(7d)
| where ProcessName =~ "domoticz" or SyslogMessage has "domoticz"
| where SyslogMessage has_any ("/bin/bash", "/bin/sh", "/bin/dash", "python3", "/usr/bin/perl", "/usr/bin/curl", "/usr/bin/wget", "/bin/nc ", "ncat", "socat")
| project TimeGenerated, Computer, ProcessName, SyslogMessage, HostIP
| order by TimeGenerated desc
;

// Part 2: External IPs reaching the Domoticz web/API port (ingested via firewall/netflow CEF logs)
CommonSecurityLog
| where TimeGenerated > ago(7d)
| where DestinationPort in (8080, 6144)
| where not (SourceIP startswith "10." or SourceIP startswith "192.168." or SourceIP startswith "172.16.")
| summarize ConnectionCount = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated)
    by SourceIP, DestinationIP, DestinationPort
| order by ConnectionCount desc
;

// Part 3: API endpoint probing against json.htm with sensitive command types
CommonSecurityLog
| where TimeGenerated > ago(7d)
| where RequestURL has "json.htm"
| where RequestURL has_any ("type=command", "type=users", "type=devices", "type=camera")
| summarize Requests = count(), UniqueURIs = dcount(RequestURL)
    by SourceIP, DestinationIP
| where Requests > 20
| order by Requests desc
VQL — Velociraptor
-- Velociraptor artifact: audit Domoticz host for compromise indicators
-- Scope: process tree, listening sockets, suspicious files near Domoticz dirs, and recent service changes

-- Part 1: Is domoticz running, and what are its children?
SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ 'domoticz'
   OR CommandLine =~ 'domoticz'

-- Part 2: Identify the domoticz PID's child processes (re-run scoped per host after Part 1)
SELECT Pid, Ppid, Name, CommandLine, Exe, CreateTime
FROM pslist()
WHERE Exe =~ '(bash|sh|dash|python|perl|curl|wget|nc|ncat|socat)$'

-- Part 3: Confirm network exposure of the web server
SELECT Pid, Name, Status, Laddr, Raddr
FROM netstat()
WHERE Name =~ 'domoticz'
   OR Laddr =~ ':8080'

-- Part 4: Look for dropped files or web shells in/near Domoticz web root and scripts
SELECT FullPath, Size, Mtime, Ctime
FROM glob(globs=[
  '/opt/domoticz/www/**/*.php',
  '/opt/domoticz/www/**/*.sh',
  '/usr/share/domoticz/www/**/*.sh',
  '/opt/domoticz/scripts/**'
])
ORDER BY Mtime DESC

-- Part 5: Verify installed package version (Fedora/RPM)
SELECT * FROM execve(argv=['rpm', '-q', 'domoticz', '--queryformat', '%{VERSION}
'])
Bash / Shell
#!/bin/bash
# Domoticz 2026.3 security patch verification & exposure audit (Fedora 44)
# Run as root or via sudo on the Domoticz host.

echo "=== [1] Current domoticz package version ==="
INSTALLED=$(rpm -q --queryformat '%{VERSION}' domoticz 2>/dev/null)
echo "Installed version: ${INSTALLED:-NOT INSTALLED}"
if [ "$INSTALLED" == "2026.3" ]; then
  echo "[OK] Patched version 2026.3 present."
else
  echo "[ACTION REQUIRED] Version is not 2026.3 — apply update now:"
  echo "    sudo dnf upgrade --refresh --advisory FEDORA-2026-471f1abb1f"
fi

echo ""
echo "=== [2] Web server exposure check (listening interfaces) ==="
ss -lntp | grep -Ei 'domoticz|:8080|:6144' || echo "No domoticz listener found."

echo ""
echo "=== [3] Domoticz process child-process audit (should be empty) ==="
DOM_PID=$(pgrep -x domoticz | head -1)
if [ -n "$DOM_PID" ]; then
  ps --ppid "$DOM_PID" -o pid,comm,args
else
  echo "domoticz service not currently running."
fi

echo ""
echo "=== [4] Recent file modifications in web root (potential dropped payloads) ==="
find /opt/domoticz/www /usr/share/domoticz/www -type f -mtime -14 2>/dev/null | head -50

echo ""
echo "=== [5] Firewall check: is 8080 reachable from untrusted zones? ==="
firewall-cmd --list-all 2>/dev/null | grep -Ei '8080|domoticz' || echo "No explicit 8080 rule found — verify zone defaults."

echo ""
echo "=== [6] Restart service after patching ==="
echo "    sudo systemctl restart domoticz"

Remediation

  1. Apply the update immediately on all Fedora 44 systems running Domoticz:
    • sudo dnf upgrade --refresh --advisory FEDORA-2026-471f1abb1f
    • Verify with rpm -q domoticz — the installed version must be 2026.3.
    • Restart the service: sudo systemctl restart domoticz.
  2. Remove internet exposure. The Domoticz web server (default port 8080, SSL on 443/6144) should never be reachable from the public internet. Audit NAT/port-forwarding rules on perimeter routers and firewalls; if remote access is required, place the panel behind a VPN or an authenticated reverse proxy with TLS.
  3. Enforce authentication and HTTPS. Confirm the Domoticz web server has login protection enabled (Settings → Website Security), use strong credentials, and enable SSL rather than serving the panel over plaintext HTTP where session tokens can be sniffed.
  4. Segment the host. Place home automation/IoT systems on an isolated VLAN. A compromised Domoticz host should not be able to reach workstations, servers, or domain infrastructure.
  5. Restrict the service account. Run Domoticz under a dedicated low-privilege user (not root), and audit what its automation scripts can execute — web panel compromise plus permissive scripting equals trivial command execution.
  6. Hunt before you patch. Because the flaw predates this advisory, review web/API access logs for the last 30–90 days for anomalous requests to /json.htm endpoints, unexpected child processes of the domoticz service, and outbound connections from the host to unfamiliar destinations.
  7. Track the advisory. Monitor the Fedora update notice at https://linuxsecurity.com/advisories/fedora/fedora-44-domoticz-2026-471f1abb1f and upstream Domoticz release notes for follow-on details, including any CVE assignment.

There is no vendor workaround published for this fix — patching to 2026.3 is the remediation. Given that this component controls physical systems and sits on networks attackers increasingly treat as soft entry points, schedule the upgrade within your next maintenance window at the latest, and immediately if the instance is network-exposed.

Related Resources

Security Arsenal Alert Triage Automation AlertMonitor Platform Book a SOC Assessment platform Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.