Security scanner for Clawdbot configuration and state.
Project description
Clawdbot Security Scanner
A comprehensive security auditing tool for Clawdbot installations. Includes detailed vulnerability report.
Quick start
To run the scanner use the commands below.
Option A: shell script
These scripts will install uv if it is missing.
- macOS / Linux:
./run-scanner.sh # or bash run-scanner.sh
- Windows (PowerShell):
.\run-scanner.ps1 # or (if execution policy blocks it) powershell -ExecutionPolicy Bypass -File .\run-scanner.ps1
Option B: run directly with uv
The scanner is Python-based and uses uv (it installs dependencies automatically).
- Install uv (one-time): https://astral.sh/uv
- Run the scanner:
./scan.py # Windows or non-executable script uv run scan.py
- Common options:
./scan.py --config ~/.clawdbot/clawdbot.json ./scan.py --format pretty ./scan.py --format markdown ./scan.py --format json
Option C: run without cloning (pipx / uvx)
One-shot run (no install):
pipx run clawdbot-security-scanner
# or
uvx clawdbot-security-scanner
Install once (adds a clawdbot-security-scanner command):
pipx install clawdbot-security-scanner
clawdbot-security-scanner --config ~/.clawdbot/clawdbot.json
# alias
clawdbot-scan --config ~/.clawdbot/clawdbot.json
Report Metadata
- Report date: 2026-01-26
- Report version: 1.0
- Scanner:
security-scanner/scan.py - Checks: 37
- Method: Static analysis of configuration and state directory permissions
- Generated by: AI Agent (GPT-5.2 Codex, High)
Executive Summary
Overall risk rating: High. The scanner identifies multiple critical and high‑severity misconfigurations that can expose the gateway, bypass authentication, or allow command execution. The most severe risks are public exposure of the gateway or control plane, webhook signature bypass in voice integrations, and plaintext secrets in configuration files.
Top priority fixes (P0):
- Disable Tailscale Funnel on gateways (
gateway.tailscale.mode=funnel). - Ensure browser control is loopback‑bound or protected by a control token.
- Remove plaintext secrets from config files (Nostr, Matrix, MS Teams, Voice‑call, Nextcloud Talk, Tlon).
- Disable insecure Control UI auth (
gateway.controlUi.allowInsecureAuth=true). - Ensure
system.runis denied for nodes when the nodes tool is enabled.
Scope & Methodology
In scope:
- Clawdbot configuration (
clawdbot.json) and related state directories. - Authentication policies, tool allowlists/denylists, sandbox settings.
- Channel DM and group allowlist policy enforcement.
- Extension/plugin configuration (Matrix, Nostr, Voice, Teams, etc.).
Out of scope:
- Runtime network testing, active exploitation, fuzzing, or penetration testing.
- UI/UX security (CSRF/XSS) beyond config‑based flags.
- Infrastructure hardening (OS‑level ACLs beyond file perms in state dirs).
Methodology:
- Static review of security‑sensitive code paths.
- Configuration/permission checks encoded as deterministic scanner rules.
- Evidence collection via config and state directory inspection only.
Severity Model
| Severity | Impact | Likelihood |
|---|---|---|
| Critical | Full compromise, public exposure, or unauthenticated control | High if misconfigured |
| High | Auth bypass, command execution, or credential exposure | Moderate‑high |
| Medium | Cross‑channel leakage, SSRF, or elevated access | Moderate |
| Low | Reduced isolation or unintended capability | Low‑moderate |
Findings Index
| Check ID | Title | Severity (on fail) | Scope |
|---|---|---|---|
tailscale-serve-bypass |
Tailscale Serve bypasses gateway token/password | Medium | Gateway Core & Authentication |
tailscale-funnel |
Gateway exposed via Tailscale Funnel | Critical | Gateway Core & Authentication |
control-ui-insecure |
Control UI allows insecure auth | High | Gateway Core & Authentication |
plaintext-gateway |
Plaintext gateway traffic on non-loopback | High | Gateway Core & Authentication |
token-reuse |
Gateway token reused across surfaces | Medium | Gateway Core & Authentication |
secret-perms |
Secrets stored on disk with loose perms | High | Gateway Core & Authentication |
gateway-token-strength |
Weak or short gateway token | Medium (High if missing) | Gateway Core & Authentication |
device-token-rotation |
Long-lived device auth tokens | Medium | Gateway Core & Authentication |
dm-policy-open |
Public DMs enabled (dmPolicy=open) | High | Channel DM Policies & Allowlists |
allowfrom-wildcard |
Wildcard allowFrom permits any sender | High | Channel DM Policies & Allowlists |
group-dm-open |
Group DMs enabled without allowlist | Medium | Channel DM Policies & Allowlists |
group-allowlist-wildcard |
Group allowlist wildcard opens group senders | High | Channel DM Policies & Allowlists |
discord-group-allowlist-no-channels |
Discord allowlist without channel restrictions | Medium | Channel DM Policies & Allowlists |
dm-scope-main-multi |
Shared DM session scope across multiple senders | Medium | Channel DM Policies & Allowlists |
sandbox-mode-not-all |
Sandbox disabled for main sessions | High | Agent Sandbox & Tool Isolation |
tool-allowlist-plugin-only |
Tool allowlist ignored (plugin-only entries) | Medium | Agent Sandbox & Tool Isolation |
sandbox-image-auto-allow |
Sandbox tool allowlist still permits image | Low | Agent Sandbox & Tool Isolation |
browser-control-exposed |
Browser control server exposed without token | Critical | Agent Sandbox & Tool Isolation |
sandbox-host-browser-control |
Sandbox can control host browser | High | Agent Sandbox & Tool Isolation |
cron-system-event-injection |
Cron tool can inject system events | High | Agent Sandbox & Tool Isolation |
hooks-workspace-injection |
Workspace hooks writable by agents | High | Agent Sandbox & Tool Isolation |
extension-dm-policy-open |
Extension channel DMs open (dmPolicy=open) | High | Plugin/Extension Security |
extension-allowfrom-wildcard |
Extension wildcard allowFrom permits any sender | High | Plugin/Extension Security |
extension-group-policy-open |
Extension channel groups open (groupPolicy=open) | Medium | Plugin/Extension Security |
nostr-private-key-config |
Nostr private key stored in config | Critical | Plugin/Extension Security |
matrix-password-config |
Matrix password stored in config | High | Plugin/Extension Security |
msteams-app-password-config |
MS Teams app password stored in config | High | Plugin/Extension Security |
voice-call-skip-signature |
Voice-call webhook signature verification skipped | Critical | Plugin/Extension Security |
voice-call-inbound-open |
Voice-call inbound policy open | High | Plugin/Extension Security |
voice-call-credentials-config |
Voice-call provider credentials in config | High | Plugin/Extension Security |
voice-call-ngrok-free-tier |
Voice-call ngrok free tier signature bypass | Medium | Plugin/Extension Security |
nextcloud-talk-secret-config |
Nextcloud Talk bot secret in config | Medium | Plugin/Extension Security |
tlon-code-config |
Tlon/Urbit access code in config | Medium | Plugin/Extension Security |
whatsapp-creds-perms |
WhatsApp Web credentials readable by other users | High | Web Interfaces, Nodes & Integrations |
nodes-system-run |
Nodes tool can invoke system.run | High | Web Interfaces, Nodes & Integrations |
media-url-prefer |
Media understanding prefers URL attachments | Medium | Web Interfaces, Nodes & Integrations |
memory-lancedb-exposure |
Memory (LanceDB) data shared across senders | Medium | Web Interfaces, Nodes & Integrations |
Detailed Findings by Scope
Scope 1: Gateway Core & Authentication Security
Files Examined:
src/gateway/server/src/gateway/server-methods/src/gateway/protocol/src/security/src/infra/device-auth-store.tssrc/infra/device-pairing.tssrc/infra/tls/src/infra/tailscale.tssrc/infra/ssh-tunnel.tssrc/config/(auth-related schemas)
Research Questions:
- What happens with misconfigured
gateway.auth.mode? - Are there bypass paths when
gateway.bindis not loopback? - How does Tailscale Serve/Funnel auth interact with password requirements?
- Device pairing token security and expiration
- TLS certificate validation gaps
Findings (expand for details):
Tailscale Serve identity bypass (`tailscale-serve-bypass`) — Medium
- Misconfiguration:
gateway.tailscale.mode=servewithgateway.auth.allowTailscale=true - Attack vector: Tailnet users (or local header spoofing) can authenticate without the gateway token/password.
- Root cause: Serve mode accepts Tailscale identity headers as auth when
allowTailscale=true, skipping shared auth. - Mitigation: Set
gateway.auth.allowTailscale=falseor disable Tailscale Serve.
Gateway exposed via Tailscale Funnel (`tailscale-funnel`) — Critical
- Misconfiguration:
gateway.tailscale.mode=funnel - Attack vector: Public internet access; brute-force risk on shared password.
- Root cause: Funnel publishes the gateway to the public internet with shared auth.
- Mitigation: Prefer
tailscale.mode=serveor set a strong password and restrict access.
Control UI insecure auth (`control-ui-insecure`) — High
- Misconfiguration:
gateway.controlUi.allowInsecureAuth=true - Attack vector: Token-only auth over HTTP can be intercepted; device identity is skipped.
- Root cause: Insecure auth bypasses device identity checks and relies on HTTP token only.
- Mitigation: Disable
allowInsecureAuthor serve Control UI over HTTPS.
Plaintext gateway traffic (`plaintext-gateway`) — High
- Misconfiguration:
gateway.bind != loopbackwithgateway.tls.enabled=falseand/orgateway.remote.urlusesws:// - Attack vector: Network sniffing/MITM captures tokens/passwords or hijacks sessions.
- Root cause: Non-loopback gateway traffic is sent without TLS.
- Mitigation: Enable TLS for LAN binds and use
wss://for remote gateways.
Gateway token reused across surfaces (`token-reuse`) — Medium
- Misconfiguration:
gateway.auth.tokenequalshooks.tokenorbrowser.controlToken - Attack vector: Compromise of hooks or browser control token grants gateway access.
- Root cause: Shared secret reused across trust boundaries.
- Mitigation: Use distinct tokens per surface.
Secrets stored on disk with loose perms (`secret-perms`) — High
- Misconfiguration:
clawdbot.jsonor backups are group/world readable, writable, or symlinked - Attack vector: Local users read/modify gateway secrets or auth config.
- Root cause: Secrets stored on disk without strict permissions.
- Mitigation:
chmod 600onclawdbot.jsonand tighten backup perms.
Weak or short gateway token (`gateway-token-strength`) — Medium (High if missing)
- Misconfiguration:
gateway.auth.mode=tokenwith missing token or token length < 24 - Attack vector: Missing/short tokens are easier to brute-force or fail to enforce auth.
- Root cause: Token mode relies on a shared secret; short or missing tokens reduce security.
- Mitigation: Generate a long random token (24+ chars) or set env-based token.
Long-lived device auth tokens (`device-token-rotation`) — Medium
- Misconfiguration: Device token last rotated > 90 days ago
- Attack vector: Stolen device tokens remain valid indefinitely.
- Root cause: Device tokens lack expiration unless manually rotated/revoked.
- Mitigation: Rotate or revoke old device tokens.
Scope 2: Channel DM Policies & Allowlists
Files Examined:
src/channels/src/channels/allowlists/src/pairing/src/routing/src/telegram/(bot/, monitor/)src/discord/(monitor/)src/slack/(http/, monitor/)src/signal/(monitor/)src/imessage/(monitor/)src/whatsapp/src/config/sessions/
Research Questions:
- What happens when
dmPolicy="open"+allowFrom=["*"]? - Pairing code brute-force potential
- Group allowlist bypass scenarios
- Cross-channel routing leaks
- requireMention bypass in groups
Findings (expand for details):
Public DMs enabled (`dm-policy-open`) — High
- Misconfiguration:
channels.<channel>.dmPolicy=openorchannels.<channel>.dm.policy=open - Attack vector: Any sender can DM the bot; pairing/allowlist bypass with routing hijack risk.
- Root cause: DM policy bypasses pairing/allowlist and updates last‑route on the shared session key.
- Mitigation: Use
dmPolicy=pairingordmPolicy=allowlistwith explicitallowFrom.
Wildcard allowFrom permits any sender (`allowfrom-wildcard`) — High
- Misconfiguration:
allowFromcontains* - Attack vector: Allowlists match everyone; authorization bypass and control-command bypass.
- Root cause: For Slack/Discord/Telegram/iMessage/Signal,
allowFromis also used for command authorization, so any group sender can issue control commands and bypassrequireMentionviaresolveMentionGatingWithBypass. - Mitigation: Remove
*, use explicit sender IDs/handles, and keep group allowlists separate.
Group DMs enabled without allowlist (`group-dm-open`) — Medium
- Misconfiguration: Slack/Discord
dm.groupEnabled=truewith empty or wildcardgroupChannels - Attack vector: Any Slack/Discord group DM can trigger the bot without filtering.
- Root cause: Group DMs are only filtered when
groupChannelsis set. - Mitigation: Define explicit
dm.groupChannelsor disablegroupEnabled.
Group allowlist wildcard opens senders (`group-allowlist-wildcard`) — High
- Misconfiguration:
groupPolicy=allowlistwith wildcardgroupAllowFromor fallback wildcardallowFrom - Attack vector: Any group sender can reach the bot despite allowlist mode.
- Root cause: Group allowlist falls back to
allowFrom; a wildcard negates sender filtering. - Mitigation: Set explicit
groupAllowFrom(no*) or intentionally usegroupPolicy=open.
Discord allowlist without channel restrictions (`discord-group-allowlist-no-channels`) — Medium
- Misconfiguration:
channels.discord.guilds.<id>missingchannelsallowlist - Attack vector: All channels in the allowlisted guild become eligible.
- Root cause: Discord allowlist policy only applies when per‑channel lists are configured.
- Mitigation: Add explicit channel allowlists under
guilds.<id>.channels.
Shared DM session scope (`dm-scope-main-multi`) — Medium
- Misconfiguration:
session.dmScope=mainwith multipleallowFromentries - Attack vector: Multiple DM senders share a session, enabling cross-channel reply leaks.
- Root cause: DM routing uses a single session key in
mainscope. - Mitigation: Use
dmScope=per-peerorper-channel-peerand limit allowlists.
Scope 3: Agent Sandbox, Tools & Command Execution
Files Examined:
src/agents/sandbox/src/agents/tools/src/infra/exec-safety.tssrc/infra/exec-approvals.tssrc/browser/src/browser/routes/src/cron/src/cron/isolated-agent/src/process/src/hooks/src/hooks/bundled/
Research Questions:
- Sandbox escape when
sandbox.modeis misconfigured - Tool allowlist/denylist bypass scenarios
- Browser CDP control exposure
- Cron job injection with elevated privileges
- Hook injection vectors
- system.run permission escalation via nodes
Findings (expand for details):
Sandbox disabled for main sessions (`sandbox-mode-not-all`) — High
- Misconfiguration:
sandbox.mode=offornon-mainfor any agent - Attack vector: Untrusted prompts run tools on the host via the main session.
- Root cause: Main session uses host tools when sandbox is off or only applies to non‑main sessions.
- Mitigation: Set
agents.defaults.sandbox.mode=allfor untrusted workloads.
Tool allowlist ignored (plugin-only entries) (`tool-allowlist-plugin-only`) — Medium
- Misconfiguration:
tools.allow/agents.*.tools.allowcontains only plugin/unknown entries - Attack vector: Core tools remain available because plugin-only allowlists are stripped.
- Root cause: Clawdbot drops allowlists without any core tool or group.
- Mitigation: Include at least one core tool/group or add explicit deny rules.
Sandbox allowlist still permits image (`sandbox-image-auto-allow`) — Low
- Misconfiguration: Sandbox allowlist set without
imageandimagenot denied - Attack vector:
imagetool is auto-added unless explicitly denied. - Root cause: Sandbox policy includes
imageby default. - Mitigation: Add
imagetotools.sandbox.tools.denyor include it explicitly.
Browser control server exposed without token (`browser-control-exposed`) — Critical
- Misconfiguration:
browser.controlUrlbound to non-loopback with nobrowser.controlToken - Attack vector: Remote clients can drive CDP sessions.
- Root cause: Browser control server lacks authentication without a control token.
- Mitigation: Bind to loopback or set
browser.controlTokenand firewall access.
Sandbox can control host browser (`sandbox-host-browser-control`) — High
- Misconfiguration:
sandbox.browser.allowHostControl=truewith sandbox active - Attack vector: Sandboxed sessions can drive the host browser (cookies, tabs, auth).
- Root cause:
allowHostControlroutes sandbox tool calls to the host control server. - Mitigation: Set
allowHostControl=falseor restrict browser tools for untrusted sessions.
Cron tool can inject system events (`cron-system-event-injection`) — High
- Misconfiguration:
cron.enabled=trueandcrontool allowed by policy - Attack vector: Cron jobs enqueue
systemEventpayloads into main session (system role). - Root cause: Cron supports systemEvent injection when tool is allowed.
- Mitigation: Disable cron or deny the
crontool for untrusted sessions.
Workspace hooks writable by agents (`hooks-workspace-injection`) — High
- Misconfiguration:
hooks.internal.enabled=truewith writable workspace access - Attack vector: Agents can write hook handlers and gain host code execution.
- Root cause: Internal hooks dynamically load handler code from workspace/extraDirs.
- Mitigation: Set
workspaceAccess=ro/nonefor untrusted agents or disable internal hooks.
Scope 4: Plugin/Extension Channel Security
Files Examined:
extensions/msteams/src/extensions/matrix/src/extensions/zalo/src/extensions/zalouser/src/extensions/bluebubbles/src/extensions/voice-call/src/extensions/nostr/src/extensions/mattermost/src/extensions/nextcloud-talk/src/extensions/tlon/src/src/plugins/src/plugins/runtime/
Research Questions:
- Extension-specific allowlist implementations - are they consistent/secure?
- OAuth token storage and rotation in extensions
- Voice-call authentication (Twilio/Plivo credentials exposure)
- Matrix homeserver trust model vulnerabilities
- Nostr private key exposure risks
- Plugin isolation and cross-plugin data access
- Extension credential storage patterns
Findings (expand for details):
Extension DMs open (`extension-dm-policy-open`) — High
- Misconfiguration: Extension
dmPolicy=open - Attack vector: Any sender can DM the bot via extension channel.
- Root cause: Extension DM policy bypasses pairing/allowlist the same as core channels.
- Mitigation: Use
dmPolicy=pairingordmPolicy=allowlistwith explicitallowFrom.
Extension wildcard allowFrom (`extension-allowfrom-wildcard`) — High
- Misconfiguration: Extension
allowFromcontains* - Attack vector: Extension DM allowlists match everyone; authorization bypassed.
- Root cause: Wildcard allowlists match all senders.
- Mitigation: Replace
*with explicit sender IDs/handles.
Extension group policy open (`extension-group-policy-open`) — Medium
- Misconfiguration: Extension
groupPolicy=open - Attack vector: Any group/room can trigger the bot.
- Root cause: Group policies allow all rooms when set to open.
- Mitigation: Use
groupPolicy=allowlistwith explicit group IDs.
Nostr private key in config (`nostr-private-key-config`) — Critical
- Misconfiguration:
channels.nostr.privateKeyplaintext - Attack vector: Local file read exposes Nostr identity; attacker can impersonate.
- Root cause: Secret stored directly in config file.
- Mitigation: Use env reference:
privateKey: "${NOSTR_PRIVATE_KEY}".
Matrix password in config (`matrix-password-config`) — High
- Misconfiguration:
channels.matrix.passwordplaintext - Attack vector: Local file read exposes Matrix credentials for account takeover.
- Root cause: Password stored directly in config file.
- Mitigation: Use env reference or access token.
MS Teams app password in config (`msteams-app-password-config`) — High
- Misconfiguration:
channels.msteams.appPasswordplaintext - Attack vector: Local file read exposes Azure AD client secret.
- Root cause: App password stored directly in config file.
- Mitigation: Use env reference:
appPassword: "${MSTEAMS_APP_PASSWORD}".
Voice-call signature verification skipped (`voice-call-skip-signature`) — Critical
- Misconfiguration:
voice-call.skipSignatureVerification=true - Attack vector: Attacker can forge Twilio/Plivo webhooks to inject fake calls/transcripts.
- Root cause: Signature verification is explicitly bypassed.
- Mitigation: Set
skipSignatureVerification=false.
Voice-call inbound policy open (`voice-call-inbound-open`) — High
- Misconfiguration:
voice-call.inboundPolicy=open - Attack vector: Any phone number can call the bot.
- Root cause: Inbound policy allows any caller.
- Mitigation: Use
inboundPolicy=allowlistor disable inbound calls.
Voice-call credentials in config (`voice-call-credentials-config`) — High
- Misconfiguration: Provider auth tokens stored in plaintext (Twilio/Plivo/Telnyx)
- Attack vector: Local file read exposes telephony credentials (billing/call control).
- Root cause: Secrets stored directly in config.
- Mitigation: Use env references for provider credentials.
Voice-call ngrok free-tier bypass (`voice-call-ngrok-free-tier`) — Medium
- Misconfiguration:
tunnel.provider=ngrokwithallowNgrokFreeTier=true - Attack vector: Signature verification failures are silently allowed on ngrok URLs.
- Root cause: Free‑tier setting allows signature failures.
- Mitigation: Set
allowNgrokFreeTier=falseor use paid tier with custom domain.
Nextcloud Talk secret in config (`nextcloud-talk-secret-config`) — Medium
- Misconfiguration:
channels.nextcloud-talk.botSecretplaintext - Attack vector: Local file read exposes webhook signing secret.
- Root cause: Bot secret stored directly in config.
- Mitigation: Use env ref or
botSecretFile.
Tlon/Urbit access code in config (`tlon-code-config`) — Medium
- Misconfiguration:
channels.tlon.codeplaintext - Attack vector: Local file read exposes Urbit ship access code.
- Root cause: Access code stored directly in config.
- Mitigation: Use env reference:
code: "${TLON_CODE}".
Scope 5: Web Interfaces, Nodes & External Integrations
Files Examined:
src/web/src/web/inbound/src/web/auto-reply/src/node-host/src/providers/src/media/src/media-understanding/src/infra/net/ssrf.tsextensions/google-antigravity-auth/extensions/google-gemini-cli-auth/extensions/qwen-portal-auth/extensions/copilot-proxy/extensions/memory-lancedb/
Research Questions:
- WebChat authentication and session hijacking risks
- Control UI CSRF/XSS vectors
- Node protocol command injection
- SSRF protection gaps in media fetching
- OAuth redirect URI validation
- Credential storage in
~/.clawdbot/credentials/ - Memory extension data exposure
Findings (expand for details):
WhatsApp credentials readable by other users (`whatsapp-creds-perms`) — High
- Misconfiguration: WhatsApp authDir/
creds.jsonare group/world readable/writable or symlinked - Attack vector: Local users can copy
creds.jsonto hijack WhatsApp Web sessions. - Root cause: WhatsApp session state is stored on disk without enforced perms.
- Mitigation:
chmod 700on auth dirs andchmod 600oncreds.json.
Nodes tool can invoke `system.run` (`nodes-system-run`) — High
- Misconfiguration:
gateway.nodes.denyCommandsmissingsystem.runwhile nodes tool allowed - Attack vector: Remote node invoke can execute arbitrary commands on paired nodes.
- Root cause: Node command policy allows
system.rununless explicitly denied. - Mitigation: Add
system.runtogateway.nodes.denyCommandsor deny the nodes tool.
Media URL SSRF exposure (`media-url-prefer`) — Medium
- Misconfiguration:
tools.media.<capability>.attachments.prefer=urlwith media understanding enabled - Attack vector: Gateway fetches untrusted URLs; SSRF to internal services.
- Root cause: URL attachments are fetched without strict host validation in some paths.
- Mitigation: Prefer file/path attachments or disable URL preference.
Memory (LanceDB) exposure across senders (`memory-lancedb-exposure`) — Medium
- Misconfiguration:
memory-lancedbautoCapture/autoRecall enabled with multiple DM senders allowed - Attack vector: One sender can access memories captured from other senders/groups.
- Root cause: LanceDB stores a shared DB; auto‑recall does not isolate senders.
- Mitigation: Limit allowlists to a single owner or disable autoCapture/autoRecall.
Appendix A: Running the Scanner
# Run the scanner from the repo (default: pretty output in a TTY; markdown when piped)
./security-scanner/scan.py
# Specify config file
./security-scanner/scan.py --config ~/.clawdbot/clawdbot.json
# Choose an output format
./security-scanner/scan.py --format pretty
./security-scanner/scan.py --format markdown
./security-scanner/scan.py --format json
# Run without cloning (PyPI)
pipx run clawdbot-security-scanner
uvx clawdbot-security-scanner
Appendix B: Validation / Tests
./security-scanner/test.py
This script runs representative configurations and asserts that expected failures are detected for each check.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clawdbot_security_scanner-1.0.0.tar.gz.
File metadata
- Download URL: clawdbot_security_scanner-1.0.0.tar.gz
- Upload date:
- Size: 38.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4dae51241a0d2c1d36756d3eca0ab32c1fe3e2882b5526a0dcca0d5f67ea0d7
|
|
| MD5 |
78b305cfd53dda295c0618c319d3e558
|
|
| BLAKE2b-256 |
abbc068f3db13e8f7aa65cf67e479b0b819745ef05b8ea83907a0f12c78054d1
|
File details
Details for the file clawdbot_security_scanner-1.0.0-py3-none-any.whl.
File metadata
- Download URL: clawdbot_security_scanner-1.0.0-py3-none-any.whl
- Upload date:
- Size: 31.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a119960575b6a85b44caf2d6429455ef29ba71e58e1ffb0a67c3afc9f012c679
|
|
| MD5 |
7967db0180e3667b90e86a15e1f0ce9f
|
|
| BLAKE2b-256 |
cdc7d16b5b9da2565925aa8d0a5398f6cac9bbaae6d55324fa9546232ee7b715
|