adguard

ISSUES FOUND max severity CRITICALSkillSpector Caution 26 registry clawhub.ai last scanned 1 scan

4 findings (1 critical, 2 high, 1 medium), mainly data exfiltration, command injection, social engineering. Most recent scan 2026-02-05.

This AdGuard Home controller skill presents CRITICAL and HIGH severity security risks primarily related to credential handling, command injection vulnerabilities, and network security. The skill requires admin credentials transmitted over HTTP to user-configurable endpoints, stores session tokens in predictable temporary locations, and lacks input validation for domain parameters enabling command injection attacks. While the skill's core functionality (managing DNS filtering via API) is legitimate, the implementation has significant security gaps. The skill should NOT be used in production without addressing the critical credential exposure and command injection vulnerabilities. Medium-severity issues around error handling and documentation transparency should also be resolved.

Scanner's overall assessment (LLM analyzer)

Second scanner: NVIDIA SkillSpector

Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.

What this skill does

Control AdGuard Home DNS filtering via HTTP API. Use when managing blocklists/allowlists, checking domain filtering status, toggling protection, or clearing DNS cache. Supports blocking/allowing domains, viewing statistics, and protecting/disabling DNS filtering.

Package
4 files, 21 KB
SKILL.md
641 words, 12+ sections
Code
Shell (1)

SKILL.md covers: AdGuard Home Controller · Requirements · Quick Start · Set password once · Use commands · Configuration · Config File Alternative · Commands · check `<domain>` · ✗ doubleclick.net IS BLOCKED · Blocked by: Adblock Plus filter · ✓ example.com is NOT blocked (allowed)

Findings

CRITICAL Hardcoded Credentials and Credential Exposure Risk Data Exfiltrationllm

The skill requires users to set ADGUARD_PASSWORD as an environment variable and stores session cookies in predictable temporary files (/tmp/adguard_cookie_$$.txt). While environment variables are mentioned, the instructions encourage storing credentials in shell configuration files (~/.bashrc, ~/.zshrc) which persists credentials in plaintext. Additionally, the cookie file cleanup relies on trap handlers which may not execute if the script is killed forcefully, leaving session tokens exposed in /tmp.

scripts/adguard.sh

ADGUARD_PASSWORD="${ADGUARD_PASSWORD}" and COOKIE_FILE="/tmp/adguard_cookie_$$.txt" with trap cleanup that may fail on SIGKILL
Remediation: Use secure credential storage (system keychain, encrypted credential files). Implement more robust cookie cleanup (atexit handlers, secure temp directories with restricted permissions). Warn users against storing passwords in shell config files. Consider using API tokens instead of passwords if AdGuard Home supports them.
HIGH Command Injection via Domain Parameter Command Injectionllm

The bash script accepts domain names as command-line arguments and passes them directly to curl commands without proper validation or sanitization. An attacker could inject shell metacharacters in domain arguments to execute arbitrary commands. For example: './adguard.sh check "example.com; rm -rf /"' could lead to command execution.

Domain parameters from $2, $3 are used directly in curl commands and string interpolation without escaping or validation
Remediation: Implement strict input validation for domain parameters using regex patterns (e.g., ^[a-zA-Z0-9.-]+$). Use proper shell quoting and escaping. Consider using curl's --data-urlencode for URL parameters. Validate domain format before using in API calls.
HIGH Network Communication to User-Controlled Endpoint Data Exfiltrationllm

The skill makes HTTP API calls to a user-configurable endpoint (ADGUARD_URL) which defaults to a local network address but can be set to any URL. This creates risk if an attacker can manipulate the ADGUARD_URL environment variable to point to a malicious server, potentially capturing credentials or serving malicious responses. The script transmits admin credentials to this endpoint.

scripts/adguard.sh

ADGUARD_URL="${ADGUARD_URL:-http://192.168.68.97:3000}" allows arbitrary URL configuration, credentials sent via POST to ${API_BASE}/login
Remediation: Validate ADGUARD_URL format (must be http/https, optionally restrict to local network ranges). Implement certificate validation for HTTPS. Warn users about the security implications of pointing to untrusted endpoints. Consider adding a whitelist of allowed URL patterns.
MEDIUM Incomplete Documentation of Network Requirements Social Engineeringllm

The skill description and manifest do not clearly indicate that this skill makes network HTTP requests to external devices (AdGuard Home server). Users might not realize this skill communicates over the network, potentially crossing security boundaries. The compatibility field is not specified, which should indicate network requirements.

SKILL.md

Description mentions 'HTTP API' but manifest lacks compatibility field and network requirement warnings
Remediation: Update manifest to include compatibility field specifying network requirements. Add clear warnings in description about network communication. Document security implications of network-based API access in the Quick Start section.

What is in the package

FileKindSize
README.mddoc3.1 KB
SKILL.mddoc5.1 KB
references/api.mddoc4.7 KB
scripts/adguard.shscript8.4 KB

External hosts referenced

github.com

Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.

Environment variables referenced

ADGUARD_PASSWORD ADGUARD_URL API_BASE ADGUARD_USERNAME

Package contents recorded 2026-10-22. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.

What we checked

What we did not check

Sources