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

CVE-2026-100549: OpenClaw Path Traversal Vulnerability

CVE-2026-100549 is a path traversal flaw in OpenClaw QQBot that allows attackers to write files outside intended directories through double-decoded filenames. This post explains its impact, affected versions, and mitigation steps.

Published:

CVE-2026-100549 Overview

CVE-2026-100549 is a path traversal vulnerability [CWE-22] in OpenClaw versions before 2026.8.1. The flaw exists in the QQBot voice attachment handling code, where filenames are decoded twice. Encoded traversal sequences such as %252e%252e%252f survive the first sanitization pass and resurface as ../ after the second decode. Attackers with low privileges can supply crafted voice attachments to write files outside the staging directory into any location writable by the OpenClaw process.

Critical Impact

Authenticated attackers can write arbitrary files to process-writable paths, enabling configuration tampering, log poisoning, or persistence on affected OpenClaw deployments.

Affected Products

  • OpenClaw versions prior to 2026.8.1
  • OpenClaw QQBot voice attachment handler component
  • Deployments exposing the QQBot interface to untrusted input

Discovery Timeline

  • 2026-09-26 - CVE-2026-100549 published to NVD
  • 2026-09-29 - Last updated in NVD database

Technical Details for CVE-2026-100549

Vulnerability Analysis

The vulnerability occurs in the OpenClaw QQBot voice attachment pipeline. Incoming filenames are URL-decoded, sanitized against path traversal sequences, and then decoded again before use. The second decode reintroduces traversal segments that the sanitizer already removed. An attacker who submits a double-encoded filename bypasses the filter entirely.

This is a classic double-decoding flaw mapped to [CWE-22]. Exploitation requires low-privileged access to the bot interface and no user interaction. The resulting write primitive is constrained to directories writable by the OpenClaw process, limiting direct impact on operating system integrity.

Root Cause

The root cause is improper ordering of decoding and sanitization. The filename handler calls a URL decode routine, applies traversal filtering, then performs a second decode when staging the file to disk. Payloads such as ..%252f..%252fetc%252fconfig pass filtering as ..%2f..%2fetc%2fconfig and resolve to ../../etc/config on write.

Attack Vector

The attack vector is network-based through the QQBot interface. An attacker with permission to send voice messages crafts an attachment whose filename contains double-URL-encoded traversal segments. When OpenClaw processes the attachment, the decoded path escapes the staging directory. The attacker can overwrite application configuration files, drop files into log directories, or stage artifacts for later execution by other components. See the GitHub Security Advisory and the VulnCheck Advisory on Path Traversal for technical details.

Detection Methods for CVE-2026-100549

Indicators of Compromise

  • Voice attachment filenames containing double-encoded sequences such as %252e%252e%252f, %252f, or %255c
  • Files written outside the QQBot voice staging directory with timestamps matching bot activity
  • Unexpected modifications to OpenClaw configuration, plugin, or log directories
  • QQBot request logs showing attachment filenames with percent-encoded %25 prefixes

Detection Strategies

  • Inspect QQBot request logs for filenames containing %25 followed by hexadecimal pairs that resolve to . or / characters
  • Compare canonicalized file write paths against the configured staging directory and alert on any deviation
  • Enable file integrity monitoring on OpenClaw configuration, plugin, and runtime directories

Monitoring Recommendations

  • Log all filename inputs to the QQBot voice handler before and after each decode operation
  • Alert on process writes by the OpenClaw service account to paths outside its designated data directory
  • Correlate inbound QQBot attachment events with subsequent filesystem write activity for anomaly detection

How to Mitigate CVE-2026-100549

Immediate Actions Required

  • Upgrade OpenClaw to version 2026.8.1 or later, which resolves the double-decode flaw
  • Restrict QQBot access to trusted users and remove accounts that do not require voice attachment permissions
  • Audit the OpenClaw staging and configuration directories for unexpected files created before the upgrade

Patch Information

OpenClaw version 2026.8.1 contains the fix. Review the GitHub Security Advisory GHSA-rm45-4jx5-2927 for upgrade guidance and the full list of changes.

Workarounds

  • Place a reverse proxy or input filter in front of the QQBot endpoint to reject attachment filenames containing %25 sequences
  • Run the OpenClaw process under a dedicated low-privilege account with write access limited to the staging directory
  • Apply mandatory access controls such as AppArmor or SELinux to confine writes to approved paths
bash
# Configuration example: restrict OpenClaw writable paths via systemd
[Service]
User=openclaw
ReadWritePaths=/var/lib/openclaw/staging
ProtectSystem=strict
ProtectHome=true
NoNewPrivileges=true

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

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.