Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Dec 9, 2025

This PR contains the following updates:

Package Type Update Change
DavidAnson/markdownlint-cli2-action action major v20.0.0 -> v22.0.0

Release Notes

DavidAnson/markdownlint-cli2-action (DavidAnson/markdownlint-cli2-action)

v22.0.0: Update markdownlint version (markdownlint-cli2 v0.20.0, markdownlint v0.40.0).

Compare Source

v21.0.0: Update markdownlint version (markdownlint-cli2 v0.19.0, markdownlint v0.39.0).

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from lotyp as a code owner December 9, 2025 10:08
@renovate renovate bot enabled auto-merge (squash) December 9, 2025 10:08
@github-actions github-actions bot added the type: maintenance For maintenance, refactor and testing (perf, chore, style, revert, refactor, test, build, ci) label Dec 9, 2025
@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:92f526f9bd4ac426762e094bcc8290ac809b960e8002b5f454c51027f615b8c9
vulnerabilitiescritical: 1 high: 3 medium: 0 low: 0
platformlinux/amd64
size114 MB
packages250
📦 Base Image php:8.3-alpine
also known as
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.23
  • 8.3.28-alpine
  • 8.3.28-alpine3.23
  • 8.3.28-cli-alpine
  • 8.3.28-cli-alpine3.23
digestsha256:4a302affec0a0d4e5f920c286b82ed427c1c984d688eec0f2a0db8df6e59dada
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/[email protected]

critical 9.1: CVE--2024--45337 Improper Authorization

Affected range<0.31.0
Fixed version0.31.0
CVSS Score9.1
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score42.906%
EPSS Percentile97th percentile
Description

Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass.

The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions.

For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key.

Since this API is widely misused, as a partial mitigation golang.org/x/[email protected] enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth.

Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance.

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

high : CVE--2025--22869

Affected range<0.35.0
Fixed version0.35.0
EPSS Score0.217%
EPSS Percentile44th percentile
Description

SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted.

critical: 0 high: 1 medium: 0 low: 0 libpng 1.6.51-r1 (apk)

pkg:apk/alpine/[email protected]?os_name=alpine&os_version=3.23

high : CVE--2025--66293

Affected range<1.6.53-r0
Fixed version1.6.53-r0
EPSS Score0.042%
EPSS Percentile13th percentile
Description

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:970912660c8061a8c5c8ddcb14aeeb157358ff416619cab04a4d64f63f0758d6
vulnerabilitiescritical: 1 high: 3 medium: 0 low: 0
platformlinux/amd64
size109 MB
packages251
📦 Base Image php:8.3-fpm-alpine
also known as
  • 8.3-fpm-alpine3.23
  • 8.3.28-fpm-alpine
  • 8.3.28-fpm-alpine3.23
digestsha256:012d0ae862d425ed0eb4766e6fadf081f6930885cb9a9069d4405d3fa1a62416
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/[email protected]

critical 9.1: CVE--2024--45337 Improper Authorization

Affected range<0.31.0
Fixed version0.31.0
CVSS Score9.1
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score42.906%
EPSS Percentile97th percentile
Description

Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass.

The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions.

For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key.

Since this API is widely misused, as a partial mitigation golang.org/x/[email protected] enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth.

Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance.

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

high : CVE--2025--22869

Affected range<0.35.0
Fixed version0.35.0
EPSS Score0.217%
EPSS Percentile44th percentile
Description

SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted.

critical: 0 high: 1 medium: 0 low: 0 libpng 1.6.51-r1 (apk)

pkg:apk/alpine/[email protected]?os_name=alpine&os_version=3.23

high : CVE--2025--66293

Affected range<1.6.53-r0
Fixed version1.6.53-r0
EPSS Score0.042%
EPSS Percentile13th percentile
Description

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:0c98b5aaa7c6bccee93e297fe70e73a611d846cb1f9a54e7f90943eaccb8ae63
vulnerabilitiescritical: 1 high: 3 medium: 0 low: 0
platformlinux/amd64
size113 MB
packages250
📦 Base Image php:8.2-alpine
also known as
  • 8.2-alpine3.23
  • 8.2-cli-alpine
  • 8.2.29-alpine
  • 8.2.29-alpine3.23
  • 8.2.29-cli-alpine
  • 8.2.29-cli-alpine3.23
digestsha256:83b95c253e9a2906f9f84c73156e96433331736a0fdc0f7e65ae86c436217e27
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/[email protected]

critical 9.1: CVE--2024--45337 Improper Authorization

Affected range<0.31.0
Fixed version0.31.0
CVSS Score9.1
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score42.906%
EPSS Percentile97th percentile
Description

Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass.

The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions.

For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key.

Since this API is widely misused, as a partial mitigation golang.org/x/[email protected] enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth.

Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance.

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

high : CVE--2025--22869

Affected range<0.35.0
Fixed version0.35.0
EPSS Score0.217%
EPSS Percentile44th percentile
Description

SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted.

critical: 0 high: 1 medium: 0 low: 0 libpng 1.6.51-r1 (apk)

pkg:apk/alpine/[email protected]?os_name=alpine&os_version=3.23

high : CVE--2025--66293

Affected range<1.6.53-r0
Fixed version1.6.53-r0
EPSS Score0.042%
EPSS Percentile13th percentile
Description

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.3-alpine

Name8.3.28-alpine3.23
Digestsha256:4a302affec0a0d4e5f920c286b82ed427c1c984d688eec0f2a0db8df6e59dada
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
Pushed5 days ago
Size38 MB
Packages61
Flavoralpine
OS3.23
Runtime8.3.28
The base image is also available under the supported tag(s): 8.3-cli-alpine, 8.3-cli-alpine3.23, 8.3.28-alpine, 8.3.28-alpine3.23, 8.3.28-cli-alpine, 8.3.28-cli-alpine3.23

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.0-cli-alpine
  • 8.5.0-cli-alpine3.23
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.23
  • 8-cli-alpine
  • 8-cli-alpine3.23
  • cli-alpine
  • cli-alpine3.23
  • alpine
  • alpine3.23
  • 8.5.0-alpine
  • 8.5.0-alpine3.23
  • 8.5-alpine3.23
  • 8-alpine
  • 8-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image contains 1 fewer package
  • Image has similar size
  • Image has same number of vulnerabilities
Image details:
  • Size: 44 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.5.0
5 days ago



8.4-alpine
Minor runtime version update
Also known as:
  • 8.4.15-cli-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.15-alpine
  • 8.4.15-alpine3.23
  • 8.4-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains equal number of packages
Image details:
  • Size: 41 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.4.15
5 days ago



@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:9e676d790766ac4d4bfd4fcaee8b00c5acee4f15b08acdd5423baa36b8070985
vulnerabilitiescritical: 1 high: 3 medium: 0 low: 0
platformlinux/amd64
size118 MB
packages250
📦 Base Image php:8.4-alpine
also known as
  • 8.4-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.15-alpine
  • 8.4.15-alpine3.23
  • 8.4.15-cli-alpine3.23
digestsha256:2c630e03938de872a0333186338792cbca8fbe928362c6dac6dccb4f0daabcac
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/[email protected]

critical 9.1: CVE--2024--45337 Improper Authorization

Affected range<0.31.0
Fixed version0.31.0
CVSS Score9.1
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score42.906%
EPSS Percentile97th percentile
Description

Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass.

The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions.

For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key.

Since this API is widely misused, as a partial mitigation golang.org/x/[email protected] enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth.

Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance.

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

high : CVE--2025--22869

Affected range<0.35.0
Fixed version0.35.0
EPSS Score0.217%
EPSS Percentile44th percentile
Description

SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted.

critical: 0 high: 1 medium: 0 low: 0 libpng 1.6.51-r1 (apk)

