CVE-2014-8179
📋 TL;DR
This vulnerability in Docker Engine allows attackers to inject malicious attributes into JSON manifests during image pulls, bypassing pull-by-digest validation. This could enable attackers to substitute malicious images for legitimate ones. Affected users are those running vulnerable Docker Engine versions before 1.8.3 or CS Docker Engine before 1.6.2-CS7.
💻 Affected Systems
- Docker Engine
- CS Docker Engine
📦 What is this software?
Cs Engine by Docker
Docker by Docker
Opensuse by Opensuse
⚠️ Risk & Real-World Impact
Worst Case
Attackers could replace legitimate container images with malicious ones containing backdoors, malware, or cryptocurrency miners, leading to complete system compromise and data exfiltration.
Likely Case
Attackers could substitute benign images with malicious versions that appear legitimate, potentially leading to unauthorized code execution within containers.
If Mitigated
With proper image signing and verification practices, the risk is reduced to minimal as the signature mismatch would be detected.
🎯 Exploit Status
Exploitation requires the ability to manipulate image manifests during pull operations, which could be achieved through man-in-the-middle attacks or compromised registries.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Docker Engine 1.8.3, CS Docker Engine 1.6.2-CS7
Vendor Advisory: https://blog.docker.com/2015/10/security-release-docker-1-8-3-1-6-2-cs7/
Restart Required: Yes
Instructions:
1. Stop all running containers. 2. Backup container data. 3. Update Docker Engine using your package manager: 'sudo apt-get update && sudo apt-get install docker-engine' or 'sudo yum update docker-engine'. 4. Restart Docker service: 'sudo systemctl restart docker' or 'sudo service docker restart'. 5. Verify version with 'docker version'.
🔧 Temporary Workarounds
Use image signing and verification
linuxImplement Docker Content Trust to verify image signatures before running containers
export DOCKER_CONTENT_TRUST=1
Use trusted registries only
linuxConfigure Docker to pull images only from trusted, internal registries
docker pull myregistry.local/image:tag
🧯 If You Can't Patch
- Implement strict network controls to prevent man-in-the-middle attacks on Docker registry traffic
- Use Docker Content Trust (DCT) with DOCKER_CONTENT_TRUST=1 environment variable for all image pulls
🔍 How to Verify
Check if Vulnerable:
Run 'docker version' and check if Client/Server version is below 1.8.3 for Docker Engine or below 1.6.2-CS7 for CS Docker Engine
Check Version:
docker version | grep -A2 'Client:' | grep 'Version:' && docker version | grep -A2 'Server:' | grep 'Version:'
Verify Fix Applied:
Run 'docker version' and confirm version is 1.8.3 or higher for Docker Engine, or 1.6.2-CS7 or higher for CS Docker Engine
📡 Detection & Monitoring
Log Indicators:
- Unexpected image pulls from unusual sources
- Image hash mismatches in Docker logs
- Failed signature verification attempts
Network Indicators:
- Unencrypted Docker registry traffic
- Suspicious connections to external registries during image pulls
SIEM Query:
source="docker" AND ("pull" OR "manifest") AND ("error" OR "mismatch" OR "validation")
🔗 References
- http://lists.opensuse.org/opensuse-security-announce/2015-10/msg00014.html
- http://lists.opensuse.org/opensuse-updates/2015-10/msg00036.html
- https://blog.docker.com/2015/10/security-release-docker-1-8-3-1-6-2-cs7/
- https://github.com/docker/docker/blob/master/CHANGELOG.md#183-2015-10-12
- https://groups.google.com/forum/#%21msg/docker-dev/bWVVtLNbFy8/UaefOqMOCAAJ
- https://www.docker.com/legal/docker-cve-database
- http://lists.opensuse.org/opensuse-security-announce/2015-10/msg00014.html
- http://lists.opensuse.org/opensuse-updates/2015-10/msg00036.html
- https://blog.docker.com/2015/10/security-release-docker-1-8-3-1-6-2-cs7/
- https://github.com/docker/docker/blob/master/CHANGELOG.md#183-2015-10-12
- https://groups.google.com/forum/#%21msg/docker-dev/bWVVtLNbFy8/UaefOqMOCAAJ
- https://www.docker.com/legal/docker-cve-database