T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:95- Finding
Unpinned Remote Repository Is Retrieved and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 95–96
Vulnerability Type: Remote payload retrieval and execution
Risk Level: MediumVulnerable Code:
sh git clone <https://github.com/agntcy/identity.git> cd identity ./deployments/scripts/identity/launch_node.shTechnical Analysis
The instructions clone the mutable default branch of an external repository and then direct the user to execute a shell script from that repository. No release tag, commit hash, checksum, or cryptographic signature is specified. Consequently, the code executed later may differ from the code originally reviewed.
The first command is also malformed as displayed:
git cloneandcd identityare not separated by a newline, semicolon, or&&. Correcting this syntax would not address the underlying trust-boundary issue.Attack Path
- An attacker compromises the upstream repository, a maintainer account, or its release workflow.
- The attacker modifies
deployments/scripts/identity/launch_node.shor a component launched by that script. - A user follows the Skill instructions and clones the repository’s current default branch.
- The user executes
launch_node.sh. - The attacker-controlled code runs with the invoking user’s permissions and can access resources available to that process.
Impact Assessment
Successful exploitation permits arbitrary code execution with the privileges of the user running the script. Its scope may include reading or modifying user-accessible files, accessing environment variables, and stealing the OAuth credentials or signing-key vault described elsewhere in the Skill. The available project file does not establish privilege escalation beyond the invoking user.
- Remediation
View remediation
Remediation Suggestions
- Pin the repository to a reviewed release tag and immutable commit hash.
- Verify a signed release or published checksum before executing any fetched content.
- Review the launch script and the files it invokes before execution.
- Run the backend in a restricted container or dedicated low-privilege environment without production credentials or signing keys.
- Correct the example by separating the operations explicitly:
sh git clone --branch "<reviewed-tag>" https://github.com/agntcy/identity.git cd identity && git checkout "<verified-commit-hash>" ./deployments/scripts/identity/launch_node.sh
