T09 · Insecure Skill Coding Practices
- Location
scripts/extend_visual.py:231- Finding
Telegram bot token exposed through command-line arguments
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill does what it says, but its Telegram-sharing path handles bot credentials and message content in ways users should review before installing.
Review this before installing if you plan to use Telegram sharing. Prefer providing the bot token through an environment variable or secret manager, rotate any token already used on the command line, restrict the bot's channel permissions, and avoid sending summaries from untrusted sources until Telegram captions are escaped. Use a virtual environment with pinned dependency versions where possible.
scripts/extend_visual.py:231Telegram bot token exposed through command-line arguments
scripts/extend_visual.py:178Summary content is inserted into Telegram HTML without escaping
references/requirements.txt:1Third-party dependencies use open-ended version constraints without integrity verification
The dependency is specified with a lower-bound constraint only, which makes builds non-reproducible and allows future installs to pull in unexpected versions. While this file alone does not prove exploitation, unpinned packages increase supply-chain risk and make it harder to verify whether known-vulnerable or breaking releases will be installed.
playwright>=1.41.0
Pillow>=10.0.0
python-telegram-bot>=20.7
reportlab>=4.0.0
Pillow is unpinned and has a history of security advisories, so using only a minimum version leaves the actual installed version uncertain. If this skill processes untrusted images, a vulnerable Pillow release could expose the environment to denial of service or, in some versions, code-execution-style risks.
playwright>=1.41.0
Pillow>=10.0.0
python-telegram-bot>=20.7
reportlab>=4.0.0
This is a true supply-chain risk because Pillow has numerous known advisories and the manifest does not pin a version, so it is impossible to determine whether installs are safe. The skill context increases concern: image handling is central to the plugin, so a vulnerable Pillow build could be reachable through normal feature use with untrusted files.
The Telegram bot library is unpinned, creating the same reproducibility and supply-chain uncertainty issues as the other entries. There is no direct evidence in this file of a known exploitable version being selected, but broad version ranges still increase exposure to accidental upgrades or compromised releases.
playwright>=1.41.0
Pillow>=10.0.0
python-telegram-bot>=20.7
reportlab>=4.0.0
ReportLab is unpinned despite a history of serious advisories, including RCE- and SSRF-related issues in some versions. In the context of a plugin that adds PDF generation, this is more dangerous because the package is likely used on attacker-influenced content, making version uncertainty materially relevant.
playwright>=1.41.0
Pillow>=10.0.0
python-telegram-bot>=20.7
reportlab>=4.0.0
This is a true vulnerability because reportlab has known serious advisories and the unpinned manifest prevents verification that a patched release will be installed. Given the plugin explicitly adds PDF functionality, the dependency is likely exposed in production paths, which makes historical RCE/SSRF issues in ReportLab especially relevant and more dangerous here.
No suspicious patterns detected.