pkg:apk/alpine/[email protected]?os_name=alpine&os_version=3.23

high : CVE--2025--66293

Affected range<1.6.53-r0
Fixed version1.6.53-r0
EPSS Score0.042%
EPSS Percentile13th percentile
Description

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:dfff552a85464589655de847ee17a26ef9e3719e79a77f7a1c8972cbd63d0b70
vulnerabilitiescritical: 1 high: 3 medium: 0 low: 0
platformlinux/amd64
size132 MB
packages285
📦 Base Image php:8.2-alpine
also known as
  • 8.2-alpine3.23
  • 8.2-cli-alpine
  • 8.2.29-alpine
  • 8.2.29-alpine3.23
  • 8.2.29-cli-alpine
  • 8.2.29-cli-alpine3.23
digestsha256:83b95c253e9a2906f9f84c73156e96433331736a0fdc0f7e65ae86c436217e27
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/[email protected]

critical 9.1: CVE--2024--45337 Improper Authorization

Affected range<0.31.0
Fixed version0.31.0
CVSS Score9.1
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score42.906%
EPSS Percentile97th percentile
Description

Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass.

The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions.

For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key.

Since this API is widely misused, as a partial mitigation golang.org/x/[email protected] enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth.

Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance.

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

high : CVE--2025--22869

Affected range<0.35.0
Fixed version0.35.0
EPSS Score0.217%
EPSS Percentile44th percentile
Description

SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted.

critical: 0 high: 1 medium: 0 low: 0 libpng 1.6.51-r1 (apk)

pkg:apk/alpine/[email protected]?os_name=alpine&os_version=3.23

high : CVE--2025--66293

Affected range<1.6.53-r0
Fixed version1.6.53-r0
EPSS Score0.042%
EPSS Percentile13th percentile
Description

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.3-fpm-alpine

Name8.3.28-fpm-alpine3.23
Digestsha256:012d0ae862d425ed0eb4766e6fadf081f6930885cb9a9069d4405d3fa1a62416
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
Pushed5 days ago
Size34 MB
Packages62
Flavoralpine
OS3.23
Runtime8.3.28
The base image is also available under the supported tag(s): 8.3-fpm-alpine3.23, 8.3.28-fpm-alpine, 8.3.28-fpm-alpine3.23

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
8.4-fpm-alpine
Minor runtime version update
Also known as:
  • 8.4.15-fpm-alpine
  • 8.4.15-fpm-alpine3.23
  • 8.4-fpm-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Tag was pushed more recently
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains equal number of packages
Image details:
  • Size: 36 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.4.15
5 days ago



8.5-fpm-alpine
Image has same number of vulnerabilities
Also known as:
  • 8.5.0-fpm-alpine
  • 8.5.0-fpm-alpine3.23
  • 8.5-fpm-alpine3.23
  • 8-fpm-alpine
  • 8-fpm-alpine3.23
  • fpm-alpine
  • fpm-alpine3.23
Benefits:
  • Same OS detected
  • Image contains 1 fewer package
  • Tag was pushed more recently
  • Image has similar size
  • Image has same number of vulnerabilities
Image details:
  • Size: 38 MB
  • Flavor: alpine
  • OS: 3.23
5 days ago



@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.2-alpine

Name8.2.29-alpine3.23
Digestsha256:83b95c253e9a2906f9f84c73156e96433331736a0fdc0f7e65ae86c436217e27
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
Pushed5 days ago
Size37 MB
Packages61
Flavoralpine
OS3.23
Runtime8.2.29
The base image is also available under the supported tag(s): 8.2-alpine3.23, 8.2-cli-alpine, 8.2.29-alpine, 8.2.29-alpine3.23, 8.2.29-cli-alpine, 8.2.29-cli-alpine3.23

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
8.4-alpine
Minor runtime version update
Also known as:
  • 8.4.15-cli-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.15-alpine
  • 8.4.15-alpine3.23
  • 8.4-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Tag was pushed more recently
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains equal number of packages
Image details:
  • Size: 41 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.4.15
5 days ago



8.3-alpine
Minor runtime version update
Also known as:
  • 8.3.28-cli-alpine
  • 8.3.28-cli-alpine3.23
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.23
  • 8.3.28-alpine
  • 8.3.28-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Tag was pushed more recently
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains equal number of packages
Image details:
  • Size: 38 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.3.28
5 days ago



8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.0-cli-alpine
  • 8.5.0-cli-alpine3.23
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.23
  • 8-cli-alpine
  • 8-cli-alpine3.23
  • cli-alpine
  • cli-alpine3.23
  • alpine
  • alpine3.23
  • 8.5.0-alpine
  • 8.5.0-alpine3.23
  • 8.5-alpine3.23
  • 8-alpine
  • 8-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image contains 1 fewer package
  • Image has same number of vulnerabilities
Image details:
  • Size: 44 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.5.0
5 days ago



@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.4-alpine

Name8.4.15-alpine3.23
Digestsha256:2c630e03938de872a0333186338792cbca8fbe928362c6dac6dccb4f0daabcac
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
Pushed5 days ago
Size41 MB
Packages61
Flavoralpine
OS3.23
Runtime8.4.15
The base image is also available under the supported tag(s): 8.4-alpine3.23, 8.4-cli-alpine, 8.4-cli-alpine3.23, 8.4.15-alpine, 8.4.15-alpine3.23, 8.4.15-cli-alpine3.23

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.0-cli-alpine
  • 8.5.0-cli-alpine3.23
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.23
  • 8-cli-alpine
  • 8-cli-alpine3.23
  • cli-alpine
  • cli-alpine3.23
  • alpine
  • alpine3.23
  • 8.5.0-alpine
  • 8.5.0-alpine3.23
  • 8.5-alpine3.23
  • 8-alpine
  • 8-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image contains 1 fewer package
  • Image has similar size
  • Image has same number of vulnerabilities
Image details:
  • Size: 44 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.5.0
5 days ago



@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.2-alpine

Name8.2.29-alpine3.23
Digestsha256:83b95c253e9a2906f9f84c73156e96433331736a0fdc0f7e65ae86c436217e27
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
Pushed5 days ago
Size37 MB
Packages61
Flavoralpine
OS3.23
Runtime8.2.29
The base image is also available under the supported tag(s): 8.2-alpine3.23, 8.2-cli-alpine, 8.2.29-alpine, 8.2.29-alpine3.23, 8.2.29-cli-alpine, 8.2.29-cli-alpine3.23

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
8.4-alpine
Minor runtime version update
Also known as:
  • 8.4.15-cli-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.15-alpine
  • 8.4.15-alpine3.23
  • 8.4-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Tag was pushed more recently
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains equal number of packages
Image details:
  • Size: 41 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.4.15
5 days ago



8.3-alpine
Minor runtime version update
Also known as:
  • 8.3.28-cli-alpine
  • 8.3.28-cli-alpine3.23
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.23
  • 8.3.28-alpine
  • 8.3.28-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Tag was pushed more recently
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains equal number of packages
Image details:
  • Size: 38 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.3.28
5 days ago



8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.0-cli-alpine
  • 8.5.0-cli-alpine3.23
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.23
  • 8-cli-alpine
  • 8-cli-alpine3.23
  • cli-alpine
  • cli-alpine3.23
  • alpine
  • alpine3.23
  • 8.5.0-alpine
  • 8.5.0-alpine3.23
  • 8.5-alpine3.23
  • 8-alpine
  • 8-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image contains 1 fewer package
  • Image has same number of vulnerabilities
Image details:
  • Size: 44 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.5.0
5 days ago



