Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to ThingLinks with low-privilege account
-
DeliveryPOST crafted Groovy to /groovyScriptTest/registerScript
-
ExploitUnsandboxed Groovy compilation and loading
-
ExecutionArbitrary code runs as service
-
ImpactServer-side command execution and host compromise
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires (1) a valid authenticated session on the ThingLinks platform (CVSS PR:L - a low-privilege account suffices) and (2) network reachability to the rule engine's /groovyScriptTest/registerScript endpoint, which accepts user-supplied Groovy script content and routes it into an unsandboxed Groovy compilation and loading flow. No user interaction, no non-default configuration, and no specific platform are needed - the vulnerable test/register flow is present by default in affected versions below 1.4.0. The single limiting factor is authentication: exploitation is gated on obtaining or abusing an authenticated account, so risk is highest where the ThingLinks management interface is exposed to untrusted or lower-trust authenticated users. Fixed in 1.4.0, which restricts this endpoint and updates the Groovy script handling path. |
| Impact | This is a genuine high-priority issue, not a high-CVSS-but-low-risk artifact. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C) describes network-reachable, low-complexity exploitation requiring only low-privilege authentication, and the mechanism - unsandboxed Groovy compilation and instantiation of attacker-supplied script content - is a direct, reliable path to server-side code execution rather than a theoretical memory-safety condition. The vuln.today Decision label is act_now, reinforcing urgency. Countervailing signals: no EPSS score is provided, this CVE is NOT listed in CISA KEV, and no verified working exploit code is supplied (the references are the GHSA advisory, the fix commit, and the v1.4.0 release tag - not a PoC). So there is no evidence of active exploitation or public weaponization at this time; the act_now rating rests on the directness and impact of the flaw plus low attack complexity rather than observed in-the-wild use. Note a data discrepancy: the primary CWE in the input is CWE-78 (OS Command Injection), but the GHSA advisory assigns CWE-78 and CWE-94 (Code Injection); the described mechanism - compiling and running arbitrary Groovy - is more precisely code injection (CWE-94) than OS command injection. The barrier to exploitation is authentication, so real-world risk concentrates on deployments exposing authenticated panels to untrusted or lower-trust users. |
| Exploit ScenarioDerived | An attacker who holds any authenticated account on a ThingLinks instance (prior to 1.4.0) sends a request to the rule engine's /groovyScriptTest/registerScript endpoint containing malicious Groovy code. Because the script is compiled and instantiated without sandboxing, the code runs on the server with the privileges of the ThingLinks service, yielding arbitrary command execution. No user interaction and no special timing is required, and attack complexity is low; no public exploit code was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Authenticated remote code execution in ThingLinks below 1.4.0 lets any low-privilege account submit attacker-controlled Groovy script content to the /groovyScriptTest/registerScript endpoint, which is compiled and instantiated without a sandbox and therefore executes server-side with the application's privileges. The flaw sits in the rule engine's Groovy script test/register flow and is fixed in 1.4.0; no public exploit code was identified at time of analysis, but the only prerequisites are a valid authenticated session and network reachability to the endpoint, so risk is highest where the management interface is exposed to untrusted or lower-trust users. This is a genuine high-priority issue rather than a high-score-but-low-risk artifact, and the vendor advisory plus upstream commit and 1.4.0 release tag are all publicly available.
RemediationAI
Vendor-released patch: ThingLinks 1.4.0 (release tag v1.4.0, https://github.com/mqttsnet/thinglinks/releases/tag/v1.4.0). Upgrading restricts the /groovyScriptTest/registerScript endpoint and updates the Groovy script handling path; the advisory states the fixed line uses the com.mqttsnet.basic dependency based on thinglinks-parent 1.0.8.3, so align parent and dependency versions with the 1.4.0 release rather than bumping only the rule module. Where upgrading cannot be done immediately, block /groovyScriptTest/registerScript at the gateway or reverse proxy and allow it only from trusted administrative networks, or remove/disable that script test-register route in the rule engine service - the trade-off is that rule authors lose the interactive Groovy test capability, and the unsandboxed compilation path remains in place until the upgrade. Because a low-privilege authenticated session is the sole prerequisite, also review who holds accounts on the platform and restrict access to the management interface from untrusted networks. Fix commit: https://github.com/mqttsnet/thinglinks/commit/311ee760dad798f48652722989fcea02349e13a3; advisory: https://github.com/mqttsnet/thinglinks/security/advisories/GHSA-9vph-5ccx-qp9v.
Affected VersionsENISA
Affected Packages
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
ThingLinks is a Java/Spring Cloud-based enterprise IoT platform, and its rule engine allows operators to embed Groovy scripts in rules. The /groovyScriptTest/registerScript endpoint was built to let rule authors test and register such scripts, but it forwards user-supplied content directly into an unsandboxed Groovy compilation and class-loading path - no allowlist, AST customizer, or restricted classloader is described in the available sources. Because compiled Groovy executes inside the application JVM with the service's own privileges, submitted code can read or alter platform data, spawn operating-system processes, and pivot across the microservice deployment, which is why the advisory classifies the weakness both as code injection (CWE-94) and as command injection (CWE-78). The affected artifact is maven/com.mqttsnet.thinglinks:thinglinks-rule, vulnerable before 1.4.0; the referenced upstream commit 311ee760dad798f48652722989fcea02349e13a3 reworks rule-engine trigger and cache plumbing, while the advisory attributes the security fix to restricting this endpoint and moving to the fixed com.mqttsnet.basic dependency line based on thinglinks-parent 1.0.8.3. The assessed vector keeps scope unchanged (S:U) with high confidentiality, integrity and availability impact, and the trigger is described only as script content reaching the compilation/instantiation flow - the sources do not detail any further preconditions beyond authentication.
Know when Thinglinks 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
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Network-reachable endpoint, low complexity, requires a low-privilege authenticated account (PR:L); code executes as the vulnerable service itself so scope is Unchanged, with full C/I/A loss on that host.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
ThingLinks is an enterprise IoT platform. Prior to 1.4.0, the /groovyScriptTest/registerScript endpoint accepts user-supplied Groovy script content and passes it to an unsandboxed Groovy compilation and loading flow. An authenticated attacker can provide code that is compiled and instantiated on the server, resulting in arbitrary server-side code execution. The issue affects the rule engine's Groovy script test/register flow. This issue is fixed in version 1.4.0.
Technical POC Analysis
Primary assigned CWE: CWE-78, OS Command Injection.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A critical vulnerability in ThingLinks (versions below 1.4.0) allows authenticated low-privilege users to execute arbitrary code on the server, potentially compromising the entire application and its data. This poses a significant risk to organizations using the product, especially if the management interface is accessible to untrusted users or networks.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
EUVD-2026-114455
NVD
CVE.org
EPSS
GitHub
Exploit-DB