Security Audit
dkyazzentwatwa/chatgpt-skills:citation-bibliography-generator
github.com/dkyazzentwatwa/chatgpt-skillsTrust Assessment
dkyazzentwatwa/chatgpt-skills:citation-bibliography-generator received a trust score of 61/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, 1 high, 3 medium, and 1 low severity. Key findings include Suspicious import: requests, Unpinned Python dependency version, Path Traversal Vulnerability in File Operations.
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 | Path Traversal Vulnerability in File Operations The skill allows users to specify arbitrary file paths for input CSV files and output bibliography files via command-line arguments (`--input` and `--output`). These paths are used directly in `import_from_csv`, `export_bibtex`, and a direct `open()` call without any sanitization or validation. An attacker could use path traversal sequences (e.g., `../../../../etc/passwd`) to read or write files outside the intended directory, potentially leading to information disclosure, data corruption, or arbitrary file creation. Sanitize all user-provided file paths to prevent path traversal. Use `os.path.abspath()` and `os.path.normpath()` in conjunction with a designated base directory, or restrict file operations to a specific, sandboxed directory. Consider using a library like `pathlib` for safer path manipulation. Ensure that the resolved path is within an allowed directory before performing file operations. | Static | scripts/citation_generator.py:648 | |
| MEDIUM | Suspicious import: requests Import of 'requests' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Static | citation-bibliography-generator/scripts/citation_generator.py:26 | |
| MEDIUM | Unpinned Python dependency version Requirement 'pandas>=2.0.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | citation-bibliography-generator/scripts/requirements.txt:1 | |
| MEDIUM | Unpinned Python dependency version Requirement 'requests>=2.31.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | citation-bibliography-generator/scripts/requirements.txt:2 | |
| LOW | Weakly Pinned Dependencies The `requirements.txt` file specifies minimum versions for `pandas` and `requests` (e.g., `pandas>=2.0.0`). While this ensures a baseline version, it allows for automatic updates to any future major or minor versions. This 'weak pinning' can introduce supply chain risks, as new versions might contain breaking changes, unpatched vulnerabilities, or unexpected behavior without explicit review. It's generally safer to pin to exact versions or use a lock file for production environments. Consider pinning dependencies to exact versions (e.g., `pandas==2.0.0`) or using a dependency lock file (e.g., `Pipfile.lock` with `pipenv`, or `poetry.lock` with `poetry`) to ensure reproducible builds and prevent unexpected updates. Regularly review and update dependencies to incorporate security patches. | Static | scripts/requirements.txt:1 |
Scan History
Embed Code
[](https://skillshield.io/report/80ffd2d94490e96d)
Powered by SkillShield