@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:bda46cd88c060f605750acf231f5ded58a0ca8737d1e1e5c14ed1deec738c09f
vulnerabilitiescritical: 1 high: 3 medium: 0 low: 0
platformlinux/amd64
size109 MB
packages251
📦 Base Image php:8.2-fpm-alpine
also known as
  • 8.2-fpm-alpine3.23
  • 8.2.29-fpm-alpine
  • 8.2.29-fpm-alpine3.23
digestsha256:917c56f3906ce05be05883163cf31b4cdda0c7fd85fb12a1daf26e4526b40ca6
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/[email protected]

critical 9.1: CVE--2024--45337 Improper Authorization

Affected range<0.31.0
Fixed version0.31.0
CVSS Score9.1
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score42.906%
EPSS Percentile97th percentile
Description

Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass.

The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions.

For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key.

Since this API is widely misused, as a partial mitigation golang.org/x/[email protected] enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth.

Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance.

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

high : CVE--2025--22869

Affected range<0.35.0
Fixed version0.35.0
EPSS Score0.217%
EPSS Percentile44th percentile
Description

SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted.

critical: 0 high: 1 medium: 0 low: 0 libpng 1.6.51-r1 (apk)

pkg:apk/alpine/[email protected]?os_name=alpine&os_version=3.23

high : CVE--2025--66293

Affected range<1.6.53-r0
Fixed version1.6.53-r0
EPSS Score0.042%
EPSS Percentile13th percentile
Description

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

🔍 Vulnerabilities of moby/buildkit:buildx-stable-1

📦 Image Reference moby/buildkit:buildx-stable-1
digestsha256:fe0990fb85c4586aaa94e599905b75a2676664f065f29bea67ebcd5b2fe88acb
vulnerabilitiescritical: 0 high: 8 medium: 0 low: 0
platformlinux/amd64
size111 MB
packages251
📦 Base Image alpine:3
also known as
  • 3.22
  • 3.22.2
  • af829cb99e2e0ed9843029ba4b20af63bf652e3f57b9aaa049744a8b64d7c608
  • latest
digestsha256:85f2b723e106c34644cd5851d7e81ee87da98ac54672b29947c052a45d31dc2f
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 2
critical: 0 high: 5 medium: 0 low: 0 stdlib 1.25.0 (golang)

pkg:golang/[email protected]

high : CVE--2025--61729

Affected range>=1.25.0
<1.25.5
Fixed version1.25.5
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

Within HostnameError.Error(), when constructing an error string, there is no limit to the number of hosts that will be printed out. Furthermore, the error string is constructed by repeated string concatenation, leading to quadratic runtime. Therefore, a certificate provided by a malicious actor can result in excessive resource consumption.

high : CVE--2025--61725

Affected range>=1.25.0
<1.25.2
Fixed version1.25.2
EPSS Score0.026%
EPSS Percentile6th percentile
Description

The ParseAddress function constructeds domain-literal address components through repeated string concatenation. When parsing large domain-literal components, this can cause excessive CPU consumption.

high : CVE--2025--61723

Affected range>=1.25.0
<1.25.2
Fixed version1.25.2
EPSS Score0.026%
EPSS Percentile6th percentile
Description

The processing time for parsing some invalid inputs scales non-linearly with respect to the size of the input.

This affects programs which parse untrusted PEM inputs.

high : CVE--2025--58188

Affected range>=1.25.0
<1.25.2
Fixed version1.25.2
EPSS Score0.014%
EPSS Percentile2nd percentile
Description

Validating certificate chains which contain DSA public keys can cause programs to panic, due to a interface cast that assumes they implement the Equal method.

This affects programs which validate arbitrary certificate chains.

high : CVE--2025--58187

Affected range>=1.25.0
<1.25.3
Fixed version1.25.3
EPSS Score0.014%
EPSS Percentile2nd percentile
Description

Due to the design of the name constraint checking algorithm, the processing time of some inputs scale non-linearly with respect to the size of the certificate.

This affects programs which validate arbitrary certificate chains.

critical: 0 high: 1 medium: 0 low: 0 github.com/opencontainers/selinux 1.12.0 (golang)

pkg:golang/github.com/opencontainers/[email protected]

high 7.3: CVE--2025--52881 Race Condition Enabling Link Following

Affected range<=1.12.0
Fixed version1.13.0
CVSS Score7.3
CVSS VectorCVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS Score0.019%
EPSS Percentile4th percentile
Description

Impact

This attack is primarily a more sophisticated version of CVE-2019-19921, which was a flaw which allowed an attacker to trick runc into writing the LSM process labels for a container process into a dummy tmpfs file and thus not apply the correct LSM labels to the container process. The mitigation runc applied for CVE-2019-19921 was fairly limited and effectively only caused runc to verify that when runc writes LSM labels that those labels are actual procfs files.

Rather than using a fake tmpfs file for /proc/self/attr/<label>, an attacker could instead (through various means) make /proc/self/attr/<label> reference a real procfs file, but one that would still be a no-op (such as /proc/self/sched). This would have the same effect but would clear the "is a procfs file" check. Runc is aware that this kind of attack would be possible (even going so far as to discuss this publicly as "future work" at conferences), and runc is working on a far more comprehensive mitigation of this attack, but this security issue was disclosed before runc could complete this work.

In all known versions of runc, an attacker can trick runc into misdirecting writes to /proc to other procfs files through the use of a racing container with shared mounts (runc has also verified this attack is possible to exploit using a standard Dockerfile with docker buildx build as that also permits triggering parallel execution of containers with custom shared mounts configured). This redirect could be through symbolic links in a tmpfs or theoretically other methods such as regular bind-mounts.

Note that while /proc/self/attr/<label> was the example used above (which is LSM-specific), this issue affect all writes to /proc in runc and thus also affects sysctls (written to /proc/sys/...) and some other APIs.

Additional Impacts

While investigating this issue, runc discovered that another risk with these redirected writes is that they could be redirected to dangerous files such as /proc/sysrq-trigger rather than just no-op files like /proc/self/sched. For instance, the default AppArmor profile name in Docker is docker-default, which when written to /proc/sysrq-trigger would cause the host system to crash.

When this was discovered, runc conducted an audit of other write operations within runc and found several possible areas where runc could be used as a semi-arbitrary write gadget when combined with the above race attacks. The most concerning attack scenario was the configuration of sysctls. Because the contents of the sysctl are free-form text, an attacker could use a misdirected write to write to /proc/sys/kernel/core_pattern and break out of the container (as described in CVE-2025-31133, kernel upcalls are not namespaced and so coredump helpers will run with complete root privileges on the host). Even if the attacker cannot configure custom sysctls, a valid sysctl string (when redirected to /proc/sysrq-trigger) can easily cause the machine to hang.

Note that the fact that this attack allows you to disable LSM labels makes it a very useful attack to combine with CVE-2025-31133 (as one of the only mitigations available to most users for that issue is AppArmor, and this attack would let you bypass that). However, the misdirected write issue above means that you could also achieve most of the same goals without needing to chain together attacks.

Patches

This advisory is being published as part of a set of three advisories:

  • CVE-2025-31133
  • CVE-2025-52881
  • CVE-2025-52565

