---
id: "CVE-2026-75520"
kind: "vulnerability"
aliases: ["CVE-2026-75520"]
title: "Domoticz: low-privilege users can run installed Lua parser scripts"
severity: "medium"
cvss: 5.4
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["domoticz", "home-automation", "linux", "macos", "package", "raspberry-pi", "self-hosted", "windows"]
not_affected_if: ["auth-required", "single-admin-user"]
published_at: "2026-10-28T23:17:10+00:00"
first_seen_at: "2026-10-28T23:35:49+00:00"
updated_at: "2026-10-28T23:36:43+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-75520", "first_seen_at": "2026-10-28T23:35:49+00:00"}]
---

# Domoticz: low-privilege users can run installed Lua parser scripts

Domoticz home automation server lets any logged-in user, including low-privilege accounts, trigger an existing operator-installed Lua parser script through the udevices command. A missing role check and a path traversal gap let the attacker choose which installed script runs and pass it attacker-controlled input, but it does not give arbitrary code execution.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the Domoticz version with `domoticz -version` or the version shown in the web UI; versions before `2026.3` are affected.
- Look in the parser directory of the Domoticz install for Lua scripts; unknown whether any were installed by the operator.
- Review user accounts for low-privilege users who can log in to the web interface.

## Fix

- Upgrade Domoticz to `2026.3` or later.
- Until upgraded, restrict web interface access to trusted users only.

## Timeline

- 2026-10-28T23:35:49+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-75520

## From the sources

Domoticz is a free, open source home automation system for Linux, Windows, macOS, and Raspberry Pi. Prior to 2026.3, the `udevices` JSON command handler, `Cmd_UpdateDevices` in `main/WebServerCmds.cpp`, performed no `session.rights` check before invoking a Lua parser script, while its sibling command handlers gate access by role. A low-privilege authenticated user could trigger execution of an existing operator-installed Lua parser script with attacker-controlled input through the `GET /json.htm` endpoint with `type=command` and `param=udevices`. The `script` parameter also lacked a `..` path-traversal guard: `CLuaHandler::executeLuaScript` in `main/LuaHandler.cpp` constructed the filename from the parser directory and the supplied script name before passing it to `luaL_loadfile`. Execution is limited to already-installed valid Lua files; this is not arbitrary code execution, and the advisory states that file-write and upload paths require administrator privileges. This issue is addressed in version 2026.3.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
