CVE-2026-15318 Overview
CVE-2026-15318 affects Sipeed PicoClaw up to version 0.2.9. The flaw resides in the MQTT Channel Handler implemented in pkg/channels/mqtt/mqtt.go. Manipulation of the client_id argument leads to incorrect authorization [CWE-285], allowing a remote actor with low privileges to bypass intended access controls on MQTT channels.
A public exploit disclosure exists, and the reported GitHub issue was closed automatically due to inactivity, meaning the project has not published a formal patch. The vulnerability is exploitable across the network and does not require user interaction.
Critical Impact
Remote attackers can abuse client_id handling in the MQTT Channel Handler to bypass authorization checks and interact with restricted MQTT channels on Sipeed PicoClaw deployments.
Affected Products
- Sipeed PicoClaw versions up to and including 0.2.9
- Component: MQTT Channel Handler (pkg/channels/mqtt/mqtt.go)
- Deployments exposing PicoClaw MQTT endpoints to untrusted networks
Discovery Timeline
- 2026-07-10 - CVE-2026-15318 published to the National Vulnerability Database (NVD)
- 2026-07-10 - Last updated in NVD database
Technical Details for CVE-2026-15318
Vulnerability Analysis
Sipeed PicoClaw is a Go-based service that exposes device channels over MQTT. The MQTT Channel Handler defined in pkg/channels/mqtt/mqtt.go uses the client-supplied client_id value during authorization decisions. Because the identifier is attacker-controlled, an unauthenticated or low-privileged actor can craft values that pass authorization logic and access channels they should not reach.
The flaw maps to CWE-285: Improper Authorization. The Common Weakness Enumeration category applies when an application performs an authorization check but the check can be bypassed through input manipulation. Here, the channel handler trusts a value provided during MQTT connection setup rather than binding the identity to a verified session.
The VulDB entry and referenced GitHub issue confirm that a proof-of-concept has been published, though the maintainer closed the tracking issue without shipping a fix.
Root Cause
The root cause is trust placed in the client-supplied MQTT client_id as an authorization primitive. Client identifiers in MQTT are chosen by connecting clients and are not equivalent to authenticated identities. Using them as the basis for channel authorization allows a caller to impersonate another client and obtain access rights bound to that identifier.
Attack Vector
An attacker connects to the PicoClaw MQTT broker interface over the network with valid low-tier credentials or in configurations that permit broad connectivity. The attacker sets the MQTT client_id field to a value that the handler associates with a privileged channel. When the handler consults its authorization routine, the manipulated identifier satisfies the check, and the attacker gains subscribe or publish rights on the target channel.
Because MQTT traffic can be scripted with common libraries such as paho-mqtt or mosquitto_pub, weaponization requires only knowledge of the target client_id naming convention. The vulnerability mechanism is described in prose because no verified exploit code is republished here. See the GitHub Issue Discussion #3068 and the VulDB CVE-2026-15318 Entry for further technical detail.
Detection Methods for CVE-2026-15318
Indicators of Compromise
- MQTT CONNECT packets from unexpected source addresses using client_id values that match internal or privileged naming patterns
- Multiple MQTT sessions reusing the same client_id from different network origins within a short interval
- Subscriptions or publishes to restricted topics originating from client IDs not tied to enrolled devices
Detection Strategies
- Log every MQTT CONNECT event and correlate client_id, source IP, and authenticated user to spot mismatches
- Alert when a client_id associated with one device presents from a new network location without a corresponding provisioning event
- Baseline normal topic access patterns per client and flag deviations, especially subscribes to control or administrative topics
Monitoring Recommendations
- Enable broker-side audit logging on the PicoClaw MQTT handler and forward events to a central log platform
- Monitor pkg/channels/mqtt/mqtt.go process telemetry for unusual authorization decisions or repeated failed access attempts
- Track outbound actions triggered by MQTT commands to detect downstream abuse when authorization is bypassed
How to Mitigate CVE-2026-15318
Immediate Actions Required
- Restrict network exposure of PicoClaw MQTT endpoints to trusted management networks or VPN segments
- Enforce TLS mutual authentication so that the authenticated certificate identity governs authorization rather than client_id
- Rotate any credentials or shared secrets used by clients whose client_id values could be guessed by an attacker
- Review MQTT broker logs for prior connections that reused privileged client_id values from unexpected sources
Patch Information
No official patch has been published. The referenced GitHub issue was closed automatically due to inactivity. Operators should track the GitHub Repository for PicoClaw for future releases beyond version 0.2.9 and apply upstream fixes when available.
Workarounds
- Deploy an MQTT broker or proxy in front of PicoClaw that binds authorization to authenticated identity, not client_id
- Configure access control lists (ACLs) on the broker that restrict topic access by verified username or certificate, ignoring client_id
- Disable the MQTT Channel Handler entirely on deployments that do not require it until a fixed release is available
# Example mosquitto ACL enforcing identity-based topic access
# /etc/mosquitto/acl.conf
user device01
topic read picoclaw/device01/#
topic write picoclaw/device01/telemetry
user admin
topic readwrite picoclaw/#
# Require TLS client certificates in mosquitto.conf
# require_certificate true
# use_identity_as_username true
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

