CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-56F2-HVWG-5743

OpenClaw Open Door: SSRF in Your Personal AI Assistant

Alon Barad
Alon Barad
Software Engineer

Feb 17, 2026·6 min read·56 visits

Executive Summary (TL;DR)

OpenClaw's tools allowed unchecked URL fetching, enabling attackers to hit internal networks and cloud metadata services (SSRF). Patched in v2026.2.2 with a custom fetch guard that implements DNS pinning and IP blocklisting.

OpenClaw, a TypeScript-based personal AI assistant designed to integrate with various tools and LLM providers, contained a critical Server-Side Request Forgery (SSRF) vulnerability. The flaw resided in how the application's tools—specifically the Image Tool and Web Fetch Tool—handled remote resource retrieval. By failing to validate destination IP addresses or enforce egress filtering, the application allowed attackers to coerce the server into making requests to arbitrary internal endpoints. This could lead to the exposure of sensitive cloud metadata (AWS/GCP), access to local services listening on loopback interfaces, or network scanning behind the firewall.

The Hook: Your AI is a Double Agent

We all love the idea of an autonomous AI assistant. A digital butler that can browse the web, read documentation, and download images for us. It feels like the future. But when you give a piece of software the ability to make HTTP requests on your behalf, you are effectively handing it a web browser running inside your private network perimeter. If you don't put a leash on that browser, it doesn't just work for you—it works for anyone who can talk to it.

OpenClaw is exactly that: a TypeScript-based AI assistant that integrates with tools like Deepgram, OpenAI, and Google. It features an "Image Tool" and a "Web Fetch Tool" designed to grab content from the internet. The problem? It didn't distinguish between "the internet" and "your internal network."

This vulnerability is a classic tale of implicit trust. The developers assumed that if a user (or an autonomous agent) asked to fetch a URL, they meant a public website. They didn't anticipate that an attacker might ask the AI to fetch http://localhost:8080/admin or http://169.254.169.254/latest/meta-data/. This is SSRF 101: turning the server into a proxy for the attacker.

The Flaw: The Naivety of Fetch

The root cause here is deceptively simple: the use of a standard HTTP client without egress filtering. In the JavaScript/TypeScript ecosystem, fetch (or libraries like undici and axios) is designed to be helpful. You give it a URL, and it handles DNS resolution, connection establishment, and redirects automatically. For a developer, this is great. For a security engineer, this is a nightmare.

Prior to the fix, OpenClaw's tools effectively did this:

// The vulnerable logic (simplified)
async function fetchImage(url: string) {
  const response = await fetch(url);
  return await response.blob();
}

There were no checks on where url actually pointed. If you passed http://google.com, it worked. If you passed http://127.0.0.1:22, it might hang or error out, revealing the port status. If you passed a cloud metadata URL, it would happily return the credentials. The application was checking the inputs (maybe ensuring it looked like a string), but it wasn't checking the destination.

The Code: Implementing the Guard

The fix, implemented primarily by Peter Steinberger in commits 81c68f582d4a9a20d9cca9f367d2da9edc5a65ae and 9bd64c8a1f91dda602afc1d5246a2ff2be164647, is a masterclass in defensive programming against SSRF. They didn't just add a regex to block "localhost". They built a dedicated fetchWithSsrFGuard utility.

Here is the logic flow of the new guard:

Key technical components of the fix:

  1. DNS Pinning: To prevent DNS Rebinding attacks (where a domain resolves to a public IP during the check but a private IP during the fetch), the fix resolves the IP first using resolvePinnedHostname. It then creates a custom undici dispatcher that forces the connection to that specific, validated IP.

  2. Strict IP Blocklisting: The resolved IP is checked against a comprehensive list of restricted ranges, including RFC 1918 (Private), RFC 4193 (Unique Local), and IPv4-mapped IPv6 addresses. Explicit blocks were added for metadata.google.internal.

  3. Manual Redirect Handling: The fetch option redirect: 'manual' is used. The code manually processes Location headers, re-validating the new target against the full SSRF policy before following. This prevents open redirect bypasses.

The Exploit: Knocking on the Metadata Door

Let's assume we are attacking a version of OpenClaw running on an AWS EC2 instance. Our goal is to steal the IAM role credentials attached to the instance.

We don't need a complex binary exploit. We just need to speak the AI's language. We send a tool call request (or prompt the agent to generate one) targeting the Image Tool.

The Payload:

{
  "tool": "image_tool",
  "parameters": {
    "url": "http://169.254.169.254/latest/meta-data/iam/security-credentials/"
  }
}

The Execution Flow:

  1. The Image Tool receives the URL.
  2. It attempts to fetch the resource, expecting a JPG or PNG.
  3. The request goes to the AWS Instance Metadata Service (IMDSv1).
  4. IMDS replies with the name of the IAM role (e.g., production-role).
  5. The attacker sends a second request: .../security-credentials/production-role.
  6. The tool fetches the JSON blob containing AccessKeyId, SecretAccessKey, and Token.

Even if the tool errors out because "this JSON isn't an image," the error message in the logs or the agent's context window often includes the "invalid" content—giving the attacker exactly what they wanted.

The Impact: Clouds Rain Shells

The impact of SSRF in a cloud-native AI assistant cannot be overstated. It is rarely just about port scanning.

  1. Cloud Account Takeover: As demonstrated above, accessing the instance metadata service often leads to full compromise of the cloud environment. If the attached role has S3 access, the attacker has your data. If it has EC2 admin rights, they own your infrastructure.

  2. Internal Network Reconnaissance: OpenClaw often runs behind firewalls. An attacker can use it to map out internal microservices, finding unauthenticated Redis instances, Elasticsearch clusters, or internal admin panels that were never meant to see the public internet.

  3. Localhost Exposure: Developers frequently run these assistants locally. An SSRF here could access local development servers (e.g., localhost:3000) or the Docker API, potentially allowing the attacker to escape the container or execute code on the developer's machine.