The patches fixing this issue have accordingly been combined into a single patchset. The following patches from that patchset resolve the issues in this advisory:

  • db19bbed5348 ("internal/sys: add VerifyInode helper")
  • 6fc191449109 ("internal: move utils.MkdirAllInRoot to internal/pathrs")
  • ff94f9991bd3 ("*: switch to safer securejoin.Reopen")
  • 44a0fcf685db ("go.mod: update to github.com/cyphar/[email protected]")
  • 77889b56db93 ("internal: add wrappers for securejoin.Proc*")
  • fdcc9d3cad2f ("apparmor: use safe procfs API for labels")
  • ff6fe1324663 ("utils: use safe procfs for /proc/self/fd loop code")
  • b3dd1bc562ed ("utils: remove unneeded EnsureProcHandle")
  • 77d217c7c377 ("init: write sysctls using safe procfs API")
  • 435cc81be6b7 ("init: use securejoin for /proc/self/setgroups")
  • d61fd29d854b ("libct/system: use securejoin for /proc/$pid/stat")
  • 4b37cd93f86e ("libct: align param type for mountCgroupV1/V2 functions")
  • d40b3439a961 ("rootfs: switch to fd-based handling of mountpoint targets")
  • ed6b1693b8b3 ("selinux: use safe procfs API for labels")
    • Please note that this patch includes a private patch for github.com/opencontainers/selinux that could not be made public through a public pull request (as it would necessarily disclose this embargoed security issue).

      The patch includes a complete copy of the forked code and a replace directive (as well as go mod vendor applied), which should still work with downstream build systems. If you cannot apply this patch, you can safely drop it -- some of the other patches in this series should block these kinds of racing mount attacks entirely.

      See selinux: migrate to pathrs-lite procfs API opencontainers/selinux#237 for the upstream patch.

  • 3f925525b44d ("rootfs: re-allow dangling symlinks in mount targets")
  • a41366e74080 ("openat2: improve resilience on busy systems")

runc 1.2.8, 1.3.3, and 1.4.0-rc.3 have been released and all contain fixes for these issues. As per runc's new release model, runc 1.1.x and earlier are no longer supported and thus have not been patched.

Mitigations

  • Do not run untrusted container images from unknown or unverified sources.

  • For the basic no-op attack, this attack allows a container process to run with the same LSM labels as runc. For most AppArmor deployments this means it will be unconfined, and for SELinux it will likely be container_runtime_t. Runc has not conducted in-depth testing of the impact on SELinux -- it is possible that it provides some reasonable protection but it seems likely that an attacker could cause harm to systems even with such an SELinux setup.

  • For the more involved redirect and write gadget attacks, unfortunately most LSM profiles (including the standard container-selinux profiles) provide the container runtime access to sysctl files (including /proc/sysrq-trigger) and so LSMs likely do not provide much protection against these attacks.

  • Using rootless containers provides some protection against these kinds of bugs (privileged writes in runc being redirected) -- by having runc itself be an unprivileged process, in general you would expect the impact scope of a runc bug to be less severe as it would only have the privileges afforded to the host user which spawned runc. For this particular bug, the privilege escalation caused by the inadvertent write issue is entirely mitigated with rootless containers because the unprivileged user that the runc process is executing as cannot write to the aforementioned procfs files (even intentionally).

Other Runtimes

As this vulnerability boils down to a fairly easy-to-make logic bug, runc has provided information to other OCI (crun, youki) and non-OCI (LXC) container runtimes about this vulnerability.

Based on discussions with other runtimes, it seems that crun and youki may have similar security issues and will release a co-ordinated security release along with runc. LXC appears to use the host's /proc for all procfs operations, and so is likely not vulnerable to this issue (this is a trade-off -- runc uses the container's procfs to avoid CVE-2016-9962-style attacks).

Credits

Thanks to Li Fubang (@lifubang from acmcoder.com, CIIC) and Tõnis Tiigi (@tonistiigi from Docker) for both independently discovering this vulnerability, as well as Aleksa Sarai (@cyphar from SUSE) for the original research into this class of security issues and solutions.

Additional thanks go to Tõnis Tiigi for finding some very useful exploit templates for these kinds of race attacks using docker buildx build.

critical: 0 high: 1 medium: 0 low: 0 stdlib 1.25.4 (golang)

pkg:golang/[email protected]

high : CVE--2025--61729

Affected range>=1.25.0
<1.25.5
Fixed version1.25.5
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

Within HostnameError.Error(), when constructing an error string, there is no limit to the number of hosts that will be printed out. Furthermore, the error string is constructed by repeated string concatenation, leading to quadratic runtime. Therefore, a certificate provided by a malicious actor can result in excessive resource consumption.

critical: 0 high: 1 medium: 0 low: 0 golang.org/x/crypto 0.42.0 (golang)

pkg:golang/golang.org/x/[email protected]

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:a0764d5da7ba93eef8a7a46abb4b7f9bf434798390fd3ce2b068527a17059f28
vulnerabilitiescritical: 1 high: 3 medium: 0 low: 0
platformlinux/amd64
size112 MB
packages251
📦 Base Image php:8.4-fpm-alpine
also known as
  • 8.4-fpm-alpine3.23
  • 8.4.15-fpm-alpine
  • 8.4.15-fpm-alpine3.23
digestsha256:6e3d4a3c8e65530ef86a05728f302dfa5c1e89c2903a08a75b4fb72c987cd3c4
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/[email protected]

critical 9.1: CVE--2024--45337 Improper Authorization

Affected range<0.31.0
Fixed version0.31.0
CVSS Score9.1
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score42.906%
EPSS Percentile97th percentile
Description

Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass.

The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions.

For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key.

Since this API is widely misused, as a partial mitigation golang.org/x/[email protected] enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth.

Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance.

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

high : CVE--2025--22869

Affected range<0.35.0
Fixed version0.35.0
EPSS Score0.217%
EPSS Percentile44th percentile
Description

SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted.

critical: 0 high: 1 medium: 0 low: 0 libpng 1.6.51-r1 (apk)

pkg:apk/alpine/[email protected]?os_name=alpine&os_version=3.23

high : CVE--2025--66293

Affected range<1.6.53-r0
Fixed version1.6.53-r0
EPSS Score0.042%
EPSS Percentile13th percentile
Description

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

🔍 Vulnerabilities of moby/buildkit:buildx-stable-1

📦 Image Reference moby/buildkit:buildx-stable-1
digestsha256:fe0990fb85c4586aaa94e599905b75a2676664f065f29bea67ebcd5b2fe88acb
vulnerabilitiescritical: 0 high: 8 medium: 0 low: 0
platformlinux/amd64
size111 MB
packages251
📦 Base Image alpine:3
also known as
  • 3.22
  • 3.22.2
  • af829cb99e2e0ed9843029ba4b20af63bf652e3f57b9aaa049744a8b64d7c608
  • latest
digestsha256:85f2b723e106c34644cd5851d7e81ee87da98ac54672b29947c052a45d31dc2f
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 2
critical: 0 high: 5 medium: 0 low: 0 stdlib 1.25.0 (golang)

pkg:golang/[email protected]

high : CVE--2025--61729

Affected range>=1.25.0
<1.25.5
Fixed version1.25.5
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

Within HostnameError.Error(), when constructing an error string, there is no limit to the number of hosts that will be printed out. Furthermore, the error string is constructed by repeated string concatenation, leading to quadratic runtime. Therefore, a certificate provided by a malicious actor can result in excessive resource consumption.

high : CVE--2025--61725

Affected range>=1.25.0
<1.25.2
Fixed version1.25.2
EPSS Score0.026%
EPSS Percentile6th percentile
Description

The ParseAddress function constructeds domain-literal address components through repeated string concatenation. When parsing large domain-literal components, this can cause excessive CPU consumption.

high : CVE--2025--61723

Affected range>=1.25.0
<1.25.2
Fixed version1.25.2
EPSS Score0.026%
EPSS Percentile6th percentile
Description

The processing time for parsing some invalid inputs scales non-linearly with respect to the size of the input.

This affects programs which parse untrusted PEM inputs.

high : CVE--2025--58188

Affected range>=1.25.0
<1.25.2
Fixed version1.25.2
EPSS Score0.014%
EPSS Percentile2nd percentile
Description

