CVE-2026-71235

Magistrala IoT Platform - Unrestricted Go/Lua Script Execution in Rules Engine

Published Aug 5, 2026 CVSS 3.1 · 8.8 High EPSS < 1% KEV · Not listed
Description
Magistrala's Rules Engine allows authenticated users to create rules with embedded Go or Lua scripts executed server-side when IoT messages arrive. The Lua script engine (re/lua.go) performs no input validation at all and preloads dangerous libraries: db (arbitrary database access), ioutil (file I/O), an HTTP client (SSRF), and filepath (traversal).

Analysis

AI-generated

Technical impact

Authenticated users can create rules that embed Go or Lua scripts, which Magistrala executes server‑side when IoT messages arrive. The Lua script engine performs no input validation and preloads dangerous libraries: db for arbitrary database access, ioutil for file input/output, an HTTP client that enables SSRF, and filepath that allows directory traversal. Because the scripts run with server privileges, an attacker can execute arbitrary code, read or modify files, access databases, or reach internal services, leading to compromise of confidentiality, integrity, and availability.

Affected Systems

The vulnerability affects Magistrala, the IoT platform provided by absmach. No specific version information is supplied in the CVE, so any deployment that includes the described Rules Engine should be considered potentially vulnerable unless the vendor confirms that the issue has been resolved in the release in use.

Risk and Exploitability

With a CVSS score of 8.8 the flaw is categorized as High. An attacker only needs to be an authenticated, low‑privileged user to craft a rule that contains malicious code; once a message triggers the rule the code executes with the server’s privileges. The EPSS score of 0.00288 (< 1%) and the absence of a KEV listing do not reduce the severity, and the attack path is straightforward, indicating a high likelihood of exploitation in an environment where the Rules Engine is enabled.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Acquire and apply the latest patch from absmach that restricts or disables user‑provided script execution in the Rules Engine.
  • Restrict rule‑creation privileges to trusted administrators only, removing low‑privileged user access to the interface as an immediate measure.
  • Implement network segmentation or firewall rules to block outbound traffic from the Rules Engine to internal microservices, mitigating possible SSRF attacks.

Generated by OpenCVE AI on August 10, 2026 at 21:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Description Magistrala's Rules Engine allows authenticated users to create rules with embedded Go or Lua scripts executed server-side when IoT messages arrive. The Go script engine (re/golang.go) runs scripts through the Yaegi interpreter with stdlib.Symbols, exposing the full Go standard library (including os and net/http) with validation limited to a regex blocking goroutines and panic() calls; dangerous functions such as os.ReadFile, os.WriteFile, os.Remove, and os.Environ remain fully accessible. The Lua script engine (re/lua.go) performs no input validation at all and preloads dangerous libraries: db (arbitrary database access), ioutil (file I/O), an HTTP client (SSRF), and filepath (traversal). An authenticated low-privileged user can achieve arbitrary file read/write, environment variable leakage, database access, and SSRF against internal microservices. Magistrala's Rules Engine allows authenticated users to create rules with embedded Go or Lua scripts executed server-side when IoT messages arrive. The Lua script engine (re/lua.go) performs no input validation at all and preloads dangerous libraries: db (arbitrary database access), ioutil (file I/O), an HTTP client (SSRF), and filepath (traversal).
Type Values Removed Values Added
Title Magistrala IoT Platform: Unrestricted Go/Lua Script Execution in Rules Engine Magistrala IoT Platform - Unrestricted Go/Lua Script Execution in Rules Engine
Type Values Removed Values Added
First Time appeared Absmach
Absmach magistrala
Vendors & Products Absmach
Absmach magistrala
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.9, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

Type Values Removed Values Added
Description Magistrala's Rules Engine allows authenticated users to create rules with embedded Go or Lua scripts executed server-side when IoT messages arrive. The Go script engine (re/golang.go) runs scripts through the Yaegi interpreter with stdlib.Symbols, exposing the full Go standard library (including os and net/http) with validation limited to a regex blocking goroutines and panic() calls; dangerous functions such as os.ReadFile, os.WriteFile, os.Remove, and os.Environ remain fully accessible. The Lua script engine (re/lua.go) performs no input validation at all and preloads dangerous libraries: db (arbitrary database access), ioutil (file I/O), an HTTP client (SSRF), and filepath (traversal). An authenticated low-privileged user can achieve arbitrary file read/write, environment variable leakage, database access, and SSRF against internal microservices.
Title Magistrala IoT Platform: Unrestricted Go/Lua Script Execution in Rules Engine
Weaknesses CWE-94
References
Metrics cvssV3_1

{'score': 9.9, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

Weaknesses
  • CWE-94

    Improper Control of Generation of Code ('Code Injection')

Sources

Status
PUBLISHED
Assigner
TuranSec
Published
Updated
Aug 10, 2026, 11:45 AM
Reserved
Aug 5, 2026, 10:53 AM
Status
Deferred
Published
Aug 5, 2026, 11:16 AM
Modified
Oct 24, 2026, 3:10 PM
Severity
Important
Public date
Aug 5, 2026, 10:56 AM