Security Audit
dkyazzentwatwa/chatgpt-skills:business-card-scanner
github.com/dkyazzentwatwa/chatgpt-skillsTrust Assessment
dkyazzentwatwa/chatgpt-skills:business-card-scanner received a trust score of 50/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 6 findings: 0 critical, 1 high, 5 medium, and 0 low severity. Key findings include Unpinned Python dependency version, Arbitrary File Write via User-Controlled Output Path.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Dependency Graph layer scored lowest at 65/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 Findings6
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Arbitrary File Write via User-Controlled Output Path The skill writes extracted data to a file path specified by the user (`args.output`) without any validation or sanitization. An attacker could provide a path to a sensitive system file (e.g., `/etc/passwd`, `/root/.ssh/authorized_keys`) or a path outside the intended working directory (e.g., `../../sensitive_data.json`), leading to arbitrary file creation/overwrite. This could be used for data exfiltration (writing data to a publicly accessible location) or as a stepping stone for command injection (e.g., overwriting a configuration file that is later executed). Implement strict validation for the `output` file path. This could involve: 1. Restricting the output directory to a designated sandbox. 2. Sanitizing the path to prevent directory traversal (e.g., removing `../`). 3. Ensuring the path is a simple filename within the allowed output directory. 4. Using a temporary file or a unique filename generated by the system if the exact output name is not critical. | Static | scripts/business_card_scanner.py:90 | |
| MEDIUM | Unpinned Python dependency version Requirement 'pytesseract>=0.3.10' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | business-card-scanner/scripts/requirements.txt:1 | |
| MEDIUM | Unpinned Python dependency version Requirement 'pillow>=10.0.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | business-card-scanner/scripts/requirements.txt:2 | |
| MEDIUM | Unpinned Python dependency version Requirement 'opencv-python>=4.8.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | business-card-scanner/scripts/requirements.txt:3 | |
| MEDIUM | Unpinned Python dependency version Requirement 'pandas>=2.0.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | business-card-scanner/scripts/requirements.txt:4 | |
| MEDIUM | Unpinned Python dependency version Requirement 'numpy>=1.24.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | business-card-scanner/scripts/requirements.txt:5 |
Scan History
Embed Code
[](https://skillshield.io/report/fe61c9184bb02f5f)
Powered by SkillShield