Validating certificate chains which contain DSA public keys can cause programs to panic, due to a interface cast that assumes they implement the Equal method.

This affects programs which validate arbitrary certificate chains.

high : CVE--2025--58187

Affected range>=1.25.0
<1.25.3
Fixed version1.25.3
EPSS Score0.014%
EPSS Percentile2nd percentile
Description

Due to the design of the name constraint checking algorithm, the processing time of some inputs scale non-linearly with respect to the size of the certificate.

This affects programs which validate arbitrary certificate chains.

critical: 0 high: 1 medium: 0 low: 0 github.com/opencontainers/selinux 1.12.0 (golang)

pkg:golang/github.com/opencontainers/[email protected]

high 7.3: CVE--2025--52881 Race Condition Enabling Link Following

Affected range<=1.12.0
Fixed version1.13.0
CVSS Score7.3
CVSS VectorCVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS Score0.019%
EPSS Percentile4th percentile
Description

Impact

This attack is primarily a more sophisticated version of CVE-2019-19921, which was a flaw which allowed an attacker to trick runc into writing the LSM process labels for a container process into a dummy tmpfs file and thus not apply the correct LSM labels to the container process. The mitigation runc applied for CVE-2019-19921 was fairly limited and effectively only caused runc to verify that when runc writes LSM labels that those labels are actual procfs files.

Rather than using a fake tmpfs file for /proc/self/attr/<label>, an attacker could instead (through various means) make /proc/self/attr/<label> reference a real procfs file, but one that would still be a no-op (such as /proc/self/sched). This would have the same effect but would clear the "is a procfs file" check. Runc is aware that this kind of attack would be possible (even going so far as to discuss this publicly as "future work" at conferences), and runc is working on a far more comprehensive mitigation of this attack, but this security issue was disclosed before runc could complete this work.

In all known versions of runc, an attacker can trick runc into misdirecting writes to /proc to other procfs files through the use of a racing container with shared mounts (runc has also verified this attack is possible to exploit using a standard Dockerfile with docker buildx build as that also permits triggering parallel execution of containers with custom shared mounts configured). This redirect could be through symbolic links in a tmpfs or theoretically other methods such as regular bind-mounts.

Note that while /proc/self/attr/<label> was the example used above (which is LSM-specific), this issue affect all writes to /proc in runc and thus also affects sysctls (written to /proc/sys/...) and some other APIs.

Additional Impacts

While investigating this issue, runc discovered that another risk with these redirected writes is that they could be redirected to dangerous files such as /proc/sysrq-trigger rather than just no-op files like /proc/self/sched. For instance, the default AppArmor profile name in Docker is docker-default, which when written to /proc/sysrq-trigger would cause the host system to crash.

When this was discovered, runc conducted an audit of other write operations within runc and found several possible areas where runc could be used as a semi-arbitrary write gadget when combined with the above race attacks. The most concerning attack scenario was the configuration of sysctls. Because the contents of the sysctl are free-form text, an attacker could use a misdirected write to write to /proc/sys/kernel/core_pattern and break out of the container (as described in CVE-2025-31133, kernel upcalls are not namespaced and so coredump helpers will run with complete root privileges on the host). Even if the attacker cannot configure custom sysctls, a valid sysctl string (when redirected to /proc/sysrq-trigger) can easily cause the machine to hang.

Note that the fact that this attack allows you to disable LSM labels makes it a very useful attack to combine with CVE-2025-31133 (as one of the only mitigations available to most users for that issue is AppArmor, and this attack would let you bypass that). However, the misdirected write issue above means that you could also achieve most of the same goals without needing to chain together attacks.

Patches

This advisory is being published as part of a set of three advisories:

  • CVE-2025-31133
  • CVE-2025-52881
  • CVE-2025-52565

The patches fixing this issue have accordingly been combined into a single patchset. The following patches from that patchset resolve the issues in this advisory:

  • db19bbed5348 ("internal/sys: add VerifyInode helper")
  • 6fc191449109 ("internal: move utils.MkdirAllInRoot to internal/pathrs")
  • ff94f9991bd3 ("*: switch to safer securejoin.Reopen")
  • 44a0fcf685db ("go.mod: update to github.com/cyphar/[email protected]")
  • 77889b56db93 ("internal: add wrappers for securejoin.Proc*")
  • fdcc9d3cad2f ("apparmor: use safe procfs API for labels")
  • ff6fe1324663 ("utils: use safe procfs for /proc/self/fd loop code")
  • b3dd1bc562ed ("utils: remove unneeded EnsureProcHandle")
  • 77d217c7c377 ("init: write sysctls using safe procfs API")
  • 435cc81be6b7 ("init: use securejoin for /proc/self/setgroups")
  • d61fd29d854b ("libct/system: use securejoin for /proc/$pid/stat")
  • 4b37cd93f86e ("libct: align param type for mountCgroupV1/V2 functions")
  • d40b3439a961 ("rootfs: switch to fd-based handling of mountpoint targets")
  • ed6b1693b8b3 ("selinux: use safe procfs API for labels")
    • Please note that this patch includes a private patch for github.com/opencontainers/selinux that could not be made public through a public pull request (as it would necessarily disclose this embargoed security issue).

      The patch includes a complete copy of the forked code and a replace directive (as well as go mod vendor applied), which should still work with downstream build systems. If you cannot apply this patch, you can safely drop it -- some of the other patches in this series should block these kinds of racing mount attacks entirely.

      See selinux: migrate to pathrs-lite procfs API opencontainers/selinux#237 for the upstream patch.

  • 3f925525b44d ("rootfs: re-allow dangling symlinks in mount targets")
  • a41366e74080 ("openat2: improve resilience on busy systems")

runc 1.2.8, 1.3.3, and 1.4.0-rc.3 have been released and all contain fixes for these issues. As per runc's new release model, runc 1.1.x and earlier are no longer supported and thus have not been patched.

Mitigations

  • Do not run untrusted container images from unknown or unverified sources.

  • For the basic no-op attack, this attack allows a container process to run with the same LSM labels as runc. For most AppArmor deployments this means it will be unconfined, and for SELinux it will likely be container_runtime_t. Runc has not conducted in-depth testing of the impact on SELinux -- it is possible that it provides some reasonable protection but it seems likely that an attacker could cause harm to systems even with such an SELinux setup.

  • For the more involved redirect and write gadget attacks, unfortunately most LSM profiles (including the standard container-selinux profiles) provide the container runtime access to sysctl files (including /proc/sysrq-trigger) and so LSMs likely do not provide much protection against these attacks.

  • Using rootless containers provides some protection against these kinds of bugs (privileged writes in runc being redirected) -- by having runc itself be an unprivileged process, in general you would expect the impact scope of a runc bug to be less severe as it would only have the privileges afforded to the host user which spawned runc. For this particular bug, the privilege escalation caused by the inadvertent write issue is entirely mitigated with rootless containers because the unprivileged user that the runc process is executing as cannot write to the aforementioned procfs files (even intentionally).

Other Runtimes

As this vulnerability boils down to a fairly easy-to-make logic bug, runc has provided information to other OCI (crun, youki) and non-OCI (LXC) container runtimes about this vulnerability.

Based on discussions with other runtimes, it seems that crun and youki may have similar security issues and will release a co-ordinated security release along with runc. LXC appears to use the host's /proc for all procfs operations, and so is likely not vulnerable to this issue (this is a trade-off -- runc uses the container's procfs to avoid CVE-2016-9962-style attacks).

Credits

Thanks to Li Fubang (@lifubang from acmcoder.com, CIIC) and Tõnis Tiigi (@tonistiigi from Docker) for both independently discovering this vulnerability, as well as Aleksa Sarai (@cyphar from SUSE) for the original research into this class of security issues and solutions.

