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

CVE-2026-91836: OpenClaw ClawScan Comparison Vulnerability

CVE-2026-91836 is an incomplete comparison flaw in OpenClaw ClawScan Static Scanner that affects the static_scanner.go component. This vulnerability can be exploited locally. This article covers technical details, versions up to 0.1.6, and upgrade paths to 0.1.7.

Published:

CVE-2026-91836 Overview

CVE-2026-91836 affects OpenClaw ClawScan versions up to 0.1.6. The flaw resides in an unknown function within internal/runner/static_scanner.go, part of the Static Scanner component. The root issue is an incomplete comparison with missing factors, classified under [CWE-1023]. An attacker with local access and low privileges can trigger the weakness, though exploitation requires user interaction. A public exploit exists, and upstream has released version 0.1.7 with commit 9f6a6fbb9f1137345566d0ab44c73893dfe112fa to remediate the issue.

Critical Impact

Local attackers can influence Static Scanner results by bypassing skipped-path handling, causing scans to miss or misclassify files such as Python bytecode payloads.

Affected Products

  • OpenClaw ClawScan versions up to and including 0.1.6
  • Component: Static Scanner (internal/runner/static_scanner.go)
  • Fixed release: OpenClaw ClawScan 0.1.7

Discovery Timeline

  • 2026-09-15 - CVE-2026-91836 published to NVD
  • 2026-09-16 - Last updated in NVD database

Technical Details for CVE-2026-91836

Vulnerability Analysis

OpenClaw ClawScan is a static scanning tool written in Go that inspects filesystem targets for security-relevant patterns. The vulnerability lies in the Static Scanner's path-skipping logic. The runner used a comparison function that did not account for all relevant factors when deciding whether a directory or file should be skipped. As a result, files that should have been scanned were omitted, and Python bytecode artifacts were not evaluated. An attacker with local access to a scan target can craft directory or file layouts that exploit this incomplete comparison to evade detection. Because the flaw affects a security-scanning tool, its impact is limited integrity loss in scan results rather than direct code execution.

Root Cause

The defect maps to [CWE-1023] Incomplete Comparison with Missing Factors. The pre-patch code used shouldSkipTargetPath for directory entries, which lacked the additional context needed to distinguish skipped file names from skipped directories. This allowed evasive layouts, and the scanner also lacked rules for Python bytecode (.pyc) files that can execute without reviewable source.

Attack Vector

Exploitation is local and requires user interaction, such as an operator running a scan across attacker-influenced content. The public patch reference confirms the fix is available and the exploit is public. See the ClawScan issue #40 and Pull Request #41 for reproduction context.

go
// Pre-patch (vulnerable): incomplete comparison for skipped entries
if entry.IsDir() {
    if shouldSkipTargetPath(target, path) {
        precomputedOmissions = append(precomputedOmissions, targetFileOmission{path: path, reason: "skipped path"})
        return filepath.SkipDir
    }
}

// Post-patch: directory-specific check plus new detection rules
if entry.IsDir() {
    if shouldSkipTargetDirectory(target, path) {
        precomputedOmissions = append(precomputedOmissions, targetFileOmission{path: path, reason: "skipped path"})
        return filepath.SkipDir
    }
}

// New static rules added in 0.1.7
{
    id:          "static.python_process_execution",
    title:       "Python process execution",
    severity:    "high",
    description: "Looks for Python APIs that execute shell commands or child processes.",
    pattern:     regexp.MustCompile(`(?i)\b(?:os\s*\.\s*system|subprocess\s*\.\s*(?:call|check_call|check_output|popen|run))\s*\(`),
},
{
    id:          "static.python_bytecode",
    title:       "Packaged Python bytecode",
    severity:    "high",
    description: "Flags precompiled Python bytecode that can execute without reviewable source.",
},
// Source: https://github.com/openclaw/clawscan/commit/9f6a6fbb9f1137345566d0ab44c73893dfe112fa

Detection Methods for CVE-2026-91836

Indicators of Compromise

  • Presence of ClawScan binaries or modules from releases prior to 0.1.7 on developer or CI hosts.
  • Scan output containing "skipped path" omission reasons for directories that should have been analyzed.
  • Unreviewed Python bytecode (.pyc) artifacts inside code repositories or scan targets.

Detection Strategies

  • Inventory ClawScan installations and compare reported version strings against fixed release 0.1.7.
  • Diff historical scan reports against fresh scans performed with the patched version to reveal previously omitted files.
  • Track Go module dependencies to identify projects vendoring github.com/openclaw/clawscan at vulnerable versions.

Monitoring Recommendations

  • Monitor CI/CD pipelines for ClawScan version drift and enforce a minimum-version policy.
  • Alert on scans that finish with unusually high skipped path omission counts.
  • Log and review scan runs that process directories containing .pyc files without corresponding .py sources.

How to Mitigate CVE-2026-91836

Immediate Actions Required

  • Upgrade ClawScan to version 0.1.7 or later on all hosts and CI runners.
  • Rerun static scans on projects previously scanned with 0.1.6 or older to catch missed findings.
  • Restrict local access to scan hosts so untrusted users cannot influence scan targets.

Patch Information

OpenClaw released ClawScan 0.1.7 containing commit 9f6a6fbb9f1137345566d0ab44c73893dfe112fa, which replaces shouldSkipTargetPath with shouldSkipTargetDirectory for directory entries and adds new detection rules for Python process execution and packaged Python bytecode. See the ClawScan v0.1.7 release notes and the patch commit for full details.

Workarounds

  • If upgrading is delayed, review skip-list configurations and remove entries that could shadow directories containing sensitive files.
  • Run scans as an unprivileged user in an isolated workspace to limit exposure from attacker-controlled layouts.
  • Add out-of-band checks for .pyc files in scan targets until the patched detection rules are in place.
bash
# Upgrade ClawScan to the fixed release
go install github.com/openclaw/clawscan/cmd/clawscan@v0.1.7

# Verify installed version
clawscan --version

# Rescan a target directory after upgrade
clawscan scan ./path/to/target

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.