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-5847-RM3G-23MW

GHSA-5847-RM3G-23MW: Authentication Rate Limit Bypass via IPv6-Mapped Address

Alon Barad
Alon Barad
Software Engineer

Mar 3, 2026·5 min read·14 visits

Executive Summary (TL;DR)

Attackers can bypass authentication rate limits by switching between IPv4 (1.2.3.4) and IPv4-mapped IPv6 (::ffff:1.2.3.4) addresses, effectively doubling their allowed brute-force attempts per IP.

A security vulnerability exists in the OpenClaw AI agent framework's hook authentication mechanism. The flaw permits attackers to bypass configured rate limits by exploiting inconsistent string representations of client IP addresses. By alternating between standard IPv4 notation and IPv4-mapped IPv6 notation, a single attacker can manipulate the rate limiter into allocating multiple attempt buckets for the same source, significantly weakening protection against brute-force credential attacks.

Vulnerability Overview

The OpenClaw framework implements a rate-limiting mechanism to protect its hook authentication endpoints from brute-force attacks. This system tracks authentication failures associated with client IP addresses and blocks access after a defined threshold is reached. The integrity of this protection relies on the system's ability to uniquely and consistently identify a client based on their network address.

The vulnerability, identified as GHSA-5847-RM3G-23MW, resides in the failure to canonicalize IP address strings before using them as lookup keys in the rate limit storage. OpenClaw accepts connections via Node.js sockets, which may report the remote address in different formats depending on the network stack configuration and the ingress method.

Specifically, the system treats the standard IPv4 representation (e.g., 192.168.1.1) and the IPv4-mapped IPv6 representation (e.g., ::ffff:192.168.1.1) as two distinct entities. This logical error creates a split-horizon view of the attacker, where a single physical source controls multiple virtual identities within the rate limiter's state, undermining the security policy intended to throttle excessive authentication attempts.

Root Cause Analysis

The root cause is an Input Validation vulnerability classified under CWE-307 (Improper Restriction of Excessive Authentication Attempts) and implied CWE-287 (Improper Authentication). The issue stems from the direct usage of the req.socket.remoteAddress property in Node.js as a cache key without normalization.

In dual-stack network environments, operating systems may represent IPv4 addresses embedded within IPv6 structures. These are known as IPv4-mapped IPv6 addresses, typically formatted with the prefix ::ffff:. While 1.2.3.4 and ::ffff:1.2.3.4 refer to the exact same host, they are distinct strings. The OpenClaw rate limiter utilized a Javascript Map or similar key-value store where keys are strictly typed strings.

Prior to the patch, the application logic retrieved the client IP and performed only a basic whitespace trim. It did not attempt to parse the IP or collapse mapped addresses into their canonical IPv4 form. Consequently, the rate limiter instantiated separate counters for each string variant. This behavior violates the principle that security controls must operate on canonical data representations to prevent evasion via encoding or formatting manipulation.

Code Analysis

The vulnerability existed in src/gateway/auth-rate-limit.ts where the client IP was extracted. The original code simply used the raw string provided by the socket interface.

Vulnerable Implementation:

// src/gateway/auth-rate-limit.ts (Pre-patch)
function normalizeIp(ip: string | undefined): string {
  // Flaw: Only trims whitespace; does not resolve mapped IPs
  return (ip ?? "").trim() || "unknown";
}

The patch addresses this by introducing a robust normalization step. The fix involves importing a resolveClientIp utility from a centralized networking module. This utility parses the address and converts IPv4-mapped IPv6 addresses back to their standard IPv4 notation before the rate limiter processes them.

Patched Implementation:

// src/gateway/auth-rate-limit.ts (Fixed in commit 3284d2eb)
import { isLoopbackAddress, resolveClientIp } from "./net.js";
 
export function normalizeRateLimitClientIp(ip: string | undefined): string {
  // Fix: Canonicalizes the IP using centralized logic
  return resolveClientIp({ remoteAddr: ip }) ?? "unknown";
}
 
// The rate limiter now uses the normalized output as the key
function normalizeIp(ip: string | undefined): string {
  return normalizeRateLimitClientIp(ip);
}

By ensuring that ::ffff:1.2.3.4 resolves to 1.2.3.4, the application guarantees that both request formats increment the same failure counter, enforcing the rate limit correctly.

Exploitation Methodology

An attacker can exploit this vulnerability to extend the window for a brute-force attack against hook authentication tokens. The exploitation process involves toggling the network formatting of the source IP address.

First, the attacker initiates a series of authentication requests using standard IPv4 connectivity. They continue until the server responds with HTTP 429 (Too Many Requests), indicating the rate limit bucket for the IPv4 address is exhausted. In a standard configuration, this might happen after 20 attempts.

Next, the attacker modifies their network client to force the usage of IPv6 mapping, or routes traffic through a local proxy that presents the address as ::ffff:<IP>. The OpenClaw server receives the connection, sees the new string representation, and checks its internal store. Finding no existing record for this "new" client, it initializes a fresh bucket with a full quota of attempts.

This effectively doubles the number of guesses an attacker can make per IP address per lockout window. While this does not grant infinite attempts, it significantly degrades the efficacy of the rate limiting mechanism, especially when combined with a distributed botnet where every node can now perform 2x the work.

Impact Assessment

The primary impact of GHSA-5847-RM3G-23MW is the weakening of the application's defense against credential stuffing and brute-force attacks. By circumventing the intended request limits, attackers increase the probability of successfully guessing valid authentication tokens for OpenClaw hooks.

