Cloudanix VulnDB

CVE-2024-41110

Critical · 9.9

CVSS

9.9

EPSS

16.5%

Published

Jul 24, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A flaw in Docker's authorization checks can let attackers slip through security rules that are supposed to control what containers are allowed to do, potentially giving them more access than intended.

Exploitation
Remote Authenticated
Attacker needs
Low Privilege
Complexity
Low
Impact
Privilege Gain
Component
Container Runtime
Class
Authorization Bypass
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The vulnerability permits an Engine API client to issue specially crafted requests that cause the daemon to forward traffic to AuthZ plugins without including the request or response body, allowing bypass of plugins that base authorization decisions on body content.

Why it matters to the business

Organizations relying on authorization plugins for access control in container environments face risk of unauthorized container actions including privilege escalation; the issue is a regression of a prior fix and affects many Docker deployments until upgraded.

How an attack unfolds

An attacker with access to the Docker Engine API crafts a request that omits the body payload; the daemon forwards the incomplete request to the AuthZ plugin, which then grants access it would have denied if the full body had been inspected, enabling unauthorized operations.

How to fix it

Upgrade immediately to docker-ce v27.1.1 or the patched releases in the 19.03, 20.0, 23.0, 24.0, 25.0, 26.0, or 26.1 branches; if immediate upgrade is not possible, disable AuthZ plugins or restrict Docker API access to trusted clients only under least privilege.

How to confirm the fix worked

Verify the installed Docker Engine version matches a patched release; test AuthZ plugin behavior by sending both complete and body-omitted requests to confirm the plugin now receives full payloads before making decisions.

Typical attack path

  1. Obtain network or local access to the Docker Engine API endpoint
  2. Identify that an AuthZ plugin relying on request/response bodies is in use
  3. Craft and send an API request deliberately omitting the body content
  4. Receive authorization approval for an action that should have been denied
  5. Perform the unauthorized container operation such as image pull or container start

How to detect it

Review Docker daemon logs and API access logs for requests that appear truncated or lack expected body content; correlate with AuthZ plugin decision logs to identify cases where authorization was granted without full request inspection.

What your security team should do

  • Prioritize upgrade of all Docker Engine instances to the fixed versions listed in remediation guidance
  • Audit environments for active use of AuthZ plugins that inspect request bodies
  • Temporarily restrict Docker API exposure while upgrades are applied
  • Monitor EPSS and exploit maturity indicators for any increase in observed attempts

The record

Moby is an open-source project created by Docker for software containerization. A security vulnerability has been detected in certain versions of Docker Engine, which could allow an attacker to bypass authorization plugins (AuthZ) under specific circumstances. The base likelihood of this being exploited is low. Using a specially-crafted API request, an Engine API client could make the daemon forward the request or response to an authorization plugin without the body. In certain circumstances, the authorization plugin may allow a request which it would have otherwise denied if the body had been forwarded to it. A security issue was discovered In 2018, where an attacker could bypass AuthZ plugins using a specially crafted API request. This could lead to unauthorized actions, including privilege escalation. Although this issue was fixed in Docker Engine v18.09.1 in January 2019, the fix was not carried forward to later major versions, resulting in a regression. Anyone who depends on authorization plugins that introspect the request and/or response body to make access control decisions is potentially impacted. Docker EE v19.03.x and all versions of Mirantis Container Runtime are not vulnerable. docker-ce v27.1.1 containes patches to fix the vulnerability. Patches have also been merged into the master, 19.03, 20.0, 23.0, 24.0, 25.0, 26.0, and 26.1 release branches. If one is unable to upgrade immediately, avoid using AuthZ plugins and/or restrict access to the Docker API to trusted parties, following the principle of least privilege.

Affected packages

