T08 · Insecure Dependencies
- Location
scripts/backup_to_proton.sh:82- Finding
Unpinned Docker Image Executes with Access to Sensitive Backup Volumes
- Content
View full analysis
/dev/null || \ echo " ⚠️ Failed to backup $vol" ``` ### Technical Analysis The script executes the Docker image `alpine` without a version or immutable digest. The default tag is mutable, so the image retrieved and executed later may differ from the image that was reviewed. The container receives read access to the selected Docker volume through the `/data` mount and write access to the Proton Drive backup directory through `/backup`. The selected volumes can contain Langfuse, PostgreSQL, ClickHouse, Qdrant, Weaviate, or pgvector data. A malicious or compromised image could inspect that data, modify generated archives, or place arbitrary files in the synchronized backup directory. If the image is not already available locally, Docker may contact an external container registry to retrieve it. This behavior also conflicts with the `SKILL.md` metadata declaration that the skill has no outbound network behavior. ### Attack Path 1. An attacker compromises the mutable `alpine` tag, its registry distribution path, or another component in the container-image supply chain. 2. A user invokes the script with the `--docker` argument. 3. Docker retrieves or resolves the unpinned image and starts the attacker-controlled container. 4. The container reads data from the mounted application volume at `/data`. 5. The container can tamper with archives or write additional content under `/backup`, which maps to the Proton Drive synchronization directory. 6. Any maliciously generated content may subsequently be uploaded by the Proton Drive desktop client. ### Impact Assessment Successful exploitation is limi ...[truncated 582 chars]- Remediation
View remediation
