T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:23
- Finding
- Unpinned Mutable Container Image Used as a Runtime Dependency<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 23 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```bash docker run -d -p 3000:3000 ghcr.io/maybe-finance/maybe:latest ``` ### Technical Analysis The documented deployment command executes the `latest` tag of a third-party container image. A mutable tag does not identify a fixed, previously reviewed artifact. The image associated with this tag may change between installations without any corresponding modification to this skill package. The command also publishes container port 3000 on every host interface by default. Consequently, whatever application version the mutable tag resolves to may become reachable over the host network. There is no evidence in the audited files that the current upstream image is malicious. The vulnerability is the absence of immutable version and digest pinning, which leaves future installations dependent on the security and continued integrity of a mutable upstream artifact. ### Attack Path 1. An attacker compromises the upstream image repository, its publication credentials, or the build process responsible for `ghcr.io/maybe-finance/maybe:latest`. 2. The attacker replaces or updates the mutable tag with a modified image. 3. A user follows the prerequisite documentation and runs the provided Docker command. 4. Docker retrieves the altered image if it is not already cached locally, or after the tag is refreshed. 5. The attacker-controlled image executes inside the container and exposes its service through host port 3000. 6. The resulting impact depends on the Docker configuration, mounted resources, container privileges, and vulnerabilities in the container runtime. ### Impact Assessment The altered image would obtain code execution within the launched container. It could access data and credentials made available to that container and interact with reachable network services. The published port could exp ...[truncated 412 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace `latest` with a reviewed, explicit release version. 2. Pin the image by immutable SHA-256 digest, for example: ```bash docker run -d \ -p 127.0.0.1:3000:3000 \ ghcr.io/maybe-finance/maybe@sha256:REVIEWED_DIGEST ``` 3. Record the corresponding semantic version and a documented process for reviewing and updating the digest. 4. Verify image signatures or provenance attestations before deployment where supported. 5. Bind the service to `127.0.0.1` unless remote access is explicitly required. 6. Run the container as a non-root user with a read-only filesystem, dropped Linux capabilities, resource limits, and no unnecessary host mounts. 7. Scan the pinned image for known vulnerabilities before recommending it to users. ]]>