Additional thanks go to Tõnis Tiigi for finding some very useful exploit templates for these kinds of race attacks using docker buildx build.

critical: 0 high: 1 medium: 0 low: 0 golang.org/x/crypto 0.42.0 (golang)

pkg:golang/golang.org/x/[email protected]

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

critical: 0 high: 1 medium: 0 low: 0 stdlib 1.25.4 (golang)

pkg:golang/[email protected]

high : CVE--2025--61729

Affected range>=1.25.0
<1.25.5
Fixed version1.25.5
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

Within HostnameError.Error(), when constructing an error string, there is no limit to the number of hosts that will be printed out. Furthermore, the error string is constructed by repeated string concatenation, leading to quadratic runtime. Therefore, a certificate provided by a malicious actor can result in excessive resource consumption.

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

Recommended fixes for image moby/buildkit:buildx-stable-1

Base image is alpine:3

Name3.22.2
Digestsha256:85f2b723e106c34644cd5851d7e81ee87da98ac54672b29947c052a45d31dc2f
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 2
Pushed2 months ago
Size3.8 MB
Packages20
OS3.22.2
The base image is also available under the supported tag(s): 3.22, 3.22.2, latest

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
3.21
Tag is preferred tag
Also known as:
  • 3.21.5
Benefits:
  • Image is smaller by 156 KB
  • Minor OS version update
  • Image contains 1 fewer package
  • Tag is preferred tag
  • Tag was pushed more recently
  • Image has same number of vulnerabilities
Image details:
  • Size: 3.6 MB
  • OS: 3.21.5
2 months ago



3.23
Tag is latest
Also known as:
  • latest
Benefits:
  • Minor OS version update
  • Tag was pushed more recently
  • Image has similar size
  • Tag is latest
  • Image introduces no new vulnerability but removes 2
  • Image contains equal number of packages
Image details:
  • Size: 3.9 MB
  • OS: 3.23
5 days ago



@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.2-fpm-alpine

Name8.2.29-fpm-alpine3.23
Digestsha256:917c56f3906ce05be05883163cf31b4cdda0c7fd85fb12a1daf26e4526b40ca6
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
Pushed5 days ago
Size33 MB
Packages62
Flavoralpine
OS3.23
Runtime8.2.29
The base image is also available under the supported tag(s): 8.2-fpm-alpine3.23, 8.2.29-fpm-alpine, 8.2.29-fpm-alpine3.23

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
8.4-fpm-alpine
Minor runtime version update
Also known as:
  • 8.4.15-fpm-alpine
  • 8.4.15-fpm-alpine3.23
  • 8.4-fpm-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains equal number of packages
Image details:
  • Size: 36 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.4.15
5 days ago



8.3-fpm-alpine
Minor runtime version update
Also known as:
  • 8.3.28-fpm-alpine
  • 8.3.28-fpm-alpine3.23
  • 8.3-fpm-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains equal number of packages
Image details:
  • Size: 34 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.3.28
5 days ago



8.5-fpm-alpine
Image has same number of vulnerabilities
Also known as:
  • 8.5.0-fpm-alpine
  • 8.5.0-fpm-alpine3.23
  • 8.5-fpm-alpine3.23
  • 8-fpm-alpine
  • 8-fpm-alpine3.23
  • fpm-alpine
  • fpm-alpine3.23
Benefits:
  • Same OS detected
  • Image contains 1 fewer package
  • Tag was pushed more recently
  • Image has similar size
  • Image has same number of vulnerabilities
Image details:
  • Size: 38 MB
  • Flavor: alpine
  • OS: 3.23
5 days ago



@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

Recommended fixes for image moby/buildkit:buildx-stable-1

Base image is alpine:3

Name3.22.2
Digestsha256:85f2b723e106c34644cd5851d7e81ee87da98ac54672b29947c052a45d31dc2f
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 2
Pushed2 months ago
Size3.8 MB
Packages20
OS3.22.2
The base image is also available under the supported tag(s): 3.22, 3.22.2, latest

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
3.21
Tag is preferred tag
Also known as:
  • 3.21.5
Benefits:
  • Image is smaller by 156 KB
  • Minor OS version update
  • Image contains 1 fewer package
  • Tag is preferred tag
  • Tag was pushed more recently
  • Image has same number of vulnerabilities
Image details:
  • Size: 3.6 MB
  • OS: 3.21.5
2 months ago



3.23
Tag is latest
Also known as:
  • latest
Benefits:
  • Minor OS version update
  • Tag was pushed more recently
  • Image has similar size
  • Tag is latest
  • Image introduces no new vulnerability but removes 2
  • Image contains equal number of packages
Image details:
  • Size: 3.9 MB
  • OS: 3.23
5 days ago



@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.4-fpm-alpine

Name8.4.15-fpm-alpine3.23
Digestsha256:6e3d4a3c8e65530ef86a05728f302dfa5c1e89c2903a08a75b4fb72c987cd3c4
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
Pushed5 days ago
Size36 MB
Packages62
Flavoralpine
OS3.23
Runtime8.4.15
The base image is also available under the supported tag(s): 8.4-fpm-alpine3.23, 8.4.15-fpm-alpine, 8.4.15-fpm-alpine3.23

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
8.5-fpm-alpine
Image has same number of vulnerabilities
Also known as:
  • 8.5.0-fpm-alpine
  • 8.5.0-fpm-alpine3.23
  • 8.5-fpm-alpine3.23
  • 8-fpm-alpine
  • 8-fpm-alpine3.23
  • fpm-alpine
  • fpm-alpine3.23
Benefits:
  • Same OS detected
  • Image contains 1 fewer package
  • Tag was pushed more recently
  • Image has similar size
  • Image has same number of vulnerabilities
Image details:
  • Size: 38 MB
  • Flavor: alpine
  • OS: 3.23
5 days ago



@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:ac41f34394d973d267ffb0894c044dd5f5e44c898057170f69a3fedea71733c8
vulnerabilitiescritical: 1 high: 3 medium: 0 low: 0
platformlinux/amd64
size133 MB
packages285
📦 Base Image php:8.3-alpine
also known as
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.23
  • 8.3.28-alpine
  • 8.3.28-alpine3.23
  • 8.3.28-cli-alpine
  • 8.3.28-cli-alpine3.23
digestsha256:4a302affec0a0d4e5f920c286b82ed427c1c984d688eec0f2a0db8df6e59dada
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/[email protected]

critical 9.1: CVE--2024--45337 Improper Authorization

Affected range<0.31.0
Fixed version0.31.0
CVSS Score9.1
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score42.906%
EPSS Percentile97th percentile
Description

Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass.

The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions.

For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key.

Since this API is widely misused, as a partial mitigation golang.org/x/[email protected] enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth.

Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance.

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

high : CVE--2025--22869

Affected range<0.35.0
Fixed version0.35.0
EPSS Score0.217%
EPSS Percentile44th percentile
Description

SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted.

critical: 0 high: 1 medium: 0 low: 0 libpng 1.6.51-r1 (apk)

pkg:apk/alpine/[email protected]?os_name=alpine&os_version=3.23

high : CVE--2025--66293

Affected range<1.6.53-r0
Fixed version1.6.53-r0
EPSS Score0.042%
EPSS Percentile13th percentile
Description

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

🔍 Vulnerabilities of moby/buildkit:buildx-stable-1

📦 Image Reference moby/buildkit:buildx-stable-1
digestsha256:fe0990fb85c4586aaa94e599905b75a2676664f065f29bea67ebcd5b2fe88acb
vulnerabilitiescritical: 0 high: 8 medium: 0 low: 0
platformlinux/amd64
size111 MB
packages251
📦 Base Image alpine:3
also known as
  • 3.22
  • 3.22.2
  • af829cb99e2e0ed9843029ba4b20af63bf652e3f57b9aaa049744a8b64d7c608
  • latest