Ecosystem Package Introduced Fixed
Go github.com/docker/docker 19.03.0 23.0.15
Go github.com/docker/docker 20.10.0+incompatible 25.0.6+incompatible
Go github.com/docker/docker 24.0.0 25.0.6
Go github.com/docker/docker 26.0.0 26.1.5
Go github.com/docker/docker 27.0.0 27.1.1
Go github.com/moby/moby 20.10.0+incompatible 25.0.6+incompatible
Chainguard aactl 0 0.4.12-r16
Chainguard apko 0 0.17.0-r1
Chainguard argo-workflow-cli 0 3.6.5-r2
Chainguard argo-workflow-cli-fips 0 3.6.5-r2
Chainguard argo-workflow-controller 0 3.6.5-r2
Chainguard argo-workflow-controller-compat 0 3.6.5-r2
Chainguard argo-workflow-controller-compat-fips 0 3.6.5-r2
Chainguard argo-workflow-controller-fips 0 3.6.5-r2
Chainguard argo-workflow-executor 0 3.6.5-r2
Chainguard argo-workflow-executor-compat 0 3.6.5-r2
Chainguard argo-workflow-executor-compat-fips 0 3.6.5-r2
Chainguard argo-workflow-executor-fips 0 3.6.5-r2
Chainguard argo-workflows 0 3.6.5-r2
Chainguard argo-workflows-fips 0 3.6.5-r2
Chainguard argo-workflows-known-hosts 0 3.6.5-r2
Chainguard argo-workflows-known-hosts-fips 0 3.6.5-r2
Chainguard argo-workflows-ui 0 3.6.5-r2
Chainguard bom 0 0.6.0-r8
Chainguard buf 0 1.35.1-r1
Chainguard buildah 0 1.37.0-r0
Chainguard buildctl 0 0.20.1-r3
Chainguard buildkitd 0 0.20.1-r3
Chainguard cadvisor 0 0.50.0-r0
Chainguard cadvisor-compat 0 0.50.0-r0
Chainguard cadvisor-fips 0 0.50.0-r0
Chainguard cert-manager-1.12 0 1.12.12-r3
Chainguard cert-manager-1.12-acmesolver 0 1.12.12-r3
Chainguard cert-manager-1.12-cainjector 0 1.12.12-r3
Chainguard cert-manager-1.12-controller 0 1.12.12-r3
Chainguard cert-manager-1.12-webhook 0 1.12.12-r3
Chainguard cert-manager-1.14 0 1.14.7-r3
Chainguard cert-manager-1.14-acmesolver 0 1.14.7-r3
Chainguard cert-manager-1.14-cainjector 0 1.14.7-r3
Chainguard cert-manager-1.14-controller 0 1.14.7-r3
Chainguard cert-manager-1.14-startupapicheck 0 1.14.7-r3
Chainguard cert-manager-1.14-webhook 0 1.14.7-r3
Chainguard cert-manager-acmesolver-1.12 0 1.12.12-r3
Chainguard cert-manager-acmesolver-1.12-bitnami-compat 0 1.12.12-r3
Chainguard cert-manager-acmesolver-1.12-iamguarded-compat 0 1.12.12-r3
Chainguard cert-manager-acmesolver-fips-1.12 0 1.12.12-r5
Chainguard cert-manager-cainjector-1.12 0 1.12.12-r3
Chainguard cert-manager-cainjector-1.12-bitnami-compat 0 1.12.12-r3
Chainguard cert-manager-cainjector-1.12-iamguarded-compat 0 1.12.12-r3
Chainguard cert-manager-cainjector-fips-1.12 0 1.12.12-r5
Chainguard cert-manager-cmctl 0 2.1.0-r3
Chainguard cert-manager-cmctl-fips 0 2.1.0-r4
Chainguard cert-manager-controller-1.12 0 1.12.12-r3
Chainguard cert-manager-controller-1.12-bitnami-compat 0 1.12.12-r3
Chainguard cert-manager-controller-1.12-iamguarded-compat 0 1.12.12-r3
Chainguard cert-manager-controller-fips-1.12 0 1.12.12-r5
Chainguard cert-manager-fips-1.12 0 1.12.12-r5
Chainguard cert-manager-fips-1.12-acmesolver 0 1.12.12-r5
Chainguard cert-manager-fips-1.12-cainjector 0 1.12.12-r5
Chainguard cert-manager-fips-1.12-cmctl 0 1.12.12-r5
Chainguard cert-manager-fips-1.12-controller 0 1.12.12-r5
Chainguard cert-manager-fips-1.12-webhook 0 1.12.12-r5
Chainguard cert-manager-fips-1.14 0 1.14.7-r5
Chainguard cert-manager-fips-1.14-acmesolver 0 1.14.7-r5
Chainguard cert-manager-fips-1.14-cainjector 0 1.14.7-r5
Chainguard cert-manager-fips-1.14-cmctl 0 1.14.7-r5
Chainguard cert-manager-fips-1.14-controller 0 1.14.7-r5
Chainguard cert-manager-fips-1.14-startupapicheck 0 1.14.7-r5
Chainguard cert-manager-fips-1.14-webhook 0 1.14.7-r5
Chainguard cert-manager-webhook-1.12 0 1.12.12-r3
Chainguard cert-manager-webhook-1.12-bitnami-compat 0 1.12.12-r3
Chainguard cert-manager-webhook-1.12-iamguarded-compat 0 1.12.12-r3
Chainguard cert-manager-webhook-fips-1.12 0 1.12.12-r5
Chainguard chainctl 0 0.2.59-r0
Chainguard chartmuseum 0 0.16.2-r4
Chainguard chartmuseum-fips 0 0.16.2-r2
Chainguard cilium-cli 0 0.16.15-r1
Chainguard cmctl-1.12 0 1.12.12-r3
Chainguard cmctl-1.12-fips 0 1.12.12-r5
Chainguard cmctl-1.14 0 1.14.7-r3
Chainguard cmctl-1.14-fips 0 1.14.7-r5
Chainguard cmctl-fips-1.12 0 1.12.12-r5
Chainguard cosign 0 2.3.0-r1
Chainguard cosign-fips 0 2.3.0-r1
Chainguard crane 0 0
Chainguard crane-cov 0 0
Chainguard cri-tools 0 1.30.1-r2
Chainguard crictl 0 1.30.1-r2
Chainguard critest 0 1.30.1-r2
Chainguard crossplane 0 1.16.0-r3
Chainguard crossplane-crank 0 1.16.0-r3
Chainguard crossplane-xfn 0 1.16.0-r3
Chainguard ctop 0 0.7.7-r17
Chainguard dagdotdev 0 0.0.4-r1
Chainguard dagger 0 0.12.3-r0
Chainguard datadog-agent 0 7.55.2-r1
Chainguard datadog-agent-core-integrations 0 7.55.2-r1
Chainguard datadog-agent-core-integrations-fips 0 7.64.1-r0
Chainguard datadog-agent-fakeintake 0 7.55.2-r1
Chainguard datadog-agent-fakeintake-fips 0 7.64.1-r0
Chainguard datadog-agent-fips 0 7.64.1-r0
Chainguard datadog-agent-jmx 0 7.55.2-r1
Chainguard datadog-agent-jmx-fips 0 7.64.1-r0
Chainguard datadog-agent-oci-compat 0 7.55.2-r1
Chainguard datadog-agent-oci-compat-fips 0 7.64.1-r0
Chainguard datadog-agent-s6-overlay 0 7.55.2-r1
Chainguard datadog-agent-s6-overlay-fips 0 7.64.1-r0
Chainguard datadog-cluster-agent 0 7.55.2-r1
Chainguard datadog-cluster-agent 0 7.64.1-r0
Chainguard datadog-cluster-agent-fips 0 7.64.1-r0
Chainguard datadog-cluster-agent-oci-compat 0 7.55.2-r1
Chainguard datadog-cluster-agent-oci-compat 0 7.64.1-r0
Chainguard datadog-cluster-agent-oci-compat-fips 0 7.64.1-r0
Chainguard dive 0 0.12.0-r10
Chainguard docker 0 27.1.1-r0
Chainguard docker-compose 0 2.29.1-r0
Chainguard docker-config-mirror-gcr 0 27.1.1-r0
Chainguard docker-credential-cgr 0 0.2.59-r0
Chainguard docker-credential-gcr 0 2.1.23-r1
Chainguard docker-dind 0 27.1.1-r0
Chainguard docker-dind-compat 0 27.1.1-r0
Chainguard docker-init 0 27.1.1-r0
Chainguard docker-modprobe-compat 0 27.1.1-r0
Chainguard docker-oci-entrypoint 0 27.1.1-r0
Chainguard docker-rootless 0 27.1.1-r0
Chainguard dockerd 0 27.1.1-r0
Chainguard dockerd-oci-entrypoint 0 27.1.1-r0
Chainguard dockerd-service 0 27.1.1-r0
Chainguard dogstatsd 0 7.55.2-r1
Chainguard eksctl 0 0.188.0-r0
Chainguard falcoctl 0 0.8.0-r5
Chainguard falcoctl-fips 0 0.8.0-r5
Chainguard falcoctl-fips-0.4 0 0.4.0-r12
Chainguard filebeat 0 8.15.0-r0
Chainguard filebeat-fips 0 8.15.0-r0
Chainguard flux 0 2.3.0-r5
Chainguard flux-compat 0 2.3.0-r5
Chainguard flux-helm-controller 0 1.0.1-r5
Chainguard flux-helm-controller-bitnami-compat 0 1.0.1-r5
Chainguard flux-helm-controller-iamguarded-compat 0 1.0.1-r5
Chainguard flux-image-reflector-controller 0 0.32.0-r6
Chainguard flux-image-reflector-controller-iamguarded-compat 0 0.32.0-r6
Chainguard flux-source-controller 0 1.3.0-r6
Chainguard flux-source-controller-bitnami-compat 0 1.3.0-r6
Chainguard flux-source-controller-iamguarded-compat 0 1.3.0-r6
Chainguard fluxcd-source-controller-bitnami-compat 0 1.3.0-r6
Chainguard gatekeeper-3.15 0 3.15.1-r7
Chainguard gatekeeper-3.15-compat 0 3.15.1-r7
Chainguard gatekeeper-3.15-crds 0 3.15.1-r7
Chainguard gatekeeper-3.15-crds-compat 0 3.15.1-r7
Chainguard gatekeeper-3.15-gator 0 3.15.1-r7
Chainguard gatekeeper-3.16 0 3.16.3-r3
Chainguard gatekeeper-3.16-compat 0 3.16.3-r3
Chainguard gatekeeper-3.16-crds 0 3.16.3-r3
Chainguard gatekeeper-3.16-crds-compat 0 3.16.3-r3
Chainguard gatekeeper-3.16-gator 0 3.16.3-r3
Chainguard gh 0 2.53.0-r1
Chainguard gh-doc 0 2.53.0-r1
Chainguard gitlab-docker-machine-17.3 0 17.3.3-r1
Chainguard gitlab-rails-ee-17.0 0 17.0.6-r1
Chainguard gitlab-rails-ee-17.3 0 17.3.1-r1
Chainguard gitlab-rails-ee-assets-17.3 0 17.3.1-r1
Chainguard gitlab-rails-ee-assets-fips-17.3 0 17.3.1-r1
Chainguard gitlab-rails-ee-doc-17.3 0 17.3.1-r1
Chainguard gitlab-rails-ee-doc-fips-17.3 0 17.3.1-r1
Chainguard gitlab-rails-ee-fips-17.0 0 17.0.6-r1
Chainguard gitlab-rails-ee-fips-17.3 0 17.3.1-r1
Chainguard gitlab-runner-17.3 0 17.3.3-r1
Chainguard gitlab-runner-helper-17.3 0 17.3.3-r1
Chainguard gitlab-runner-helper-compat-17.3 0 17.3.3-r1
Chainguard gitlab-runner-helper-oci-entrypoint-17.3 0 17.3.3-r1
Chainguard gitlab-runner-oci-entrypoint-17.3 0 17.3.3-r1
Chainguard gitsign 0 0.10.2-r5
Chainguard gitsign-config 0 0.10.2-r5
Chainguard gitsign-credential-cache 0 0.10.2-r5
Chainguard goreleaser 0 2.1.0-r1
Chainguard grafana-alloy 0 1.3.0-r0
Chainguard grafana-alloy-compat 0 1.3.0-r0
Chainguard grafana-alloy-fips 0 1.3.0-r0
Chainguard grype 0 0.79.3-r1
Chainguard guac 0 0.8.0-r1
Chainguard guaccsub 0 0.8.0-r1
Chainguard guacgql 0 0.8.0-r1
Chainguard guacingest 0 0.8.0-r1
Chainguard guacone 0 0.8.0-r1
Chainguard harbor-2.11 0 2.11.0-r2
Chainguard harbor-2.11-exporter 0 2.11.0-r2
Chainguard harbor-2.11-jobservice 0 2.11.0-r2
Chainguard harbor-2.11-photon-registry 0 2.11.0-r2
Chainguard harbor-2.11-portal 0 2.11.0-r2
Chainguard harbor-2.11-portal-nginx-config 0 2.11.0-r2
Chainguard harbor-2.11-redis-compat 0 2.11.0-r2
Chainguard harbor-2.11-registryctl 0 2.11.0-r2
Chainguard harbor-fips-2.11 0 2.11.0-r2
Chainguard harbor-fips-2.11-db 0 2.11.0-r2
Chainguard harbor-fips-2.11-exporter 0 2.11.0-r2
Chainguard harbor-fips-2.11-jobservice 0 2.11.0-r2
Chainguard harbor-fips-2.11-photon-registry 0 2.11.0-r2
Chainguard harbor-fips-2.11-portal 0 2.11.0-r2
Chainguard harbor-fips-2.11-redis-compat 0 2.11.0-r2

Related vulnerabilities