The Fix: Hardening the Perimeter

The OpenClaw team, specifically via the work in version v2026.2.14, has deployed a defense-in-depth fix. They realized that regex filters on URLs are insufficient because 127.1 and 2130706433 are both valid ways to say 127.0.0.1.

Mitigation Strategy:

  • Upgrade Immediately: Users must upgrade to v2026.2.14 or later. The initial fix in v2026.2.2 was good, but the subsequent hardening closed edge cases involving IPv6 mapping.
  • Network Segmentation: Even with the patch, run your AI assistants with the principle of least privilege. Do not give the container/VM access to sensitive internal networks if it doesn't need it.
  • IMDSv2: Enforce IMDSv2 on AWS. This requires a session token header (X-aws-ec2-metadata-token) which a standard fetch request (controlled by an attacker via URL only) cannot easily spoof.

Official Patches

OpenClawInitial SSRF Guard Implementation

Fix Analysis (2)

Technical Appendix

CVSS Score
8.6/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N

Affected Systems

OpenClaw AI AssistantOpenClaw Image ToolOpenClaw Web Fetch ToolOpenClaw Skill Installer

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw
OpenClaw
< 2026.2.22026.2.2
AttributeDetail
CWE IDCWE-918
Attack VectorNetwork
CVSS8.6 (High)
ImpactInformation Disclosure / Internal Access
Fix ComplexityModerate (Requires Logic Change)
Exploit StatusPoC Available

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1552.005Unsecured Credentials: Cloud Instance Metadata API
Credential Access
CWE-918
Server-Side Request Forgery (SSRF)

Server-Side Request Forgery (SSRF) occurs when a web application is trick into sending a request to a URL that is not intended to be accessible to the attacker.

Known Exploits & Detection

Internal AnalysisExploit involves crafting a JSON tool call with a private IP address.

Vulnerability Timeline

Initial SSRF fix committed (v2026.2.2)
2024-05-20
Hardening against IPv6 bypasses (v2026.2.14)
2024-05-22

References & Sources

  • [1]GitHub Advisory GHSA-56f2-hvwg-5743
  • [2]OWASP SSRF Prevention Cheat Sheet

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•6 days ago•CVE-2026-9354
6.9

CVE-2026-9354: Arbitrary Mass Mention Bypass in NousResearch hermes-agent Slack and Mattermost Adapters

A vulnerability in the Slack and Mattermost platform adapters for NousResearch hermes-agent permits an unauthenticated remote attacker to execute arbitrary mass mentions. By leveraging prompt injection, an attacker can bypass output sanitization logic and trigger workspace-wide notification exhaustion.

Alon Barad
Alon Barad
35 views•6 min read
•7 days ago•CVE-2026-9306
6.3

CVE-2026-9306: Unauthenticated Insecure Direct Object Reference (IDOR) in QuantumNous new-api Midjourney Relay

CVE-2026-9306 is a critical unauthenticated Insecure Direct Object Reference (IDOR) vulnerability located in the QuantumNous new-api application, affecting versions up to and including 0.12.1. The flaw is caused by improper middleware ordering combined with a lack of object-level authorization checks. This allows remote, unauthenticated attackers to retrieve sensitive Midjourney images belonging to other users by supplying a valid task identifier.

Amit Schendel
Amit Schendel
13 views•5 min read
•8 days ago•GHSA-GGXF-37HM-9WQF
6.5

GHSA-GGXF-37HM-9WQF: Session Leakage via Unsafe Challenge Path Parsing in instagrapi

The instagrapi library prior to version 2.6.9 contains an improper input validation vulnerability within its challenge handling mechanism. Maliciously crafted server responses can manipulate the client into forwarding session cookies and credentials to an external attacker-controlled domain.

Amit Schendel
Amit Schendel
21 views•6 min read
•8 days ago•GHSA-QQQM-5547-774X
9.1

GHSA-QQQM-5547-774X: Unauthenticated Path Traversal in FileBrowser Quantum PATCH Handler

GHSA-QQQM-5547-774X is a critical path traversal vulnerability in the FileBrowser Quantum application, specifically within the Go backend package. The vulnerability resides in the HTTP handler responsible for processing bulk file modifications via the public API. Unauthenticated attackers can exploit an order-of-operations flaw in the path sanitization logic to bypass intended directory restrictions. This allows adversaries to arbitrarily read, move, and overwrite files on the underlying filesystem by supplying specially crafted HTTP PATCH requests.

Alon Barad
Alon Barad
9 views•6 min read
•8 days ago•CVE-2026-8723
5.3

CVE-2026-8723: Synchronous Denial of Service in qs npm Package via TypeError

The qs query string parsing and serialization library for Node.js is vulnerable to a synchronous Denial of Service (DoS) attack. The vulnerability manifests as a process-terminating TypeError when processing arrays with null or undefined elements under specific configuration parameters.

Amit Schendel
Amit Schendel
37 views•7 min read
•8 days ago•GHSA-7M8F-HGJQ-8GC9
7.5

GHSA-7M8F-HGJQ-8GC9: Pre-Authentication Denial of Service via Insecure Deserialization Order in aiosend

The aiosend library prior to version 3.0.6 contains a pre-authentication Denial of Service (DoS) vulnerability in its webhook handling mechanism. The software processes and deserializes incoming JSON payloads before verifying the cryptographic signature, allowing unauthenticated attackers to exhaust server CPU and memory resources by sending large, complex payloads.

Amit Schendel
Amit Schendel
4 views•6 min read