25.0.18
Release date |
Name |
Upstream release |
|---|---|---|
2026-SEP-08 |
MCR 25.0.18 |
Moby 25.0.18 and Docker CLI 25.0.7 |
Changelog
MCR 25.0.18 comprises the Moby 25.0.18 upstream release. Changes specific to this veresion of MCR include:
Fipster (Go runtime)
go1.26.6-m1, with runc rebuilt on stockgo1.26.7.
Security
MCR 25.0.18 release mitigates several CVEs that affect MCR container images. Click the dropdown link below for comprehensive details.
CVEs Resolved
CVE |
Image mitigated |
Problem details from upstream |
|---|---|---|
|
Handshake messages, such as KeyUpdate, are always considered as state-advancing, regardless of whether a handshake has been completed or not. As a result, a malicious client can keep sending KeyUpdate messages to force the server to keep performing key derivation operations indefinitely. |
|
|
Previously, resolving relative paths containing parent directory (‘..’) segments performed string conversions and buffer rewrites on each step, resulting in quadratic time complexity and high memory allocation overhead. Now, path resolution operates on a byte buffer using index-based backtracking for ‘..’ segments, eliminating the quadratic time complexity and significantly reducing memory allocations. |
|
|
Previously, DecodeElement would reset the depth counter causing it to never fire; this could lead to stack exhaustion. |
|
|
When a server is configured to support unencrypted HTTP/2, it reads a few bytes from each new connection to see if they contain the HTTP/2 client preface. ReadHeaderTimeout is unexpectedly not being applied when doing this. |
|
|
Parsing an invalid SVCB or HTTPS RR can panic when the size of a parameter value overflows the message buffer. |
|
|
The ToASCII and ToUnicode functions incorrectly accept Punycode-encoded labels that decode to an ASCII-only label. For example, ToUnicode(“xn–example-.com”) incorrectly returns the name “example.com” rather than an error. This behavior can lead to privilege escalation in programs using the idna package. For example, a program which performs privilege checks on the ASCII hostname may reject “example.com” but permit “xn–example-.com”. If that program subsequently converts the ASCII hostname to Unicode, it will inadvertently permits access to the Unicode name “example.com”. |
|
|
Enforce a recursion limit in Unmarshal to prevent stack exhaustion when parsing deeply-nested, recursive structures. |
|
|
The tar extraction routines in moby/go-archive (Unpack, UnpackLayer, Untar/UntarUncompressed, and the ApplyLayer helpers) do not confine filesystem operations to the destination directory. The extractor decides where each archive entry lands using lexical string checks and then performs the filesystem operation on a path that is resolved by the OS, so links introduced by the archive can be followed out of the destination directory. An attacker who controls the contents of an archive can create or overwrite files at arbitrary paths writable by the extracting process. |
GitHub milestones
The GitHub milestones offer full detail on the pull requests and changes as they correlate to the upstream Moby 25.0.16 release:
Major component versions
Version detail for the major components that comprise MCR 25.0.18 is presented in the table below:
Component |
Upstream Version |
Mirantis Version |
|---|---|---|
25.0.18m1 |
||
25.0.7m9 |
||
1.7.34m1 |
||
1.4.3m1 |
||
– |
||
0.12.2-m2 |
||
Fipster (Go runtime) |
go1.26.6 |
|
– |
||
– |
||
Docker Compose CLI plugin |
2.40.4 |
2.40.4m1 |
Platform test detail
Platform |
Kernel tested |
|---|---|
Oracle Linux 8.10 |
4.18.0-553.158.1.el8_10.x86_64 |
RHEL 10.1 |
6.12.0-211.49.1.el10_2.x86_64 |
RHEL 9.6 |
5.14.0-570.132.1.el9_6.x86_64 |
RHEL 8.10 |
4.18.0-553.146.1.el8_10.x86_64 |
Rocky 8.10 |
4.18.0-553.137.1.el8_10.x86_64 |
SLES15 SP7 |
6.4.0-150700.53.73-default |
Ubuntu 24.04 |
7.0.0-1011-aws |
Ubuntu 22.04 |
6.8.0-1063-aws |
Windows 2022 Core |
10.0 20348 |
Windows 2019 Core |
10.0 17763 |