CVE-2024-41110: Github.com/docker/docker Authz Zero Length Regression Vulnerability
CRITICALCVE-2024-41110 is a CRITICAL (CVSS 9.9) authz zero length regression vulnerability (CWE-187: Partial String Comparison) affecting Github.com/docker/docker libraries in the Go ecosystem. The issue involves authz zero length regression. Remediation is available by upgrading affected packages to version 23.0.15, 26.1.5, 27.1.1, 25.0.6.
CVE-2024-41110 at a Glance
Security Impact
CVSS: 9.9
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H).
How to Fix CVE-2024-41110
To remediate this vulnerability, upgrade all affected Github.com/docker/docker dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade github.com/docker/docker to 23.0.15
Upgrade github.com/docker/docker to 26.1.5
Upgrade github.com/docker/docker to 27.1.1
Upgrade github.com/docker/docker to 25.0.6
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for github.com/docker/docker
How to Check if You Are Affected
To determine whether your application is affected by CVE-2024-41110, inspect your project dependencies for Github.com/docker/docker:
inspect dependencies for github.com/docker/docker
Analyze the terminal output to locate any version of Github.com/docker/docker in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 23.0.15), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-187: Partial String Comparison, where the product performs a comparison that only examines a portion of a factor before determining whether there is a match, such as a substring, leading to resultant weaknesses. In Github.com/docker/docker, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2024-41110 Affected Github.com/docker/docker Versions
4 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
github.com/docker/docker
|
Go |
≥ 19.03.0
< 23.0.15
|
23.0.15
|
|
github.com/docker/docker
|
Go |
≥ 26.0.0
< 26.1.5
|
26.1.5
|
|
github.com/docker/docker
|
Go |
≥ 27.0.0
< 27.1.1
|
27.1.1
|
|
github.com/docker/docker
|
Go |
≥ 24.0.0
< 25.0.6
|
25.0.6
|
References
Frequently Asked Questions
What is CVE-2024-41110?
Which Github.com/docker/docker versions are affected?
What version fixes CVE-2024-41110?
Is github.com/docker/docker affected?
What is the CVSS score of CVE-2024-41110?
What CWE is associated with CVE-2024-41110?
How can I check Go dependencies for CVE-2024-41110?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-v23v-6jw2-98fq",
"modified" : "2024-08-09T19:07:47Z",
"published" : "2024-07-30T10:18:57Z",
"aliases" : [ "CVE-2024-41110" ],
"summary" : "Authz zero length regression",
"details" : "A security vulnerability has been detected in certain versions of Docker Engine, which could allow an attacker to bypass [authorization plugins (AuthZ)](https://docs.docker.com/engine/extend/plugins_authorization/) under specific circumstances. The base likelihood of this being exploited is low. This advisory outlines the issue, identifies the affected versions, and provides remediation steps for impacted users.\n\n### Impact\n\nUsing a specially-crafted API request, an Engine API client could make the daemon forward the request or response to an [authorization plugin](https://docs.docker.com/engine/extend/plugins_authorization/) 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.\n\n\nA 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](https://docs.docker.com/engine/release-notes/18.09/#security-fixes-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.\n\nDocker EE v19.03.x and all versions of Mirantis Container Runtime **are not vulnerable.**\n\n### Vulnerability details\n\n- **AuthZ bypass and privilege escalation:** An attacker could exploit a bypass using an API request with Content-Length set to 0, causing the Docker daemon to forward the request without the body to the AuthZ plugin, which might approve the request incorrectly.\n- **Initial fix:** The issue was fixed in Docker Engine [v18.09.1](https://docs.docker.com/engine/release-notes/18.09/#security-fixes-1) January 2019..\n- **Regression:** The fix was not included in Docker Engine v19.03 or newer versions. This was identified in April 2024 and patches were released for the affected versions on July 23, 2024. The issue was assigned [CVE-2024-41110](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-41110).\n\n### Patches\n\n- docker-ce v27.1.1 containes patches to fix the vulnerability.\n- Patches have also been merged into the master, 19.0, 20.0, 23.0, 24.0, 25.0, 26.0, and 26.1 release branches.\n\n### Remediation steps\n\n- If you are running an affected version, update to the most recent patched version.\n- Mitigation if unable to update immediately:\n - Avoid using AuthZ plugins.\n - Restrict access to the Docker API to trusted parties, following the principle of least privilege.\n\n\n### References\n\n- https://github.com/moby/moby/commit/fc274cd2ff4cf3b48c91697fb327dd1fb95588fb\n- https://github.com/moby/moby/commit/a79fabbfe84117696a19671f4aa88b82d0f64fc1\n- https://www.docker.com/blog/docker-security-advisory-docker-engine-authz-plugin/",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H"
}, {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Go",
"name" : "github.com/docker/docker"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "19.03.0"
}, {
"fixed" : "23.0.15"
} ]
} ]
}, {
"package" : {
"ecosystem" : "Go",
"name" : "github.com/docker/docker"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "26.0.0"
}, {
"fixed" : "26.1.5"
} ]
} ]
}, {
"package" : {
"ecosystem" : "Go",
"name" : "github.com/docker/docker"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "27.0.0"
}, {
"fixed" : "27.1.1"
} ]
} ]
}, {
"package" : {
"ecosystem" : "Go",
"name" : "github.com/docker/docker"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "24.0.0"
}, {
"fixed" : "25.0.6"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/moby/moby/security/advisories/GHSA-v23v-6jw2-98fq"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2024-41110"
}, {
"type" : "WEB",
"url" : "https://github.com/moby/moby/commit/411e817ddf710ff8e08fa193da80cb78af708191"
}, {
"type" : "WEB",
"url" : "https://github.com/moby/moby/commit/42f40b1d6dd7562342f832b9cd2adf9e668eeb76"
}, {
"type" : "WEB",
"url" : "https://github.com/moby/moby/commit/65cc597cea28cdc25bea3b8a86384b4251872919"
}, {
"type" : "WEB",
"url" : "https://github.com/moby/moby/commit/852759a7df454cbf88db4e954c919becd48faa9b"
}, {
"type" : "WEB",
"url" : "https://github.com/moby/moby/commit/a31260625655cff9ae226b51757915e275e304b0"
}, {
"type" : "WEB",
"url" : "https://github.com/moby/moby/commit/a79fabbfe84117696a19671f4aa88b82d0f64fc1"
}, {
"type" : "WEB",
"url" : "https://github.com/moby/moby/commit/ae160b4edddb72ef4bd71f66b975a1a1cc434f00"
}, {
"type" : "WEB",
"url" : "https://github.com/moby/moby/commit/ae2b3666c517c96cbc2adf1af5591a6b00d4ec0f"
}, {
"type" : "WEB",
"url" : "https://github.com/moby/moby/commit/cc13f952511154a2866bddbb7dddebfe9e83b801"
}, {
"type" : "WEB",
"url" : "https://github.com/moby/moby/commit/fc274cd2ff4cf3b48c91697fb327dd1fb95588fb"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/moby/moby"
}, {
"type" : "WEB",
"url" : "https://www.docker.com/blog/docker-security-advisory-docker-engine-authz-plugin"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-187" ],
"severity" : "CRITICAL",
"github_reviewed" : true,
"github_reviewed_at" : "2024-07-30T10:18:57Z",
"nvd_published_at" : "2024-07-24T17:15:11Z"
}
}