Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAccess /api/v1/provision endpoint
-
DeliverySubmit credential with shell metacharacters
-
ExploitTrigger getMqttPublishCommand or getGatewayDockerComposeFile
-
ExecutionInject payload into YAML or shell output
-
PersistOperator executes generated command
-
ImpactAchieve code injection on operator host
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The vulnerable code path is reached when getGatewayDockerComposeFile() processes a gateway host value containing control characters, or when getMqttPublishCommand() processes MQTT credential fields (clientId, userName, password, or credentialsId) containing shell metacharacters such as $, backtick, backslash, or double-quote. The CVSS PR:N metric indicates no authentication is required to reach the /api/v1/provision endpoint per the vector - however, ThingsBoard provisioning endpoints may in practice require a provisioning device key; authentication requirements should be verified against the specific ThingsBoard deployment configuration. User interaction (UI:P in CVSS 4.0, passive) is required: an authenticated operator must view or execute the generated MQTT publish command or Docker Compose file for injection to have impact beyond stored-data corruption. Exploitation is further limited to ThingsBoard instances where gateway Docker Compose generation or MQTT publish command display features are actively used and where operators execute server-generated shell output in a live terminal environment. |
| Impact | The CVSS 4.0 score of 2.3 accurately reflects low exploitability and limited impact: AC:H indicates high attack complexity, UI:P requires passive user interaction (an operator must view or execute the generated output), and all vulnerable-component impact metrics are rated Low (VC:L, VI:L, VA:L) with zero subsequent-scope impact (SC:N, SI:N, SA:N). EPSS of 0.04% at the 11th percentile and SSVC Exploitation: none confirm no observed active exploitation. SSVC also rates Automatable: no, consistent with the AC:H and UI:P constraints. The RCE and Code Injection tags present a potential overstatement: actual remote code execution would depend on whether the server processes the generated Docker Compose or shell commands back through an execution environment, which is not confirmed by available data. The realistic impact is likely injection into operator-facing output (a displayed shell command or downloadable YAML) rather than direct server-side RCE. The description explicitly states exploitation is difficult and the vendor has not yet responded to the responsible disclosure PR. This is not a prioritization candidate absent a specific deployment context where gateway Docker Compose generation or MQTT command display is actively used by operators. |
| Exploit ScenarioDerived | An attacker with access to the ThingsBoard provisioning API submits a device credential - such as a clientId containing $(malicious_command) or a backtick-delimited subshell - that gets embedded without escaping into a generated MQTT publish command displayed to an operator. When the operator copies and executes the displayed command in a terminal, the injected shell metacharacters trigger command substitution, achieving code execution on the operator's machine. No public proof-of-concept exists; high attack complexity and the requirement for operator interaction with the generated output constrain this to targeted rather than opportunistic attacks. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 08, 2026
Code injection in ThingsBoard 4.3.1.0 and 4.3.1.1 allows remote attackers to embed control characters and shell metacharacters into server-generated Docker Compose YAML files and MQTT publish commands via the /api/v1/provision endpoint's getGatewayDockerComposeFile and getMqttPublishCommand functions. Device credential fields - including clientId, userName, password, and credentialsId - are passed unsanitized into YAML and shell command construction, enabling injection of shell special characters such as $, backtick, and double-quote. No public exploit has been identified at time of analysis; SSVC rates exploitation as none and EPSS is 0.04%, though the RCE tag warrants scrutiny given the CVSS 4.0 score of only 2.3.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed. The fix is available as GitHub PR #15550 (https://github.com/thingsboard/thingsboard/pull/15550), which adds input validation rejecting control characters in device credentials and escapes shell metacharacters before command interpolation. However, as the ThingsBoard maintainers had not merged this PR at time of reporting, no official patched release version can be cited. Organizations should monitor the ThingsBoard GitHub repository (https://github.com/thingsboard/thingsboard/) for a release incorporating these changes and apply it promptly. As a compensating control, restrict network-level access to the /api/v1/provision endpoint to trusted IP ranges at the API gateway or firewall layer - note this will break unauthenticated device provisioning flows if those are in use. Additionally, enforce input validation on device credential fields (clientId, userName, password, credentialsId) at the ingestion boundary to reject control characters (0x00-0x1F, 0x7F) and shell metacharacters. If the gateway Docker Compose generation feature is not operationally required, blocking the specific endpoint sub-path reduces attack surface with no functional trade-off for deployments not using ThingsBoard IoT gateways.
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
ThingsBoard is an open-source IoT platform for device management and data processing. The vulnerable functions reside in DeviceConnectivityUtil.java: getGatewayDockerComposeFile() programmatically constructs a Docker Compose YAML file embedding the gateway host value and credential data, while getMqttPublishCommand() builds shell-formatted MQTT client commands using credential fields inserted inside double-quoted shell arguments. Neither function sanitized its inputs prior to the fix. The root cause is CWE-94 (Code Injection): control characters (0x00-0x1F, 0x7F) can corrupt YAML structure by introducing unexpected line breaks or null bytes, while shell metacharacters - $, backtick, backslash, double-quote - embedded in double-quoted shell arguments enable variable expansion or command substitution. The PR #15550 fix adds a CONTROL_CHARS regex pattern, a containsControlChars() validator that rejects malicious credentials at storage time, a stripControlChars() sanitizer for YAML output, and an escapeShellArg() function that escapes all four shell-dangerous characters before interpolation into command strings. The CPE string cpe:2.3:a:n/a:thingsboard:*:*:*:*:*:*:*:* uses an n/a vendor namespace, indicating incomplete NVD CPE assignment.
Know when Thingsboard 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
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Primary rating from Vendor (VulDB) · only source for this CVE.
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A weakness has been identified in ThingsBoard up to 4.3.1.1. Affected by this vulnerability is the function getGatewayDockerComposeFile of the file /api/v1/provision of the component YAML Handler. This manipulation causes code injection. It is possible to initiate the attack remotely. The attack's complexity is rated as high. The exploitation appears to be difficult. The project was informed of the problem early through a pull request but has not reacted yet.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
More in Thingsboard
View allThingsBoard before 3.5 allows Server-Side Template Injection if users are allowed to modify an email template, because A
ThingsBoard before v3.2 is vulnerable to Host header injection in password-reset emails. Rated high severity (CVSS 8.8),
An arbitrary file upload vulnerability in the Image Gallery of ThingsBoard Community, ThingsBoard Cloud and ThingsBoard
A vulnerability classified as problematic was found in ThingsBoard up to 3.6.2. Rated medium severity (CVSS 6.5), this v
A vulnerability has been found in ThingsBoard up to 3.7.0 and classified as problematic. Rated medium severity (CVSS 6.0
Cross Site Scripting (XSS) vulnerability in Things Board 3.4.1 allows remote attackers to escalate privilege via crafted
Cross site Scripting (XSS) in ThingsBoard IoT Platform through 3.3.4.1 via a crafted value being sent to the audit logs.
An issue was discovered in ThingsBoard 3.4.1, allows low privileged attackers (CUSTOMER_USER) to gain escalated privileg
Sandbox escape via prototype pollution in ThingsBoard (versions prior to v4.3.1.2) allows a TENANT_ADMIN-authenticated u
ThingsBoard 3.4.1 could allow a remote attacker to gain elevated privileges because hard-coded service credentials (usab
SVG-based server-side request forgery in ThingsBoard versions prior to 4.2.1 allows upload of crafted SVG files containi
A vulnerability was detected in ThingsBoard 4.1. Rated medium severity (CVSS 5.3), this vulnerability is remotely exploi
EUVD-2026-31957
GHSA-96jf-2v3w-hrrp
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB