T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:27
- Finding
- Unpinned Executable Dependency Installed from a Mutable Git Repository## Vulnerability Details **File Location**: `SKILL.md:27` **Vulnerability Type**: Supply-chain risk from an unpinned remote dependency **Risk Level**: Medium ### Vulnerable Code ```bash pipx install git+https://github.com/ropl-btc/telegram-readonly-cli.git ``` The same unsafe installation approach is also documented in `references/setup-and-safety.md:36-43`, including installation from the repository's mutable default branch. ### Technical Analysis The recommended installation command retrieves and installs executable Python package content directly from an unpinned Git repository. It does not specify an immutable commit hash, a verified signed release, or a package hash. Consequently, the code installed by this command can change after the Skill has been audited. Package installation may execute build-system or installation logic supplied by the remote repository. This creates a supply-chain boundary between the reviewed Skill and the executable CLI users are instructed to trust. This risk is especially significant because the installed CLI is subsequently given access to Telegram API credentials, login codes, a 2FA password, a reusable Telethon `StringSession`, and personal Telegram content. No evidence establishes that the current upstream repository is malicious. The vulnerability is that the documented installation process provides no immutable version or integrity guarantee. ### Attack Path 1. An attacker compromises the upstream repository, a maintainer account, or the repository ownership. 2. The attacker modifies package installation logic or runtime code on the default branch. 3. A user follows the documented `pipx install git+https://...` instruction. 4. `pipx` retrieves and installs the attacker's modified code. 5. The malicious package executes during installation or when the Telegram CLI is invoked. 6. It captures Telegram credentials, authentication inputs, the stored session string, or message con ...[truncated 639 chars]
- Remediation
- ## Remediation Suggestions - Pin the Git dependency to a reviewed, immutable full commit hash. - Prefer a versioned package distributed through a trusted registry with published integrity hashes. - Use signed releases and verify the signature before installation. - Record the expected source revision and package hashes in the Skill documentation. - Audit package metadata and build-system configuration in addition to runtime source code. - Avoid automatic upgrades from a mutable branch. - Run installation and authentication in a minimally privileged, isolated environment. - Update both `SKILL.md` and `references/setup-and-safety.md` so all installation methods use the same verified version.
