Security Audit
dkyazzentwatwa/chatgpt-skills:org-chart-generator
github.com/dkyazzentwatwa/chatgpt-skillsTrust Assessment
dkyazzentwatwa/chatgpt-skills:org-chart-generator received a trust score of 55/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 5 findings: 0 critical, 2 high, 2 medium, and 1 low severity. Key findings include Unpinned Python dependency version, Arbitrary File Read via from_csv and from_json, Arbitrary File Write via save method.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The LLM Behavioral Safety layer scored lowest at 68/100, indicating areas for improvement.
Last analyzed on February 24, 2026 (commit d4bad335). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings5
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Arbitrary File Read via from_csv and from_json The `from_csv` and `from_json` methods directly accept a `filepath` argument, which is then used to open and read files. If an attacker can control this `filepath` (e.g., through prompt injection to the LLM that calls this skill), they could specify paths to sensitive system files (e.g., `/etc/passwd`, `/proc/self/environ`, `~/.ssh/id_rsa`) and exfiltrate their contents. The `Path.exists()` check only verifies existence, not path safety. Implement strict validation and sanitization for `filepath` arguments. Restrict file access to a designated, sandboxed directory. Disallow absolute paths or paths containing `..`. Consider using a virtual filesystem or a dedicated data directory for skill inputs. | LLM | scripts/orgchart_gen.py:96 | |
| HIGH | Arbitrary File Write via save method The `save` method directly accepts a `filepath` argument for the output file. If an attacker can control this `filepath` (e.g., through prompt injection to the LLM that calls this skill), they could write arbitrary data (the generated chart) to any location on the filesystem where the skill has write permissions. This could lead to overwriting critical system files, creating malicious files in web server directories, or filling up disk space. Implement strict validation and sanitization for `filepath` arguments. Restrict file writing to a designated, sandboxed output directory. Disallow absolute paths or paths containing `..`. Ensure the skill runs with minimal necessary write permissions. | LLM | scripts/orgchart_gen.py:307 | |
| MEDIUM | Unpinned Python dependency version Requirement 'graphviz>=0.20.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | org-chart-generator/scripts/requirements.txt:1 | |
| MEDIUM | Unpinned Python dependency version Requirement 'pandas>=2.0.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | org-chart-generator/scripts/requirements.txt:2 | |
| LOW | Unpinned dependencies in requirements.txt The `requirements.txt` file specifies dependencies using `>=` (e.g., `graphviz>=0.20.0`, `pandas>=2.0.0`). This allows for installation of any future version that meets the minimum requirement. While convenient, it introduces a supply chain risk as a new, vulnerable version of a dependency could be published and automatically installed, potentially introducing security flaws or breaking changes. Pin dependencies to exact versions (e.g., `graphviz==0.20.0`) or use a lock file (e.g., `Pipfile.lock`, `poetry.lock`) to ensure reproducible and secure builds. Regularly audit and update pinned dependencies. | LLM | scripts/requirements.txt:1 |
Scan History
Embed Code
[](https://skillshield.io/report/3113ab6e6261040e)
Powered by SkillShield