digestsha256:85f2b723e106c34644cd5851d7e81ee87da98ac54672b29947c052a45d31dc2f
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 2
critical: 0 high: 5 medium: 0 low: 0 stdlib 1.25.0 (golang)

pkg:golang/[email protected]

high : CVE--2025--61729

Affected range>=1.25.0
<1.25.5
Fixed version1.25.5
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

Within HostnameError.Error(), when constructing an error string, there is no limit to the number of hosts that will be printed out. Furthermore, the error string is constructed by repeated string concatenation, leading to quadratic runtime. Therefore, a certificate provided by a malicious actor can result in excessive resource consumption.

high : CVE--2025--61725

Affected range>=1.25.0
<1.25.2
Fixed version1.25.2
EPSS Score0.026%
EPSS Percentile6th percentile
Description

The ParseAddress function constructeds domain-literal address components through repeated string concatenation. When parsing large domain-literal components, this can cause excessive CPU consumption.

high : CVE--2025--61723

Affected range>=1.25.0
<1.25.2
Fixed version1.25.2
EPSS Score0.026%
EPSS Percentile6th percentile
Description

The processing time for parsing some invalid inputs scales non-linearly with respect to the size of the input.

This affects programs which parse untrusted PEM inputs.

high : CVE--2025--58188

Affected range>=1.25.0
<1.25.2
Fixed version1.25.2
EPSS Score0.014%
EPSS Percentile2nd percentile
Description

Validating certificate chains which contain DSA public keys can cause programs to panic, due to a interface cast that assumes they implement the Equal method.

This affects programs which validate arbitrary certificate chains.

high : CVE--2025--58187

Affected range>=1.25.0
<1.25.3
Fixed version1.25.3
EPSS Score0.014%
EPSS Percentile2nd percentile
Description

Due to the design of the name constraint checking algorithm, the processing time of some inputs scale non-linearly with respect to the size of the certificate.

This affects programs which validate arbitrary certificate chains.

critical: 0 high: 1 medium: 0 low: 0 github.com/opencontainers/selinux 1.12.0 (golang)

pkg:golang/github.com/opencontainers/[email protected]

high 7.3: CVE--2025--52881 Race Condition Enabling Link Following

Affected range<=1.12.0
Fixed version1.13.0
CVSS Score7.3
CVSS VectorCVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS Score0.019%
EPSS Percentile4th percentile
Description

Impact

This attack is primarily a more sophisticated version of CVE-2019-19921, which was a flaw which allowed an attacker to trick runc into writing the LSM process labels for a container process into a dummy tmpfs file and thus not apply the correct LSM labels to the container process. The mitigation runc applied for CVE-2019-19921 was fairly limited and effectively only caused runc to verify that when runc writes LSM labels that those labels are actual procfs files.

Rather than using a fake tmpfs file for /proc/self/attr/<label>, an attacker could instead (through various means) make /proc/self/attr/<label> reference a real procfs file, but one that would still be a no-op (such as /proc/self/sched). This would have the same effect but would clear the "is a procfs file" check. Runc is aware that this kind of attack would be possible (even going so far as to discuss this publicly as "future work" at conferences), and runc is working on a far more comprehensive mitigation of this attack, but this security issue was disclosed before runc could complete this work.

In all known versions of runc, an attacker can trick runc into misdirecting writes to /proc to other procfs files through the use of a racing container with shared mounts (runc has also verified this attack is possible to exploit using a standard Dockerfile with docker buildx build as that also permits triggering parallel execution of containers with custom shared mounts configured). This redirect could be through symbolic links in a tmpfs or theoretically other methods such as regular bind-mounts.

Note that while /proc/self/attr/<label> was the example used above (which is LSM-specific), this issue affect all writes to /proc in runc and thus also affects sysctls (written to /proc/sys/...) and some other APIs.

Additional Impacts

While investigating this issue, runc discovered that another risk with these redirected writes is that they could be redirected to dangerous files such as /proc/sysrq-trigger rather than just no-op files like /proc/self/sched. For instance, the default AppArmor profile name in Docker is docker-default, which when written to /proc/sysrq-trigger would cause the host system to crash.

When this was discovered, runc conducted an audit of other write operations within runc and found several possible areas where runc could be used as a semi-arbitrary write gadget when combined with the above race attacks. The most concerning attack scenario was the configuration of sysctls. Because the contents of the sysctl are free-form text, an attacker could use a misdirected write to write to /proc/sys/kernel/core_pattern and break out of the container (as described in CVE-2025-31133, kernel upcalls are not namespaced and so coredump helpers will run with complete root privileges on the host). Even if the attacker cannot configure custom sysctls, a valid sysctl string (when redirected to /proc/sysrq-trigger) can easily cause the machine to hang.

Note that the fact that this attack allows you to disable LSM labels makes it a very useful attack to combine with CVE-2025-31133 (as one of the only mitigations available to most users for that issue is AppArmor, and this attack would let you bypass that). However, the misdirected write issue above means that you could also achieve most of the same goals without needing to chain together attacks.

Patches

This advisory is being published as part of a set of three advisories:

  • CVE-2025-31133
  • CVE-2025-52881
  • CVE-2025-52565

The patches fixing this issue have accordingly been combined into a single patchset. The following patches from that patchset resolve the issues in this advisory:

  • db19bbed5348 ("internal/sys: add VerifyInode helper")
  • 6fc191449109 ("internal: move utils.MkdirAllInRoot to internal/pathrs")
  • ff94f9991bd3 ("*: switch to safer securejoin.Reopen")
  • 44a0fcf685db ("go.mod: update to github.com/cyphar/[email protected]")
  • 77889b56db93 ("internal: add wrappers for securejoin.Proc*")
  • fdcc9d3cad2f ("apparmor: use safe procfs API for labels")
  • ff6fe1324663 ("utils: use safe procfs for /proc/self/fd loop code")
  • b3dd1bc562ed ("utils: remove unneeded EnsureProcHandle")
  • 77d217c7c377 ("init: write sysctls using safe procfs API")
  • 435cc81be6b7 ("init: use securejoin for /proc/self/setgroups")
  • d61fd29d854b ("libct/system: use securejoin for /proc/$pid/stat")
  • 4b37cd93f86e ("libct: align param type for mountCgroupV1/V2 functions")
  • d40b3439a961 ("rootfs: switch to fd-based handling of mountpoint targets")
  • ed6b1693b8b3 ("selinux: use safe procfs API for labels")
    • Please note that this patch includes a private patch for github.com/opencontainers/selinux that could not be made public through a public pull request (as it would necessarily disclose this embargoed security issue).

      The patch includes a complete copy of the forked code and a replace directive (as well as go mod vendor applied), which should still work with downstream build systems. If you cannot apply this patch, you can safely drop it -- some of the other patches in this series should block these kinds of racing mount attacks entirely.

      See selinux: migrate to pathrs-lite procfs API opencontainers/selinux#237 for the upstream patch.

  • 3f925525b44d ("rootfs: re-allow dangling symlinks in mount targets")
  • a41366e74080 ("openat2: improve resilience on busy systems")

runc 1.2.8, 1.3.3, and 1.4.0-rc.3 have been released and all contain fixes for these issues. As per runc's new release model, runc 1.1.x and earlier are no longer supported and thus have not been patched.

