Trust Assessment
dgn-to-excel received a trust score of 58/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 3 findings: 1 critical, 1 high, 1 medium, and 0 low severity. Key findings include Missing required field: name, Arbitrary command execution via user-controlled executable path in subprocess call, Reliance on unmanaged external executable (`DgnExporter.exe`) introduces supply chain risk.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The LLM Behavioral Safety layer scored lowest at 55/100, indicating areas for improvement.
Last analyzed on February 14, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings3
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Arbitrary command execution via user-controlled executable path in subprocess call The `DGNExporter` class allows the `exporter_path` to be specified during initialization (defaulting to `DgnExporter.exe`). If an untrusted user can control this path, they can point it to an arbitrary executable (e.g., `cmd.exe`, `powershell.exe`). The `dgn_file` argument, also user-controlled, can then be crafted to pass arbitrary commands to the chosen executable, leading to arbitrary command execution. Although `subprocess.run` is used with a list of arguments (safer than `shell=True`), this specific pattern allows for a bypass by pointing to a shell interpreter. 1. **Whitelist Executables:** Restrict `exporter_path` to a predefined, trusted list of executables and their absolute paths. 2. **Input Validation:** Strictly validate `dgn_file` to ensure it only contains valid file paths and does not contain shell metacharacters if the external executable is known to interpret them. 3. **Sandboxing:** Run the `DgnExporter.exe` in a sandboxed environment with minimal permissions. 4. **Hardcode Path:** If `DgnExporter.exe` is always expected to be in a specific, known location, hardcode its path and prevent user modification. | LLM | SKILL.md:108 | |
| HIGH | Reliance on unmanaged external executable (`DgnExporter.exe`) introduces supply chain risk The skill's core functionality relies on an external, unmanaged executable (`DgnExporter.exe`). There are no mechanisms described to verify the integrity, authenticity, or security of this binary. A compromised or malicious `DgnExporter.exe` could lead to arbitrary code execution, data exfiltration, or other security breaches, even if the Python wrapper code itself is secure. This introduces a significant external dependency risk that is outside the direct control of the skill's code. 1. **Integrity Verification:** Implement checks (e.g., cryptographic hashes) to verify the integrity of `DgnExporter.exe` before execution. 2. **Trusted Source:** Ensure `DgnExporter.exe` is sourced from a trusted, verified provider and updated securely. 3. **Documentation:** Clearly document the origin, version, and security considerations of the external executable. 4. **Alternative Implementations:** Consider if the DGN parsing and conversion can be done using open-source libraries within the Python environment to reduce reliance on external binaries. | LLM | SKILL.md:99 | |
| 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/datadrivenconstruction/dgn-to-excel/SKILL.md:1 |
Scan History
Embed Code
[](https://skillshield.io/report/d175d9a9064515a1)
Powered by SkillShield