Trust Assessment
tech-security-audit received a trust score of 13/100, placing it in the Untrusted category. This skill has significant security findings that require attention before use in production.
SkillShield's automated analysis identified 5 findings: 3 critical, 1 high, 1 medium, and 0 low severity. Key findings include Arbitrary command execution, Missing required field: name, Dangerous call: subprocess.run().
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The LLM Behavioral Safety layer scored lowest at 40/100, indicating areas for improvement.
Last analyzed on February 13, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings5
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/jacqueslauren/tech-security-audit/nmap_scanner.py:28 | |
| CRITICAL | Unsanitized Nmap target allows argument injection The `run_nmap_scan` function constructs an Nmap command using `subprocess.run` where the `target` parameter is directly inserted into the command list without sanitization. An attacker can inject arbitrary Nmap arguments (e.g., `-oG <file>`, `--script <script>`, `-iL <file>`) by crafting the `target` string, potentially leading to unintended scans, file creation, or information disclosure. While `shell=False` mitigates direct shell injection, Nmap itself will parse its arguments, allowing for Nmap-specific command injection. This risk is amplified if Nmap runs with elevated privileges. Implement strict input validation for the `target` parameter. Only allow valid IP addresses or hostnames. Reject any input containing Nmap-specific flags (e.g., starting with `-`) or shell metacharacters. Consider using a dedicated Nmap Python library that handles argument sanitization, or explicitly whitelist allowed characters/formats for the target. | LLM | nmap_scanner.py:19 | |
| CRITICAL | Nmap execution with user-controlled target and potential elevated privileges leading to data exfiltration The skill is designed to perform "local network vulnerability assessments" and explicitly states "Nmap must be installed and accessible in PATH" and "Appropriate permissions for network scanning" are required. This implies Nmap might be run with elevated privileges (e.g., root/sudo) to perform its functions. Allowing an LLM skill to execute Nmap with a user-controlled `target` and potentially elevated permissions creates a critical security risk. An attacker can use this to:
1. **Map Internal Networks**: Scan internal IP ranges or specific hosts within the agent's network environment.
2. **Exfiltrate Data**: The detailed Nmap scan results (open ports, services, OS versions, vulnerabilities) are returned to the LLM, effectively exfiltrating sensitive internal network topology and vulnerability information.
3. **Privilege Escalation**: If Nmap is configured with `sudo` NOPASSWD or similar, and combined with argument injection (SS-CMD-001), it could lead to arbitrary command execution with root privileges. 1. **Principle of Least Privilege**: Ensure Nmap is run with the absolute minimum necessary permissions. Avoid running Nmap as root or with `sudo` if possible. If elevated privileges are strictly required, implement a highly restricted wrapper or capability-based execution. 2. **Network Segmentation/Sandboxing**: Run the agent and Nmap in a strictly isolated network environment, preventing access to sensitive internal networks. 3. **Strict Target Whitelisting**: Instead of blacklisting, whitelist allowed `target` values (e.g., only public IPs/domains, or a very specific, pre-approved set of internal targets). 4. **Output Sanitization/Filtering**: Filter the Nmap output to remove any potentially sensitive information before returning it to the user/LLM. 5. **User Authorization**: Implement explicit user authorization or approval workflows for any network scanning activity, especially for internal or sensitive targets. | LLM | nmap_scanner.py:28 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'run_nmap_scan'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/jacqueslauren/tech-security-audit/nmap_scanner.py:28 | |
| MEDIUM | Missing required field: name The 'name' field is required for claude_code skills but is missing from frontmatter. Add a 'name' field to the SKILL.md frontmatter. | Static | skills/jacqueslauren/tech-security-audit/SKILL.md:1 |
Scan History
Embed Code
[](https://skillshield.io/report/7fede1ccde184b81)
Powered by SkillShield