Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-16084

CVE-2026-16084: Sipeed PicoClaw SSRF Vulnerability

CVE-2026-16084 is a server-side request forgery flaw in Sipeed PicoClaw affecting versions up to 0.2.9. Attackers can exploit the web_fetch function remotely. This article covers technical details, affected versions, and mitigation.

Updated:

CVE-2026-16084 Overview

CVE-2026-16084 is a Server-Side Request Forgery (SSRF) vulnerability in Sipeed PicoClaw versions up to 0.2.9. The flaw resides in the web_fetch function within pkg/tools/integration/web.go. Attackers can trigger the function to issue arbitrary HTTP requests from the server, including to internal network resources that would otherwise be inaccessible. Remote exploitation is possible without authentication, and a public exploit is available. The vulnerability is tracked as [CWE-918] Server-Side Request Forgery.

Critical Impact

Unauthenticated remote attackers can coerce PicoClaw to fetch internal resources, potentially exposing metadata services, internal APIs, and restricted network segments.

Affected Products

  • Sipeed PicoClaw versions up to and including 0.2.9
  • Vulnerable component: pkg/tools/integration/web.go (web_fetch function)
  • Fixed in commit c15aac21fe05ee103a470e1104bc891754e83392

Discovery Timeline

  • 2026-07-18 - CVE-2026-16084 published to NVD
  • 2026-07-21 - Last updated in NVD database

Technical Details for CVE-2026-16084

Vulnerability Analysis

The web_fetch function in pkg/tools/integration/web.go accepts URLs from client input and issues HTTP requests without adequate validation of the destination address. While the codebase includes an IsPrivateOrRestrictedIP helper to block private ranges, the guard fails to account for Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) interface identifiers. ISATAP addresses embed an IPv4 address in the lower 32 bits of an IPv6 address using the pattern 00:00:5e:fe or 02:00:5e:fe. An attacker who crafts an IPv6 URL following this pattern can encode a private IPv4 destination (for example, 169.254.169.254 or 127.0.0.1) that bypasses the private-address filter.

Root Cause

The root cause is incomplete SSRF filter logic. The pre-patch validator inspected 6to4 tunneling addresses but omitted checks for ISATAP-formatted IPv6 addresses. This allowed an embedded internal IPv4 to reach the outbound HTTP client after passing validation.

Attack Vector

A remote, unauthenticated attacker submits a request to the exposed web_fetch endpoint with an ISATAP-encoded IPv6 URL pointing at an internal resource. PicoClaw resolves and fetches the URL server-side, returning content from internal services, cloud instance metadata endpoints, or otherwise restricted infrastructure.

go
// Security patch adding ISATAP handling to IsPrivateOrRestrictedIP
// Source: https://github.com/sipeed/picoclaw/commit/c15aac21fe05ee103a470e1104bc891754e83392
 			client := net.IPv4(ip[12]^0xff, ip[13]^0xff, ip[14]^0xff, ip[15]^0xff)
 			return IsPrivateOrRestrictedIP(client)
 		}
+		// ISATAP interface identifiers embed an IPv4 address behind either
+		// 00:00:5e:fe or 02:00:5e:fe.
+		if ((ip[8] == 0x00 && ip[9] == 0x00) || (ip[8] == 0x02 && ip[9] == 0x00)) &&
+			ip[10] == 0x5e && ip[11] == 0xfe {
+			embedded := net.IPv4(ip[12], ip[13], ip[14], ip[15])
+			return IsPrivateOrRestrictedIP(embedded)
+		}
 	}
 
 	return false

The patch introduces detection for ISATAP-formatted addresses and recursively validates the embedded IPv4 against IsPrivateOrRestrictedIP.

Detection Methods for CVE-2026-16084

Indicators of Compromise

  • Outbound HTTP requests from PicoClaw hosts to internal IP ranges such as 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8, or link-local 169.254.0.0/16
  • Requests targeting cloud metadata endpoints (for example, http://169.254.169.254/) originating from PicoClaw processes
  • Inbound HTTP requests containing IPv6 URLs matching the ISATAP pattern *::0:5efe:* or *::200:5efe:*
  • Unusual DNS resolutions for hostnames that map to ISATAP IPv6 addresses

Detection Strategies

  • Inspect application logs of web_fetch calls for user-supplied URLs referencing IPv6 addresses with 5efe in the lower 32 bits
  • Correlate PicoClaw process network egress with destination classification to flag traffic to RFC1918, loopback, and link-local ranges
  • Deploy web application firewall rules that parse and normalize IPv6 URL parameters before allow-listing destinations

Monitoring Recommendations

  • Enable verbose HTTP client logging in PicoClaw and forward to a centralized analytics platform
  • Alert on any egress from PicoClaw workloads to cloud instance metadata service IPs
  • Track deployed PicoClaw versions across the fleet and flag hosts running 0.2.9 or earlier

How to Mitigate CVE-2026-16084

Immediate Actions Required

  • Upgrade PicoClaw to a release that includes patch commit c15aac21fe05ee103a470e1104bc891754e83392 from pull request #3143
  • Restrict network egress from PicoClaw hosts using firewall or security-group rules that deny traffic to internal ranges and metadata endpoints
  • Audit historical logs for suspicious web_fetch invocations referencing ISATAP-formatted or otherwise obfuscated IPv6 URLs

Patch Information

The upstream fix is available in the Sipeed PicoClaw repository. See the GitHub commit details, the pull request, and the issue discussion. Additional analysis is published in the VulDB CVE details.

Workarounds

  • Place PicoClaw behind an egress proxy that enforces allow-listed outbound destinations
  • Disable or gate access to the web_fetch integration until the patch is applied
  • Configure the host to prefer IPv4-only name resolution to reduce the ISATAP attack surface where IPv6 is not required
bash
# Example egress restriction using iptables to block metadata and private ranges
iptables -A OUTPUT -m owner --uid-owner picoclaw -d 169.254.169.254 -j REJECT
iptables -A OUTPUT -m owner --uid-owner picoclaw -d 10.0.0.0/8 -j REJECT
iptables -A OUTPUT -m owner --uid-owner picoclaw -d 172.16.0.0/12 -j REJECT
iptables -A OUTPUT -m owner --uid-owner picoclaw -d 192.168.0.0/16 -j REJECT
ip6tables -A OUTPUT -m owner --uid-owner picoclaw -d fe80::/10 -j REJECT

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.