Mitigations

  • Do not run untrusted container images from unknown or unverified sources.

  • For the basic no-op attack, this attack allows a container process to run with the same LSM labels as runc. For most AppArmor deployments this means it will be unconfined, and for SELinux it will likely be container_runtime_t. Runc has not conducted in-depth testing of the impact on SELinux -- it is possible that it provides some reasonable protection but it seems likely that an attacker could cause harm to systems even with such an SELinux setup.

  • For the more involved redirect and write gadget attacks, unfortunately most LSM profiles (including the standard container-selinux profiles) provide the container runtime access to sysctl files (including /proc/sysrq-trigger) and so LSMs likely do not provide much protection against these attacks.

  • Using rootless containers provides some protection against these kinds of bugs (privileged writes in runc being redirected) -- by having runc itself be an unprivileged process, in general you would expect the impact scope of a runc bug to be less severe as it would only have the privileges afforded to the host user which spawned runc. For this particular bug, the privilege escalation caused by the inadvertent write issue is entirely mitigated with rootless containers because the unprivileged user that the runc process is executing as cannot write to the aforementioned procfs files (even intentionally).

Other Runtimes

As this vulnerability boils down to a fairly easy-to-make logic bug, runc has provided information to other OCI (crun, youki) and non-OCI (LXC) container runtimes about this vulnerability.

Based on discussions with other runtimes, it seems that crun and youki may have similar security issues and will release a co-ordinated security release along with runc. LXC appears to use the host's /proc for all procfs operations, and so is likely not vulnerable to this issue (this is a trade-off -- runc uses the container's procfs to avoid CVE-2016-9962-style attacks).

Credits

Thanks to Li Fubang (@lifubang from acmcoder.com, CIIC) and Tõnis Tiigi (@tonistiigi from Docker) for both independently discovering this vulnerability, as well as Aleksa Sarai (@cyphar from SUSE) for the original research into this class of security issues and solutions.

Additional thanks go to Tõnis Tiigi for finding some very useful exploit templates for these kinds of race attacks using docker buildx build.

critical: 0 high: 1 medium: 0 low: 0 golang.org/x/crypto 0.42.0 (golang)

pkg:golang/golang.org/x/[email protected]

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

critical: 0 high: 1 medium: 0 low: 0 stdlib 1.25.4 (golang)

pkg:golang/[email protected]

high : CVE--2025--61729

Affected range>=1.25.0
<1.25.5
Fixed version1.25.5
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

Within HostnameError.Error(), when constructing an error string, there is no limit to the number of hosts that will be printed out. Furthermore, the error string is constructed by repeated string concatenation, leading to quadratic runtime. Therefore, a certificate provided by a malicious actor can result in excessive resource consumption.

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:9d333b49e3c4965264bd3f6032a5fc31937d19fad56cdbb0c62fcf18f235ba9c
vulnerabilitiescritical: 1 high: 3 medium: 0 low: 0
platformlinux/amd64
size137 MB
packages285
📦 Base Image php:8.4-alpine
also known as
  • 8.4-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.15-alpine
  • 8.4.15-alpine3.23
  • 8.4.15-cli-alpine3.23
digestsha256:2c630e03938de872a0333186338792cbca8fbe928362c6dac6dccb4f0daabcac
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/[email protected]

critical 9.1: CVE--2024--45337 Improper Authorization

Affected range<0.31.0
Fixed version0.31.0
CVSS Score9.1
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score42.906%
EPSS Percentile97th percentile
Description

Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass.

The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions.

For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key.

Since this API is widely misused, as a partial mitigation golang.org/x/[email protected] enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth.

Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance.

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.018%
EPSS Percentile4th percentile
Description

SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process.

high : CVE--2025--22869

Affected range<0.35.0
Fixed version0.35.0
EPSS Score0.217%
EPSS Percentile44th percentile
Description

SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted.

critical: 0 high: 1 medium: 0 low: 0 libpng 1.6.51-r1 (apk)

pkg:apk/alpine/[email protected]?os_name=alpine&os_version=3.23

high : CVE--2025--66293

Affected range<1.6.53-r0
Fixed version1.6.53-r0
EPSS Score0.042%
EPSS Percentile13th percentile
Description

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.4-alpine

Name8.4.15-alpine3.23
Digestsha256:2c630e03938de872a0333186338792cbca8fbe928362c6dac6dccb4f0daabcac
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
Pushed5 days ago
Size41 MB
Packages61
Flavoralpine
OS3.23
Runtime8.4.15
The base image is also available under the supported tag(s): 8.4-alpine3.23, 8.4-cli-alpine, 8.4-cli-alpine3.23, 8.4.15-alpine, 8.4.15-alpine3.23, 8.4.15-cli-alpine3.23

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.0-cli-alpine
  • 8.5.0-cli-alpine3.23
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.23
  • 8-cli-alpine
  • 8-cli-alpine3.23
  • cli-alpine
  • cli-alpine3.23
  • alpine
  • alpine3.23
  • 8.5.0-alpine
  • 8.5.0-alpine3.23
  • 8.5-alpine3.23
  • 8-alpine
  • 8-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image contains 1 fewer package
  • Image has similar size
  • Image has same number of vulnerabilities
Image details:
  • Size: 44 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.5.0
5 days ago



@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.3-alpine

Name8.3.28-alpine3.23
Digestsha256:4a302affec0a0d4e5f920c286b82ed427c1c984d688eec0f2a0db8df6e59dada
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
Pushed5 days ago
Size38 MB
Packages61
Flavoralpine
OS3.23
Runtime8.3.28
The base image is also available under the supported tag(s): 8.3-cli-alpine, 8.3-cli-alpine3.23, 8.3.28-alpine, 8.3.28-alpine3.23, 8.3.28-cli-alpine, 8.3.28-cli-alpine3.23

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.0-cli-alpine
  • 8.5.0-cli-alpine3.23
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.23
  • 8-cli-alpine
  • 8-cli-alpine3.23
  • cli-alpine
  • cli-alpine3.23
  • alpine
  • alpine3.23
  • 8.5.0-alpine
  • 8.5.0-alpine3.23
  • 8.5-alpine3.23
  • 8-alpine
  • 8-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image contains 1 fewer package
  • Image has similar size
  • Image has same number of vulnerabilities
Image details:
  • Size: 44 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.5.0
5 days ago



8.4-alpine
Minor runtime version update
Also known as:
  • 8.4.15-cli-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.15-alpine
  • 8.4.15-alpine3.23
  • 8.4-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains equal number of packages
Image details:
  • Size: 41 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.4.15
5 days ago



@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Recommended fixes for image moby/buildkit:buildx-stable-1

Base image is alpine:3

Name3.22.2
Digestsha256:85f2b723e106c34644cd5851d7e81ee87da98ac54672b29947c052a45d31dc2f
Vulnerabilitiescritical: 0 high: 0 medium: 0 low: 2
Pushed2 months ago
Size3.8 MB
Packages20
OS3.22.2
The base image is also available under the supported tag(s): 3.22, 3.22.2, latest

Refresh base image

Rebuild the image using a newer base image version. Updating this may result in breaking changes.

✅ This image version is up to date.

Change base image

TagDetailsPushedVulnerabilities
3.21
Tag is preferred tag
Also known as:
  • 3.21.5
Benefits:
  • Image is smaller by 156 KB
  • Minor OS version update
  • Image contains 1 fewer package
  • Tag is preferred tag
  • Tag was pushed more recently
  • Image has same number of vulnerabilities
Image details:
  • Size: 3.6 MB
  • OS: 3.21.5
2 months ago



3.23
Tag is latest
Also known as:
  • latest
Benefits:
  • Minor OS version update
  • Tag was pushed more recently
  • Image has similar size
  • Tag is latest
  • Image introduces no new vulnerability but removes 2
  • Image contains equal number of packages
Image details:
  • Size: 3.9 MB
  • OS: 3.23
5 days ago



Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: maintenance For maintenance, refactor and testing (perf, chore, style, revert, refactor, test, build, ci)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant