T08 · Insecure Dependencies
- Location
SKILL.md:106- Finding
Unpinned Executable Container Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 106
Vulnerability Type: Unpinned third-party container image
Risk Level: MediumVulnerable Code
bash docker run -d --name searx -p 8888:8080 -v /tmp/searxng/settings.yml:/etc/searxng/settings.yml:ro searxng/searxngTechnical Analysis
The documented command downloads and executes the
searxng/searxngcontainer image without specifying either a fixed version tag or an immutable image digest. Consequently, the image resolved by this command can change between executions, and the reviewed behavior is not reproducible.If the mutable image reference or its registry distribution path is compromised, following the documented container recreation procedure could execute substituted code. This is a supply-chain risk rather than evidence that the current SearXNG image is malicious.
Attack Path
- An attacker compromises the mutable image, its publishing account, or the relevant registry distribution path.
- The attacker publishes a modified image under the reference
searxng/searxng. - An operator follows the documented recreation command.
- Docker resolves and downloads the modified image.
- Attacker-controlled code runs inside the newly created container and exposes a service through host port
8888.
Impact Assessment
Successful exploitation permits attacker-controlled code execution within the container's effective privileges and isolation boundaries. The malicious process could read the mounted SearXNG configuration file, expose a hostile service on host port
8888, access services reachable from the container network, and misuse any capabilities granted by the container runtime. No host-privileged mode or writable host-directory mount is specified, which limits the directly demonstrated scope.- Remediation
View remediation
Remediation Suggestions
Pin the container image to a reviewed immutable digest rather than relying on a mutable repository reference:
bash docker run -d --name searx \ -p 127.0.0.1:8888:8080 \ -v /tmp/searxng/settings.yml:/etc/searxng/settings.yml:ro \ searxng/searxng@sha256:<verified-image-digest>Establish a controlled dependency-update process that verifies image provenance and signatures, reviews release changes, records the approved digest, and tests the image before updating the documentation. Binding the published port to
127.0.0.1also prevents unintended access from external network interfaces when only local use is required. Additional container hardening should include dropping unnecessary Linux capabilities, enabling a read-only root filesystem where compatible, and running as a non-root user.
