Security Audit
dkyazzentwatwa/chatgpt-skills:currency-converter
github.com/dkyazzentwatwa/chatgpt-skillsTrust Assessment
dkyazzentwatwa/chatgpt-skills:currency-converter received a trust score of 49/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: 0 critical, 2 high, 3 medium, and 0 low severity. Key findings include Unsafe deserialization / dynamic eval, Unpinned Python dependency version, Unpinned dependencies in requirements.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. All layers scored 70 or above, reflecting consistent security practices.
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 | Unsafe deserialization / dynamic eval Decryption followed by code execution Remove obfuscated code execution patterns. Legitimate code does not need base64-encoded payloads executed via eval, encrypted-then-executed blobs, or dynamic attribute resolution to call system functions. | Manifest | currency-converter/scripts/currency_converter.py:8 | |
| HIGH | Path traversal vulnerability in file operations The skill directly uses user-provided arguments (`--file` for input and `--output` for output) as file paths for `pandas.read_csv` and `pandas.to_csv`. There is no sanitization or validation of these paths. An attacker could exploit this by providing paths like `../../../../etc/passwd` to read sensitive system files (data exfiltration) or `../../../../tmp/malicious.csv` to write to arbitrary locations on the filesystem. This could lead to unauthorized data access, data modification, or denial of service. Implement robust path sanitization and validation for all user-provided file paths. Restrict file operations to a designated, sandboxed directory. Ensure that paths do not contain directory traversal sequences (e.g., `..`) and are absolute paths within the allowed directory. Consider using `os.path.normpath` and `os.path.abspath` combined with checks to ensure the final path is within an expected and secure base directory. | Static | scripts/currency_converter.py:79 | |
| MEDIUM | Unpinned Python dependency version Requirement 'forex-python>=1.8' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | currency-converter/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 | currency-converter/scripts/requirements.txt:2 | |
| MEDIUM | Unpinned dependencies in requirements The `scripts/requirements.txt` file specifies dependencies with minimum versions (`>=`) but does not pin them to exact versions. This can lead to non-deterministic builds, where different installations might use different versions of libraries. This introduces a supply chain risk, as a future, potentially vulnerable or incompatible, version of a dependency could be pulled in without explicit review. Pin dependencies to exact versions (e.g., `forex-python==1.8.0`) to ensure deterministic builds and prevent unexpected updates. Alternatively, use a dependency lock file mechanism. | Static | scripts/requirements.txt:1 |
Scan History
Embed Code
[](https://skillshield.io/report/331c2e45396348fe)
Powered by SkillShield