Trust Assessment
xlsx received a trust score of 10/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 7 findings: 3 critical, 4 high, 0 medium, and 0 low severity. Key findings include Arbitrary command execution, Dangerous call: subprocess.run(), User-controlled input passed to subprocess.run for LibreOffice execution.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis layer scored lowest at 10/100, indicating areas for improvement.
Last analyzed on February 12, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings7
| 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/seanphan/xlsx/recalc.py:31 | |
| 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/seanphan/xlsx/recalc.py:84 | |
| 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/seanphan/xlsx/recalc.py:92 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'recalc'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/seanphan/xlsx/recalc.py:92 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'setup_libreoffice_macro'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/seanphan/xlsx/recalc.py:31 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'recalc'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/seanphan/xlsx/recalc.py:84 | |
| HIGH | User-controlled input passed to subprocess.run for LibreOffice execution The `recalc.py` script takes a `filename` from command-line arguments (`sys.argv[1]`) and passes it directly to `subprocess.run` as an argument to the `soffice` command. While `subprocess.run` is used with a list of arguments (mitigating direct shell injection), a specially crafted `filename` could potentially exploit vulnerabilities in LibreOffice's argument parsing or macro execution mechanisms, leading to arbitrary code execution within the LibreOffice context. For example, if LibreOffice interprets certain filename patterns as options or macro calls, this could be exploited. Additionally, opening an untrusted Excel file with LibreOffice (which this script does) carries the inherent risk of executing malicious macros embedded within the document itself. Implement strict validation and sanitization of the `filename` argument to ensure it is a valid file path and does not contain any characters or patterns that could be interpreted as command-line options or macro calls by LibreOffice. Consider using a dedicated library for safe file path handling or explicitly whitelisting allowed characters. Additionally, consider adding a warning about processing untrusted Excel files due to potential embedded macros. | LLM | recalc.py:65 |
Scan History
Embed Code
[](https://skillshield.io/report/1bd71c79124367cd)
Powered by SkillShield