T08 · Insecure Dependencies
- Location
scripts/update-prompts.sh:8- Finding
Unverified Mutable Prompt-Library Update
- Content
View full analysis
/dev/null)" ]; then IMAGES_MISSING=true fi TMP_DIR=$(mktemp -d) trap 'rm -rf "$TMP_DIR"' EXIT echo "Fetching latest prompt library..." git clone --depth=1 "$UPSTREAM" "$TMP_DIR" 2>&1 || { echo "Error: failed to fetch from upstream. Check your network connection." exit 1 } NEW_VERSION=$(cd "$TMP_DIR" && git rev-parse --short HEAD) if [ "$OLD_VERSION" = "$NEW_VERSION" ] && [ "$IMAGES_MISSING" = false ]; then echo "Prompt library already up to date ($NEW_VERSION)." exit 0 fi if [ "$OLD_VERSION" = "$NEW_VERSION" ] && [ "$IMAGES_MISSING" = true ]; then echo "Prompt library text is current ($NEW_VERSION), but images are missing (light install)." echo "Downloading full library with images..." fi CHANGES=$(cd "$TMP_DIR" && git log -1 --format='%s' 2>/dev/null || echo "") rm -rf "$TMP_DIR/.git" rm -rf "$LIB_DIR" mv "$TMP_DIR" "$LIB_DIR" ``` ### Technical Analysis The update process clones the current default branch of a third-party GitHub repository without pinning it to an approved commit or release and without verifying a cryptographic checksum or signature. The downloaded repository then replaces the existing trusted prompt library wholesale. The downloaded Markdown is not directly executed as shell code. However, the Skill requires the Agent to search and read this content as mandatory grounding for generated prompts. Consequently, the remote repository is an Agent-visible dependency whose effective content can change after the Skill package has been reviewed. ...[truncated 2272 chars]- Remediation
View remediation