Security Scope:

  • Confidentiality: Compromised authentication tokens could allow attackers to read sensitive data exposed via hooks.
  • Integrity: Attackers with valid tokens could trigger unauthorized actions or inject malicious data into the AI agent workflow.
  • Availability: While primarily an authentication bypass, the ability to send twice the volume of requests before blocking could marginally increase the load on the system during a DoS attempt, though this is secondary to the authentication risk.

The severity is classified as Medium to High depending on the sensitivity of the actions protected by the hook authentication. If the hooks allow for remote code execution or modification of critical agent behavior, the risk is elevated.

Official Patches

OpenClawOfficial fix commit implementing IP normalization

Fix Analysis (1)

Technical Appendix

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

Affected Systems

OpenClaw

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw
OpenClaw
< Feb 22 2026commit 3284d2eb
AttributeDetail
CWE IDCWE-307
Vulnerability TypeRate Limit Bypass
Attack VectorNetwork
SeverityMedium/High
PlatformNode.js
StatusPatched

MITRE ATT&CK Mapping

T1110Brute Force
Credential Access
T1078Valid Accounts
Defense Evasion
CWE-307
Improper Restriction of Excessive Authentication Attempts

Improper Restriction of Excessive Authentication Attempts

Known Exploits & Detection

GitHubRegression tests included in the fix commit demonstrate the bypass mechanism.

Vulnerability Timeline

Vulnerability reported by @aether-ai-agent
2026-02-22
Fix commit 3284d2eb pushed to main branch
2026-02-22
GHSA-5847-RM3G-23MW published
2026-02-22

References & Sources

  • [1]GitHub Advisory: GHSA-5847-RM3G-23MW
  • [2]OpenClaw Repository

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

•about 14 hours ago•GHSA-XF4V-W5X5-PV79
5.1

GHSA-XF4V-W5X5-PV79: CSV Formula Injection in Spree Customer Export

A CSV Formula Injection vulnerability (CWE-1236) exists in the Spree headless eCommerce platform within the customer export functionality. An unauthenticated attacker can register a customer profile containing malicious formula sequences in fields like the first name or last name. When an administrator exports the customer data to a CSV file and opens it in a spreadsheet application, the spreadsheet engine can interpret and execute these formulas, potentially leading to remote command execution on the administrator's workstation or out-of-band data exfiltration.

Alon Barad
Alon Barad
4 views•6 min read
•about 15 hours ago•CVE-2026-47694
5.4

CVE-2026-47694: Stored Cross-Site Scripting in WWBN AVideo Category Descriptions

A Stored Cross-Site Scripting (XSS) vulnerability exists in WWBN AVideo versions up to and including 29.0. Unsanitized category descriptions are stored in the database and subsequently rendered as raw HTML in the Gallery view plugin, allowing low-privileged authenticated users to execute arbitrary JavaScript in the browsers of visiting users.

Alon Barad
Alon Barad
6 views•7 min read
•about 15 hours ago•GHSA-JPVJ-WPMJ-H7RV
9.6

GHSA-JPVJ-WPMJ-H7RV: Supply Chain Compromise and Malicious Code Injection in @cap-js/openapi

A critical supply chain compromise was identified in the Node.js package @cap-js/openapi at version 1.4.1. An attacker gained unauthorized publishing access to the npm registry and distributed a backdoored release that harvests sensitive developer credentials, environment variables, and SSH keys. The malicious code then exfiltrates the collected data to external actor-controlled servers.

Amit Schendel
Amit Schendel
12 views•5 min read
•about 16 hours ago•CVE-2026-47696
7.1

CVE-2026-47696: Authenticated Wallet Credit Bypass in WWBN AVideo AuthorizeNet Plugin

An authenticated wallet credit bypass vulnerability exists in WWBN AVideo version 29.0 and earlier. The AuthorizeNet plugin includes an unfinished mockup endpoint, processPayment.json.php, which lacks actual transaction verification and hardcodes success. This allows any authenticated user to credit their wallet with arbitrary balances without making any payments.

Amit Schendel
Amit Schendel
4 views•5 min read
•about 16 hours ago•GHSA-8WHC-2WMV-WW35
8.8

GHSA-8whc-2wmv-ww35: Unauthenticated Stored DOM-based Cross-Site Scripting in WWBN AVideo YPTSocket Plugin

An unauthenticated stored DOM-based Cross-Site Scripting (DOM XSS) vulnerability in the YPTSocket plugin of WWBN AVideo (formerly YouPHPTube) allows remote attackers to execute arbitrary JavaScript within the session context of administrative users. Unsanitized metadata parameters supplied during the WebSocket handshake are persisted in an SQLite database and broadcast to connected users. The frontend application processes these parameters through an unsafe jQuery append sink, leading to silent, high-impact administrative context compromise.

Amit Schendel
Amit Schendel
6 views•7 min read
•about 17 hours ago•CVE-2026-47676
5.3

CVE-2026-47676: Inconsistent Path Parsing and Slicing in Hono Framework Sub-Application Mounting

A path parsing and normalization inconsistency vulnerability exists in the Hono web framework prior to version 4.12.21. When hosting sub-applications via the app.mount() routing interface, Hono calculates the routing path prefix length on a percent-decoded representation of the URI but executes the path-slicing offset on the raw, percent-encoded string. This discrepancy results in malformed request paths being dispatched to mounted sub-applications, potentially leading to route bypasses, route confusion, and application-level Denial of Service.

Alon Barad
Alon Barad
4 views•6 min read