Skip to content

deps(deps): update ansible/ansible-lint action to v26 - #119

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/ansible-ansible-lint-26.x
Open

renovate[bot] wants to merge 1 commit into
masterfrom
renovate/ansible-ansible-lint-26.x

Conversation

@renovate

@renovate renovate Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change
ansible/ansible-lint action major v25.6.1 → v26.10.0

Release Notes

ansible/ansible-lint (ansible/ansible-lint)

v26.10.0

Compare Source

What's Changed

New Contributors

Full Changelog: ansible/ansible-lint@v26.9.0...v26.10.0

v26.9.0

Compare Source

Features

Fixes

Performance

Maintenance

What's Changed

New Contributors

Full Changelog: ansible/ansible-lint@v26.8.0...v26.9.0

v26.8.0

Compare Source

What's Changed

New Contributors

Full Changelog: ansible/ansible-lint@v26.6.0...v26.8.0

v26.6.0

Compare Source

Features

Fixes

Maintenance

v26.4.0

Compare Source

Fixes

Maintenance

v26.3.0

Compare Source

Features

Fixes

Maintenance

v26.2.0

Compare Source

Features

Fixes

Maintenance

v26.1.1

Compare Source

Features

Fixes

Maintenance

v26.1.0

Compare Source

Fixes

Maintenance

v26

Compare Source

v25.12.2

Compare Source

Fixes

Maintenance

v25.12.1

Compare Source

Features

Fixes

Maintenance

v25.12.0

Compare Source

Maintenance

v25.11.1

Compare Source

Features

Fixes

Maintenance

v25.11.0

Compare Source

Fixes

Maintenance

v25.9.2

Compare Source

Fixes

Maintenance

v25.9.1

Compare Source

Fixes

Maintenance

v25.9.0

Compare Source

Fixes

❗ Important

✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • 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 January 8, 2026 14:27
@renovate
renovate Bot enabled auto-merge (squash) January 8, 2026 14:27
@github-actions github-actions Bot added the type: maintenance For maintenance, refactor and testing (perf, chore, style, revert, refactor, test, build, ci) label Jan 8, 2026
@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:7b24b3af63658103a0286285b9ece5180685cdfa74c02376f54fc37da86395be
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.29-fpm-alpine
  • 8.3.29-fpm-alpine3.23
  • 84c6df40c76a0bcd532e70d2a1b4d0cecd45ad9655ba431d318ec37d612d7bf6
digestsha256:0a80c7265e776321e0e2010d7b0eb7bc54f0ea8f7584dd322ff15d0371926d4b
vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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 gnupg 2.4.8-r1 (apk)

pkg:apk/alpine/gnupg@2.4.8-r1?os_name=alpine&os_version=3.23

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.3-fpm-alpine

Name8.3.29-fpm-alpine3.23
Digestsha256:0a80c7265e776321e0e2010d7b0eb7bc54f0ea8f7584dd322ff15d0371926d4b
Vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
Pushed2 weeks ago
Size34 MB
Packages62
Flavoralpine
OS3.23
Runtime8.3.29
The base image is also available under the supported tag(s): 8.3-fpm-alpine3.23, 8.3.29-fpm-alpine, 8.3.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.16-fpm-alpine
  • 8.4.16-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.16
2 weeks ago



8.5-fpm-alpine
Image has same number of vulnerabilities
Also known as:
  • 8.5.1-fpm-alpine
  • 8.5.1-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
2 weeks ago



@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

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

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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 gnupg 2.4.8-r1 (apk)

pkg:apk/alpine/gnupg@2.4.8-r1?os_name=alpine&os_version=3.23

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.3-alpine

Name8.3-alpine3.23
Digestsha256:55dd280d2f913218b52230b55c4779a3549200cec9b2993e0a91ee3ea4323994
Vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
Pushed2 weeks ago
Size38 MB
Packages61
Flavoralpine
OS3.23
Runtime8.3
The base image is also available under the supported tag(s): 8.3-alpine3.23, 8.3-cli-alpine, 8.3-cli-alpine3.23, 8.3.29-alpine, 8.3.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.5-alpine
Minor runtime version update
Also known as:
  • 8.5.1-cli-alpine
  • 8.5.1-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.1-alpine
  • 8.5.1-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.1
2 weeks ago



8.4-alpine
Minor runtime version update
Also known as:
  • 8.4.16-cli-alpine
  • 8.4.16-cli-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.16-alpine
  • 8.4.16-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.16
2 weeks ago



@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:8b8af003a155bb5b042f72e3f536122093826d3e1c22a4626a209b101d2ccf83
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-cli-alpine3.23
  • 8.2.30-alpine
  • 8.2.30-alpine3.23
  • 8.2.30-cli-alpine
  • 8.2.30-cli-alpine3.23
digestsha256:dad4e0c31503684d830285906fc548ea6788310260a670a9cd579f69636d873c
vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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 gnupg 2.4.8-r1 (apk)

pkg:apk/alpine/gnupg@2.4.8-r1?os_name=alpine&os_version=3.23

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:4fcca0d03b3b783e3bcaddc7c2d41014c86e2bcaaa1b78946573e2d47ad15af4
vulnerabilitiescritical: 1 high: 8 medium: 0 low: 0
platformlinux/amd64
size105 MB
packages248
📦 Base Image php:3604fed52d81970a176cafe8300295cf4ba1d0b9d7ca9dfc060e2f2e64591f54
also known as
  • 8.1-fpm-alpine3.21
  • 8.1.34-fpm-alpine
  • 8.1.34-fpm-alpine3.21
digestsha256:e1c21e70e250ddeed10edb10f9476389d0eb9e2122aeca5d46d05fd97ad3c043
vulnerabilitiescritical: 1 high: 0 medium: 5 low: 2
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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: 5 medium: 0 low: 0 stdlib 1.23.9 (golang)

pkg:golang/stdlib@1.23.9

high : CVE--2025--61729

Affected range<1.24.11
Fixed version1.24.11
EPSS Score0.015%
EPSS Percentile2nd 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.24.8
Fixed version1.24.8
EPSS Score0.031%
EPSS Percentile8th percentile
Description

The ParseAddress function constructs 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.24.8
Fixed version1.24.8
EPSS Score0.031%
EPSS Percentile8th 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.24.8
Fixed version1.24.8
EPSS Score0.016%
EPSS Percentile3rd 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.24.9
Fixed version1.24.9
EPSS Score0.016%
EPSS Percentile3rd 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 gnupg 2.4.7-r0 (apk)

pkg:apk/alpine/gnupg@2.4.7-r0?os_name=alpine&os_version=3.21

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:8cbf518fd59b2d4f5415bb1ed0874b93ccfe9bf82a5708f18afc0ccee4cbf0a0
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.16-fpm-alpine
  • 8.4.16-fpm-alpine3.23
digestsha256:96c072939e5497bce30cb0682f7397af04df01d4fcf78ede1dd6bdd3394e240f
vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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 gnupg 2.4.8-r1 (apk)

pkg:apk/alpine/gnupg@2.4.8-r1?os_name=alpine&os_version=3.23

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:0e720182b9218710babb76555b82d909dcd41adc814ba740a0c3f677abd60c43
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.16-alpine
  • 8.4.16-alpine3.23
  • 8.4.16-cli-alpine
  • 8.4.16-cli-alpine3.23
digestsha256:d07aff446f152e78003bdbf5f625f44501ba75bccfc6bfd6dc79ba3489a90db8
vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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 gnupg 2.4.8-r1 (apk)

pkg:apk/alpine/gnupg@2.4.8-r1?os_name=alpine&os_version=3.23

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:6ff00112eb682bf627bc92c79acec0f39e97dba984106e6101afebc19cc235ac
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.30-fpm-alpine
  • 8.2.30-fpm-alpine3.23
digestsha256:ea3dec3a85d02c19f088dc4385934af92b28f6c0b2d7318c72b340cac487b821
vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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 gnupg 2.4.8-r1 (apk)

pkg:apk/alpine/gnupg@2.4.8-r1?os_name=alpine&os_version=3.23

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.2-alpine

Name8.2.30-alpine3.23
Digestsha256:dad4e0c31503684d830285906fc548ea6788310260a670a9cd579f69636d873c
Vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
Pushed2 weeks ago
Size37 MB
Packages61
Flavoralpine
OS3.23
Runtime8.2.30
The base image is also available under the supported tag(s): 8.2-alpine3.23, 8.2-cli-alpine, 8.2-cli-alpine3.23, 8.2.30-alpine, 8.2.30-alpine3.23, 8.2.30-cli-alpine, 8.2.30-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.16-cli-alpine
  • 8.4.16-cli-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.16-alpine
  • 8.4.16-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.16
2 weeks ago



8.3-alpine
Minor runtime version update
Also known as:
  • 8.3.29-cli-alpine3.23
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.23
  • 8.3.29-alpine
  • 8.3-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: 38 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.3
2 weeks ago



8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.1-cli-alpine
  • 8.5.1-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.1-alpine
  • 8.5.1-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.1
2 weeks ago



@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.4-fpm-alpine

Name8.4.16-fpm-alpine3.23
Digestsha256:96c072939e5497bce30cb0682f7397af04df01d4fcf78ede1dd6bdd3394e240f
Vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
Pushed2 weeks ago
Size36 MB
Packages62
Flavoralpine
OS3.23
Runtime8.4.16
The base image is also available under the supported tag(s): 8.4-fpm-alpine3.23, 8.4.16-fpm-alpine, 8.4.16-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.1-fpm-alpine
  • 8.5.1-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
  • Image has similar size
  • Image has same number of vulnerabilities
Image details:
  • Size: 38 MB
  • Flavor: alpine
  • OS: 3.23
2 weeks ago



@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:3604fed52d81970a176cafe8300295cf4ba1d0b9d7ca9dfc060e2f2e64591f54

Digest
Vulnerabilities
Size0 B
Packages0

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

✅ There are no tag recommendations at this time.

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:f5400eb7e63919a5e11d8e3332fddee499f65110f14d23a0c72728afe1911685
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-cli-alpine3.23
  • 8.2.30-alpine
  • 8.2.30-alpine3.23
  • 8.2.30-cli-alpine
  • 8.2.30-cli-alpine3.23
digestsha256:dad4e0c31503684d830285906fc548ea6788310260a670a9cd579f69636d873c
vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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 gnupg 2.4.8-r1 (apk)

pkg:apk/alpine/gnupg@2.4.8-r1?os_name=alpine&os_version=3.23

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:816861c27a1e6457e9a21bf4ea32df95edd64af2b91a25977b052a80fbea30ac
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.16-alpine
  • 8.4.16-alpine3.23
  • 8.4.16-cli-alpine
  • 8.4.16-cli-alpine3.23
digestsha256:d07aff446f152e78003bdbf5f625f44501ba75bccfc6bfd6dc79ba3489a90db8
vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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 gnupg 2.4.8-r1 (apk)

pkg:apk/alpine/gnupg@2.4.8-r1?os_name=alpine&os_version=3.23

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.2-fpm-alpine

Name8.2.30-fpm-alpine3.23
Digestsha256:ea3dec3a85d02c19f088dc4385934af92b28f6c0b2d7318c72b340cac487b821
Vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
Pushed2 weeks ago
Size33 MB
Packages62
Flavoralpine
OS3.23
Runtime8.2.30
The base image is also available under the supported tag(s): 8.2-fpm-alpine3.23, 8.2.30-fpm-alpine, 8.2.30-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.16-fpm-alpine
  • 8.4.16-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.16
2 weeks ago



8.3-fpm-alpine
Minor runtime version update
Also known as:
  • 8.3.29-fpm-alpine
  • 8.3.29-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.29
2 weeks ago



8.5-fpm-alpine
Image has same number of vulnerabilities
Also known as:
  • 8.5.1-fpm-alpine
  • 8.5.1-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
  • Image has similar size
  • Image has same number of vulnerabilities
Image details:
  • Size: 38 MB
  • Flavor: alpine
  • OS: 3.23
2 weeks ago



@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.4-alpine

Name8.4.16-alpine3.23
Digestsha256:d07aff446f152e78003bdbf5f625f44501ba75bccfc6bfd6dc79ba3489a90db8
Vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
Pushed2 weeks ago
Size41 MB
Packages61
Flavoralpine
OS3.23
Runtime8.4.16
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.16-alpine, 8.4.16-alpine3.23, 8.4.16-cli-alpine, 8.4.16-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.1-cli-alpine
  • 8.5.1-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.1-alpine
  • 8.5.1-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.1
2 weeks ago



1 similar comment
@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.4-alpine

Name8.4.16-alpine3.23
Digestsha256:d07aff446f152e78003bdbf5f625f44501ba75bccfc6bfd6dc79ba3489a90db8
Vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
Pushed2 weeks ago
Size41 MB
Packages61
Flavoralpine
OS3.23
Runtime8.4.16
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.16-alpine, 8.4.16-alpine3.23, 8.4.16-cli-alpine, 8.4.16-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.1-cli-alpine
  • 8.5.1-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.1-alpine
  • 8.5.1-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.1
2 weeks ago



@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.2-alpine

Name8.2.30-alpine3.23
Digestsha256:dad4e0c31503684d830285906fc548ea6788310260a670a9cd579f69636d873c
Vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
Pushed2 weeks ago
Size37 MB
Packages61
Flavoralpine
OS3.23
Runtime8.2.30
The base image is also available under the supported tag(s): 8.2-alpine3.23, 8.2-cli-alpine, 8.2-cli-alpine3.23, 8.2.30-alpine, 8.2.30-alpine3.23, 8.2.30-cli-alpine, 8.2.30-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.16-cli-alpine
  • 8.4.16-cli-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.16-alpine
  • 8.4.16-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.16
2 weeks ago



8.3-alpine
Minor runtime version update
Also known as:
  • 8.3.29-cli-alpine3.23
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.23
  • 8.3.29-alpine
  • 8.3-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: 38 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.3
2 weeks ago



8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.1-cli-alpine
  • 8.5.1-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.1-alpine
  • 8.5.1-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.1
2 weeks ago



@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

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

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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 gnupg 2.4.8-r1 (apk)

pkg:apk/alpine/gnupg@2.4.8-r1?os_name=alpine&os_version=3.23

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.3-alpine

Name8.3-alpine3.23
Digestsha256:55dd280d2f913218b52230b55c4779a3549200cec9b2993e0a91ee3ea4323994
Vulnerabilitiescritical: 1 high: 0 medium: 4 low: 0 unspecified: 3
Pushed2 weeks ago
Size38 MB
Packages61
Flavoralpine
OS3.23
Runtime8.3
The base image is also available under the supported tag(s): 8.3-alpine3.23, 8.3-cli-alpine, 8.3-cli-alpine3.23, 8.3.29-alpine, 8.3.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.5-alpine
Minor runtime version update
Also known as:
  • 8.5.1-cli-alpine
  • 8.5.1-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.1-alpine
  • 8.5.1-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.1
2 weeks ago



8.4-alpine
Minor runtime version update
Also known as:
  • 8.4.16-cli-alpine
  • 8.4.16-cli-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.16-alpine
  • 8.4.16-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.16
2 weeks ago



@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:d9e81b69e7372f42578ea1fcc0d551f5ceccba2bb86c986817e752c3bb45a57e
vulnerabilitiescritical: 1 high: 9 medium: 0 low: 0
platformlinux/amd64
size128 MB
packages265
📦 Base Image php:8.1-alpine
also known as
  • 8.1-alpine3.21
  • 8.1-cli-alpine
  • 8.1-cli-alpine3.21
  • 8.1.34-alpine
  • 8.1.34-alpine3.21
  • 8.1.34-cli-alpine3.21
  • d0b581c71ccd5071323b105fbcf784f0cc839918e8992e56fe275df9dc840f2b
digestsha256:5a3201a62206d5168ce3bc9fe81cf35c07c93b4c213cff448ecbf5686161271a
vulnerabilitiescritical: 1 high: 0 medium: 5 low: 2
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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: 5 medium: 0 low: 0 stdlib 1.23.9 (golang)

pkg:golang/stdlib@1.23.9

high : CVE--2025--61729

Affected range<1.24.11
Fixed version1.24.11
EPSS Score0.015%
EPSS Percentile2nd 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.24.8
Fixed version1.24.8
EPSS Score0.031%
EPSS Percentile8th percentile
Description

The ParseAddress function constructs 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.24.8
Fixed version1.24.8
EPSS Score0.031%
EPSS Percentile8th 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.24.8
Fixed version1.24.8
EPSS Score0.016%
EPSS Percentile3rd 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.24.9
Fixed version1.24.9
EPSS Score0.016%
EPSS Percentile3rd 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 setuptools 70.3.0 (pypi)

pkg:pypi/setuptools@70.3.0

high 7.7: CVE--2025--47273 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Affected range<78.1.1
Fixed version78.1.1
CVSS Score7.7
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:P
EPSS Score0.135%
EPSS Percentile34th percentile
Description

Summary

A path traversal vulnerability in PackageIndex was fixed in setuptools version 78.1.1

Details

    def _download_url(self, url, tmpdir):
        # Determine download filename
        #
        name, _fragment = egg_info_for_url(url)
        if name:
            while '..' in name:
                name = name.replace('..', '.').replace('\\', '_')
        else:
            name = "__downloaded__"  # default if URL has no path contents

        if name.endswith('.[egg.zip](http://egg.zip/)'):
            name = name[:-4]  # strip the extra .zip before download

 -->       filename = os.path.join(tmpdir, name)

Here: https://github.com/pypa/setuptools/blob/6ead555c5fb29bc57fe6105b1bffc163f56fd558/setuptools/package_index.py#L810C1-L825C88

os.path.join() discards the first argument tmpdir if the second begins with a slash or drive letter.
name is derived from a URL without sufficient sanitization. While there is some attempt to sanitize by replacing instances of '..' with '.', it is insufficient.

Risk Assessment

As easy_install and package_index are deprecated, the exploitation surface is reduced.
However, it seems this could be exploited in a similar fashion like GHSA-r9hx-vwmv-q579, and as described by POC 4 in GHSA-cx63-2mw6-8hw5 report: via malicious URLs present on the pages of a package index.

Impact

An attacker would be allowed to write files to arbitrary locations on the filesystem with the permissions of the process running the Python code, which could escalate to RCE depending on the context.

References

https://huntr.com/bounties/d6362117-ad57-4e83-951f-b8141c6e7ca5
pypa/setuptools#4946

critical: 0 high: 1 medium: 0 low: 0 gnupg 2.4.7-r0 (apk)

pkg:apk/alpine/gnupg@2.4.7-r0?os_name=alpine&os_version=3.21

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.1-alpine

Name8.1.34-alpine3.21
Digestsha256:5a3201a62206d5168ce3bc9fe81cf35c07c93b4c213cff448ecbf5686161271a
Vulnerabilitiescritical: 1 high: 0 medium: 5 low: 2
Pushed2 weeks ago
Size36 MB
Packages59
Flavoralpine
OS3.21
Runtime8.1.34

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.16-cli-alpine
  • 8.4.16-cli-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.16-alpine
  • 8.4.16-alpine3.23
  • 8.4-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image introduces no new vulnerability but removes 3
  • Image contains similar number of packages
Image details:
  • Size: 41 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.4.16
2 weeks ago



8.4-alpine3.22
Minor runtime version update
Also known as:
  • 8.4.16-cli-alpine3.22
  • 8.4-cli-alpine3.22
  • 8.4.16-alpine3.22
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains similar number of packages
Image details:
  • Size: 41 MB
  • Flavor: alpine
  • OS: 3.22
  • Runtime: 8.4.16
2 weeks ago



8.3-alpine3.22
Minor runtime version update
Also known as:
  • 8.3.29-cli-alpine3.22
  • 8.3-cli-alpine3.22
  • 8.3.29-alpine3.22
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains similar number of packages
Image details:
  • Size: 37 MB
  • Flavor: alpine
  • OS: 3.22
  • Runtime: 8.3.29
2 weeks ago



8.3-alpine
Minor runtime version update
Also known as:
  • 8.3.29-cli-alpine3.23
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.23
  • 8.3.29-alpine
  • 8.3-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image introduces no new vulnerability but removes 3
  • Image contains similar number of packages
Image details:
  • Size: 38 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.3
2 weeks ago



8.2-alpine
Minor runtime version update
Also known as:
  • 8.2.30-cli-alpine
  • 8.2.30-cli-alpine3.23
  • 8.2-cli-alpine
  • 8.2-cli-alpine3.23
  • 8.2.30-alpine
  • 8.2.30-alpine3.23
  • 8.2-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image introduces no new vulnerability but removes 3
  • Image contains similar number of packages
  • 8.2-alpine was pulled 1.8K times last month
Image details:
  • Size: 37 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.2.30
2 weeks ago



8.2-alpine3.22
Minor runtime version update
Also known as:
  • 8.2.30-cli-alpine3.22
  • 8.2-cli-alpine3.22
  • 8.2.30-alpine3.22
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains similar number of packages
Image details:
  • Size: 37 MB
  • Flavor: alpine
  • OS: 3.22
  • Runtime: 8.2.30
2 weeks ago



8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.1-cli-alpine
  • 8.5.1-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.1-alpine
  • 8.5.1-alpine3.23
  • 8.5-alpine3.23
  • 8-alpine
  • 8-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image introduces no new vulnerability but removes 3
  • Image contains similar number of packages
Image details:
  • Size: 44 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.5.1
2 weeks ago



8.5-alpine3.22
Minor runtime version update
Also known as:
  • 8.5.1-cli-alpine3.22
  • 8.5-cli-alpine3.22
  • 8-cli-alpine3.22
  • cli-alpine3.22
  • alpine3.22
  • 8-alpine3.22
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has same number of vulnerabilities
  • Image contains equal number of packages
Image details:
  • Size: 44 MB
  • Flavor: alpine
  • OS: 3.22
  • Runtime: 8.5
2 weeks ago



@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:439cf8238d695eea8df5cdc9853ef5f2ad381d396670e1b47ac9a9470b988bb0
vulnerabilitiescritical: 1 high: 8 medium: 0 low: 0
platformlinux/amd64
size109 MB
packages247
📦 Base Image php:8.1-alpine
also known as
  • 8.1-alpine3.21
  • 8.1-cli-alpine
  • 8.1-cli-alpine3.21
  • 8.1.34-alpine
  • 8.1.34-alpine3.21
  • 8.1.34-cli-alpine3.21
  • d0b581c71ccd5071323b105fbcf784f0cc839918e8992e56fe275df9dc840f2b
digestsha256:5a3201a62206d5168ce3bc9fe81cf35c07c93b4c213cff448ecbf5686161271a
vulnerabilitiescritical: 1 high: 0 medium: 5 low: 2
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.025%
EPSS Percentile6th 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.215%
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: 5 medium: 0 low: 0 stdlib 1.23.9 (golang)

pkg:golang/stdlib@1.23.9

high : CVE--2025--61729

Affected range<1.24.11
Fixed version1.24.11
EPSS Score0.015%
EPSS Percentile2nd 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.24.8
Fixed version1.24.8
EPSS Score0.031%
EPSS Percentile8th percentile
Description

The ParseAddress function constructs 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.24.8
Fixed version1.24.8
EPSS Score0.031%
EPSS Percentile8th 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.24.8
Fixed version1.24.8
EPSS Score0.016%
EPSS Percentile3rd 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.24.9
Fixed version1.24.9
EPSS Score0.016%
EPSS Percentile3rd 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 gnupg 2.4.7-r0 (apk)

pkg:apk/alpine/gnupg@2.4.7-r0?os_name=alpine&os_version=3.21

high : CVE--2025--68973

Affected range<2.4.9-r0
Fixed version2.4.9-r0
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

@github-actions

github-actions Bot commented Jan 8, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.1-alpine

Name8.1.34-alpine3.21
Digestsha256:5a3201a62206d5168ce3bc9fe81cf35c07c93b4c213cff448ecbf5686161271a
Vulnerabilitiescritical: 1 high: 0 medium: 5 low: 2
Pushed2 weeks ago
Size36 MB
Packages59
Flavoralpine
OS3.21
Runtime8.1.34

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.16-cli-alpine
  • 8.4.16-cli-alpine3.23
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.23
  • 8.4.16-alpine
  • 8.4.16-alpine3.23
  • 8.4-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image introduces no new vulnerability but removes 3
  • Image contains similar number of packages
Image details:
  • Size: 41 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.4.16
2 weeks ago



8.4-alpine3.22
Minor runtime version update
Also known as:
  • 8.4.16-cli-alpine3.22
  • 8.4-cli-alpine3.22
  • 8.4.16-alpine3.22
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains similar number of packages
Image details:
  • Size: 41 MB
  • Flavor: alpine
  • OS: 3.22
  • Runtime: 8.4.16
2 weeks ago



8.3-alpine3.22
Minor runtime version update
Also known as:
  • 8.3.29-cli-alpine3.22
  • 8.3-cli-alpine3.22
  • 8.3.29-alpine3.22
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains similar number of packages
Image details:
  • Size: 37 MB
  • Flavor: alpine
  • OS: 3.22
  • Runtime: 8.3.29
2 weeks ago



8.3-alpine
Minor runtime version update
Also known as:
  • 8.3.29-cli-alpine3.23
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.23
  • 8.3.29-alpine
  • 8.3-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image introduces no new vulnerability but removes 3
  • Image contains similar number of packages
Image details:
  • Size: 38 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.3
2 weeks ago



8.2-alpine
Minor runtime version update
Also known as:
  • 8.2.30-cli-alpine
  • 8.2.30-cli-alpine3.23
  • 8.2-cli-alpine
  • 8.2-cli-alpine3.23
  • 8.2.30-alpine
  • 8.2.30-alpine3.23
  • 8.2-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image introduces no new vulnerability but removes 3
  • Image contains similar number of packages
  • 8.2-alpine was pulled 1.8K times last month
Image details:
  • Size: 37 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.2.30
2 weeks ago



8.2-alpine3.22
Minor runtime version update
Also known as:
  • 8.2.30-cli-alpine3.22
  • 8.2-cli-alpine3.22
  • 8.2.30-alpine3.22
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has similar size
  • Image has same number of vulnerabilities
  • Image contains similar number of packages
Image details:
  • Size: 37 MB
  • Flavor: alpine
  • OS: 3.22
  • Runtime: 8.2.30
2 weeks ago



8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.1-cli-alpine
  • 8.5.1-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.1-alpine
  • 8.5.1-alpine3.23
  • 8.5-alpine3.23
  • 8-alpine
  • 8-alpine3.23
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image introduces no new vulnerability but removes 3
  • Image contains similar number of packages
Image details:
  • Size: 44 MB
  • Flavor: alpine
  • OS: 3.23
  • Runtime: 8.5.1
2 weeks ago



8.5-alpine3.22
Minor runtime version update
Also known as:
  • 8.5.1-cli-alpine3.22
  • 8.5-cli-alpine3.22
  • 8-cli-alpine3.22
  • cli-alpine3.22
  • alpine3.22
  • 8-alpine3.22
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image has same number of vulnerabilities
  • Image contains equal number of packages
Image details:
  • Size: 44 MB
  • Flavor: alpine
  • OS: 3.22
  • Runtime: 8.5
2 weeks ago



@renovate
renovate Bot force-pushed the renovate/ansible-ansible-lint-26.x branch from 275ec55 to c867e55 Compare January 16, 2026 05:44
@github-actions

github-actions Bot commented Jan 16, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:3948a13b0727df7999a2869617184a1217405f7cdd1f646baacf66a80e540b21
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.16-alpine
  • 8.4.16-alpine3.23
  • 8.4.16-cli-alpine
  • 8.4.16-cli-alpine3.23
digestsha256:7a1d3f8571112926ead3b48083792fc807cc83c4f8c1d4d7f80d4f8d0783231a
vulnerabilitiescritical: 0 high: 0 medium: 6 low: 0 unspecified: 1
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.032%
EPSS Percentile9th 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.215%
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 libtasn1 4.20.0-r0 (apk)

pkg:apk/alpine/libtasn1@4.20.0-r0?os_name=alpine&os_version=3.23

high : CVE--2025--13151

Affected range<4.21.0-r0
Fixed version4.21.0-r0
EPSS Score0.050%
EPSS Percentile16th percentile
Description

@github-actions

github-actions Bot commented Jan 16, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:b35896680d3ca267f8835a4d3b5362608657ebabb816f2bbefa93bfb0215b36d
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-cli-alpine3.23
  • 8.2.30-alpine
  • 8.2.30-alpine3.23
  • 8.2.30-cli-alpine
  • 8.2.30-cli-alpine3.23
digestsha256:87f097f8e96a5ea5a7eb41d99f1c7a8cb8565755b027fcbc64cb9bfcedaeb7bf
vulnerabilitiescritical: 0 high: 0 medium: 6 low: 0 unspecified: 1
critical: 1 high: 2 medium: 0 low: 0 golang.org/x/crypto 0.17.0 (golang)

pkg:golang/golang.org/x/crypto@0.17.0

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/crypto@v0.31.0 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.032%
EPSS Percentile9th 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.215%
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 libtasn1 4.20.0-r0 (apk)

pkg:apk/alpine/libtasn1@4.20.0-r0?os_name=alpine&os_version=3.23

high : CVE--2025--13151

Affected range<4.21.0-r0
Fixed version4.21.0-r0
EPSS Score0.050%
EPSS Percentile16th percentile
Description

@github-actions

github-actions Bot commented Mar 5, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of ghcr.io/dependabot/dependabot-updater-core:latest

📦 Image Reference ghcr.io/dependabot/dependabot-updater-core:latest
digestsha256:6a9a13044b52a7bf0dae95205f854c561478bd1cd2f3de8d59133e4ed6a4d8b5
vulnerabilitiescritical: 6 high: 51 medium: 0 low: 0
platformlinux/amd64
size347 MB
packages601
📦 Base Image ubuntu:24.04
also known as
  • latest
  • noble
digestsha256:98ff7968124952e719a8a69bb3cccdd217f5fe758108ac4f21ad22e1df44d237
vulnerabilitiescritical: 0 high: 0 medium: 4 low: 5
critical: 5 high: 38 medium: 0 low: 0 stdlib 1.18.3 (golang)

pkg:golang/stdlib@1.18.3

critical : CVE--2025--68121

Affected range<1.24.13
Fixed version1.24.13
EPSS Score0.009%
EPSS Percentile1st percentile
Description

During session resumption in crypto/tls, if the underlying Config has its ClientCAs or RootCAs fields mutated between the initial handshake and the resumed handshake, the resumed handshake may succeed when it should have failed. This may happen when a user calls Config.Clone and mutates the returned Config, or uses Config.GetConfigForClient. This can cause a client to resume a session with a server that it would not have resumed with during the initial handshake, or cause a server to resume a session with a client that it would not have resumed with during the initial handshake.

critical : CVE--2024--24790

Affected range<1.21.11
Fixed version1.21.11
EPSS Score0.082%
EPSS Percentile24th percentile
Description

The various Is methods (IsPrivate, IsLoopback, etc) did not work as expected for IPv4-mapped IPv6 addresses, returning false for addresses which would return true in their traditional IPv4 forms.

critical : CVE--2023--24540

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.243%
EPSS Percentile47th percentile
Description

Not all valid JavaScript whitespace characters are considered to be whitespace. Templates containing whitespace characters outside of the character set "\t\n\f\r\u0020\u2028\u2029" in JavaScript contexts that also contain actions may not be properly sanitized during execution.

critical : CVE--2023--24538

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.646%
EPSS Percentile70th percentile
Description

Templates do not properly consider backticks (`) as Javascript string delimiters, and do not escape them as expected.

Backticks are used, since ES6, for JS template literals. If a template contains a Go template action within a Javascript template literal, the contents of the action can be used to terminate the literal, injecting arbitrary Javascript code into the Go template.

As ES6 template literals are rather complex, and themselves can do string interpolation, the decision was made to simply disallow Go template actions from being used inside of them (e.g. "var a = {{.}}"), since there is no obviously safe way to allow this behavior. This takes the same approach as github.com/google/safehtml.

With fix, Template.Parse returns an Error when it encounters templates like this, with an ErrorCode of value 12. This ErrorCode is currently unexported, but will be exported in the release of Go 1.21.

Users who rely on the previous behavior can re-enable it using the GODEBUG flag jstmpllitinterp=1, with the caveat that backticks will now be escaped. This should be used with caution.

critical : CVE--2025--22871

Affected range<1.23.8
Fixed version1.23.8
EPSS Score0.117%
EPSS Percentile30th percentile
Description

The net/http package improperly accepts a bare LF as a line terminator in chunked data chunk-size lines. This can permit request smuggling if a net/http server is used in conjunction with a server that incorrectly accepts a bare LF as part of a chunk-ext.

high : CVE--2023--29403

Affected range<1.19.10
Fixed version1.19.10
EPSS Score0.009%
EPSS Percentile1st percentile
Description

On Unix platforms, the Go runtime does not behave differently when a binary is run with the setuid/setgid bits. This can be dangerous in certain cases, such as when dumping memory state, or assuming the status of standard i/o file descriptors.

If a setuid/setgid binary is executed with standard I/O file descriptors closed, opening any files can result in unexpected content being read or written with elevated privileges. Similarly, if a setuid/setgid program is terminated, either via panic or signal, it may leak the contents of its registers.

high : CVE--2025--61729

Affected range<1.24.11
Fixed version1.24.11
EPSS Score0.017%
EPSS Percentile4th 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--61726

Affected range<1.24.12
Fixed version1.24.12
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The net/url package does not set a limit on the number of query parameters in a query.

While the maximum size of query parameters in URLs is generally limited by the maximum request header size, the net/http.Request.ParseForm method can parse large URL-encoded forms. Parsing a large form containing many unique query parameters can cause excessive memory consumption.

high : CVE--2025--61725

Affected range<1.24.8
Fixed version1.24.8
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The ParseAddress function constructs 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.24.8
Fixed version1.24.8
EPSS Score0.040%
EPSS Percentile12th 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.24.8
Fixed version1.24.8
EPSS Score0.019%
EPSS Percentile5th 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.24.9
Fixed version1.24.9
EPSS Score0.019%
EPSS Percentile5th 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.

high : CVE--2024--34158

Affected range<1.22.7
Fixed version1.22.7
EPSS Score0.163%
EPSS Percentile37th percentile
Description

Calling Parse on a "// +build" build tag line with deeply nested expressions can cause a panic due to stack exhaustion.

high : CVE--2024--34156

Affected range<1.22.7
Fixed version1.22.7
EPSS Score0.298%
EPSS Percentile53rd percentile
Description

Calling Decoder.Decode on a message which contains deeply nested structures can cause a panic due to stack exhaustion. This is a follow-up to CVE-2022-30635.

high : CVE--2024--24791

Affected range<1.21.12
Fixed version1.21.12
EPSS Score0.618%
EPSS Percentile70th percentile
Description

The net/http HTTP/1.1 client mishandled the case where a server responds to a request with an "Expect: 100-continue" header with a non-informational (200 or higher) status. This mishandling could leave a client connection in an invalid state, where the next request sent on the connection will fail.

An attacker sending a request to a net/http/httputil.ReverseProxy proxy can exploit this mishandling to cause a denial of service by sending "Expect: 100-continue" requests which elicit a non-informational response from the backend. Each such request leaves the proxy with an invalid connection, and causes one subsequent request using that connection to fail.

high : CVE--2024--24784

Affected range<1.21.8
Fixed version1.21.8
EPSS Score1.498%
EPSS Percentile81st percentile
Description

The ParseAddressList function incorrectly handles comments (text within parentheses) within display names. Since this is a misalignment with conforming address parsers, it can result in different trust decisions being made by programs using different parsers.

high : CVE--2023--45288

Affected range<1.21.9
Fixed version1.21.9
EPSS Score71.463%
EPSS Percentile99th percentile
Description

An attacker may cause an HTTP/2 endpoint to read arbitrary amounts of header data by sending an excessive number of CONTINUATION frames.

Maintaining HPACK state requires parsing and processing all HEADERS and CONTINUATION frames on a connection. When a request's headers exceed MaxHeaderBytes, no memory is allocated to store the excess headers, but they are still parsed.

This permits an attacker to cause an HTTP/2 endpoint to read arbitrary amounts of header data, all associated with a request which is going to be rejected. These headers can include Huffman-encoded data which is significantly more expensive for the receiver to decode than for an attacker to send.

The fix sets a limit on the amount of excess header frames we will process before closing a connection.

high : CVE--2023--45287

Affected range<1.20.0
Fixed version1.20.0
EPSS Score0.185%
EPSS Percentile40th percentile
Description

Before Go 1.20, the RSA based TLS key exchanges used the math/big library, which is not constant time. RSA blinding was applied to prevent timing attacks, but analysis shows this may not have been fully effective. In particular it appears as if the removal of PKCS#1 padding may leak timing information, which in turn could be used to recover session key bits.

In Go 1.20, the crypto/tls library switched to a fully constant time RSA implementation, which we do not believe exhibits any timing side channels.

high : CVE--2023--45283

Affected range<1.20.11
Fixed version1.20.11
EPSS Score0.097%
EPSS Percentile27th percentile
Description

The filepath package does not recognize paths with a ??\ prefix as special.

On Windows, a path beginning with ??\ is a Root Local Device path equivalent to a path beginning with \?. Paths with a ??\ prefix may be used to access arbitrary locations on the system. For example, the path ??\c:\x is equivalent to the more common path c:\x.

Before fix, Clean could convert a rooted path such as \a..??\b into the root local device path ??\b. Clean will now convert this to .??\b.

Similarly, Join(, ??, b) could convert a seemingly innocent sequence of path elements into the root local device path ??\b. Join will now convert this to .??\b.

In addition, with fix, IsAbs now correctly reports paths beginning with ??\ as absolute, and VolumeName correctly reports the ??\ prefix as a volume name.

UPDATE: Go 1.20.11 and Go 1.21.4 inadvertently changed the definition of the volume name in Windows paths starting with ?, resulting in filepath.Clean(?\c:) returning ?\c: rather than ?\c:\ (among other effects). The previous behavior has been restored.

high : CVE--2023--44487

Affected range<1.20.10
Fixed version1.20.10
EPSS Score94.399%
EPSS Percentile100th percentile
Description

A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. While the total number of requests is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an in-progress request allows the attacker to create a new request while the existing one is still executing.

With the fix applied, HTTP/2 servers now bound the number of simultaneously executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams). New requests arriving when at the limit (which can only happen after the client has reset an existing, in-flight request) will be queued until a handler exits. If the request queue grows too large, the server will terminate the connection.

This issue is also fixed in golang.org/x/net/http2 for users manually configuring HTTP/2.

The default stream concurrency limit is 250 streams (requests) per HTTP/2 connection. This value may be adjusted using the golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams setting and the ConfigureServer function.

high : CVE--2023--39325

Affected range<1.20.10
Fixed version1.20.10
EPSS Score0.150%
EPSS Percentile35th percentile
Description

A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. While the total number of requests is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an in-progress request allows the attacker to create a new request while the existing one is still executing.

With the fix applied, HTTP/2 servers now bound the number of simultaneously executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams). New requests arriving when at the limit (which can only happen after the client has reset an existing, in-flight request) will be queued until a handler exits. If the request queue grows too large, the server will terminate the connection.

This issue is also fixed in golang.org/x/net/http2 for users manually configuring HTTP/2.

The default stream concurrency limit is 250 streams (requests) per HTTP/2 connection. This value may be adjusted using the golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams setting and the ConfigureServer function.

high : CVE--2023--24537

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.013%
EPSS Percentile2nd percentile
Description

Calling any of the Parse functions on Go source code which contains //line directives with very large line numbers can cause an infinite loop due to integer overflow.

high : CVE--2023--24536

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.070%
EPSS Percentile21st percentile
Description

Multipart form parsing can consume large amounts of CPU and memory when processing form inputs containing very large numbers of parts.

This stems from several causes:

  1. mime/multipart.Reader.ReadForm limits the total memory a parsed multipart form can consume. ReadForm can undercount the amount of memory consumed, leading it to accept larger inputs than intended.
  2. Limiting total memory does not account for increased pressure on the garbage collector from large numbers of small allocations in forms with many parts.
  3. ReadForm can allocate a large number of short-lived buffers, further increasing pressure on the garbage collector.

The combination of these factors can permit an attacker to cause an program that parses multipart forms to consume large amounts of CPU and memory, potentially resulting in a denial of service. This affects programs that use mime/multipart.Reader.ReadForm, as well as form parsing in the net/http package with the Request methods FormFile, FormValue, ParseMultipartForm, and PostFormValue.

With fix, ReadForm now does a better job of estimating the memory consumption of parsed forms, and performs many fewer short-lived allocations.

In addition, the fixed mime/multipart.Reader imposes the following limits on the size of parsed forms:

  1. Forms parsed with ReadForm may contain no more than 1000 parts. This limit may be adjusted with the environment variable GODEBUG=multipartmaxparts=.
  2. Form parts parsed with NextPart and NextRawPart may contain no more than 10,000 header fields. In addition, forms parsed with ReadForm may contain no more than 10,000 header fields across all parts. This limit may be adjusted with the environment variable GODEBUG=multipartmaxheaders=.

high : CVE--2023--24534

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.048%
EPSS Percentile15th percentile
Description

HTTP and MIME header parsing can allocate large amounts of memory, even when parsing small inputs, potentially leading to a denial of service.

Certain unusual patterns of input data can cause the common function used to parse HTTP and MIME headers to allocate substantially more memory than required to hold the parsed headers. An attacker can exploit this behavior to cause an HTTP server to allocate large amounts of memory from a small request, potentially leading to memory exhaustion and a denial of service.

With fix, header parsing now correctly allocates only the memory required to hold parsed headers.

high : CVE--2022--41725

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.048%
EPSS Percentile15th percentile
Description

A denial of service is possible from excessive resource consumption in net/http and mime/multipart.

Multipart form parsing with mime/multipart.Reader.ReadForm can consume largely unlimited amounts of memory and disk files. This also affects form parsing in the net/http package with the Request methods FormFile, FormValue, ParseMultipartForm, and PostFormValue.

ReadForm takes a maxMemory parameter, and is documented as storing "up to maxMemory bytes +10MB (reserved for non-file parts) in memory". File parts which cannot be stored in memory are stored on disk in temporary files. The unconfigurable 10MB reserved for non-file parts is excessively large and can potentially open a denial of service vector on its own. However, ReadForm did not properly account for all memory consumed by a parsed form, such as map entry overhead, part names, and MIME headers, permitting a maliciously crafted form to consume well over 10MB. In addition, ReadForm contained no limit on the number of disk files created, permitting a relatively small request body to create a large number of disk temporary files.

With fix, ReadForm now properly accounts for various forms of memory overhead, and should now stay within its documented limit of 10MB + maxMemory bytes of memory consumption. Users should still be aware that this limit is high and may still be hazardous.

In addition, ReadForm now creates at most one on-disk temporary file, combining multiple form parts into a single temporary file. The mime/multipart.File interface type's documentation states, "If stored on disk, the File's underlying concrete type will be an *os.File.". This is no longer the case when a form contains more than one file part, due to this coalescing of parts into a single file. The previous behavior of using distinct files for each form part may be reenabled with the environment variable GODEBUG=multipartfiles=distinct.

Users should be aware that multipart.ReadForm and the http.Request methods that call it do not limit the amount of disk consumed by temporary files. Callers can limit the size of form data with http.MaxBytesReader.

high : CVE--2022--41724

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.015%
EPSS Percentile3rd percentile
Description

Large handshake records may cause panics in crypto/tls.

Both clients and servers may send large TLS handshake records which cause servers and clients, respectively, to panic when attempting to construct responses.

This affects all TLS 1.3 clients, TLS 1.2 clients which explicitly enable session resumption (by setting Config.ClientSessionCache to a non-nil value), and TLS 1.3 servers which request client certificates (by setting Config.ClientAuth >= RequestClientCert).

high : CVE--2022--41723

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.195%
EPSS Percentile41st percentile
Description

A maliciously crafted HTTP/2 stream could cause excessive CPU consumption in the HPACK decoder, sufficient to cause a denial of service from a small number of small requests.

high : CVE--2022--41722

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.175%
EPSS Percentile39th percentile
Description

A path traversal vulnerability exists in filepath.Clean on Windows.

On Windows, the filepath.Clean function could transform an invalid path such as "a/../c:/b" into the valid path "c:\b". This transformation of a relative (if invalid) path into an absolute path could enable a directory traversal attack.

After fix, the filepath.Clean function transforms this path into the relative (but still invalid) path ".\c:\b".

high : CVE--2022--41720

Affected range<1.18.9
Fixed version1.18.9
EPSS Score0.035%
EPSS Percentile10th percentile
Description

On Windows, restricted files can be accessed via os.DirFS and http.Dir.

The os.DirFS function and http.Dir type provide access to a tree of files rooted at a given directory. These functions permit access to Windows device files under that root. For example, os.DirFS("C:/tmp").Open("COM1") opens the COM1 device. Both os.DirFS and http.Dir only provide read-only filesystem access.

In addition, on Windows, an os.DirFS for the directory (the root of the current drive) can permit a maliciously crafted path to escape from the drive and access any path on the system.

With fix applied, the behavior of os.DirFS("") has changed. Previously, an empty root was treated equivalently to "/", so os.DirFS("").Open("tmp") would open the path "/tmp". This now returns an error.

high : CVE--2022--41716

Affected range<1.18.8
Fixed version1.18.8
EPSS Score0.013%
EPSS Percentile2nd percentile
Description

Due to unsanitized NUL values, attackers may be able to maliciously set environment variables on Windows.

In syscall.StartProcess and os/exec.Cmd, invalid environment variable values containing NUL values are not properly checked for. A malicious environment variable value can exploit this behavior to set a value for a different environment variable. For example, the environment variable string "A=B\x00C=D" sets the variables "A=B" and "C=D".

high : CVE--2022--41715

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.016%
EPSS Percentile4th percentile
Description

Programs which compile regular expressions from untrusted sources may be vulnerable to memory exhaustion or denial of service.

The parsed regexp representation is linear in the size of the input, but in some cases the constant factor can be as high as 40,000, making relatively small regexps consume much larger amounts of memory.

After fix, each regexp being parsed is limited to a 256 MB memory footprint. Regular expressions whose representation would use more space than that are rejected. Normal use of regular expressions is unaffected.

high : CVE--2022--32189

Affected range>=1.18.0-0
<1.18.5
Fixed version1.18.5
EPSS Score0.113%
EPSS Percentile30th percentile
Description

Decoding big.Float and big.Rat types can panic if the encoded message is too short, potentially allowing a denial of service.

high : CVE--2022--30635

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Calling Decoder.Decode on a message which contains deeply nested structures can cause a panic due to stack exhaustion.

high : CVE--2022--30633

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Unmarshaling an XML document into a Go struct which has a nested field that uses the 'any' field tag can panic due to stack exhaustion.

high : CVE--2022--30632

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Calling Glob on a path which contains a large number of path separators can cause a panic due to stack exhaustion.

high : CVE--2022--30631

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.042%
EPSS Percentile13th percentile
Description

Calling Reader.Read on an archive containing a large number of concatenated 0-length compressed files can cause a panic due to stack exhaustion.

high : CVE--2022--30630

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.038%
EPSS Percentile11th percentile
Description

Calling Glob on a path which contains a large number of path separators can cause a panic due to stack exhaustion.

high : CVE--2022--2880

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.032%
EPSS Percentile9th percentile
Description

Requests forwarded by ReverseProxy include the raw query parameters from the inbound request, including unparsable parameters rejected by net/http. This could permit query parameter smuggling when a Go proxy forwards a parameter with an unparsable value.

After fix, ReverseProxy sanitizes the query parameters in the forwarded query when the outbound request's Form field is set after the ReverseProxy. Director function returns, indicating that the proxy has parsed the query parameters. Proxies which do not parse query parameters continue to forward the original query parameters unchanged.

high : CVE--2022--2879

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

Reader.Read does not set a limit on the maximum size of file headers. A maliciously crafted archive could cause Read to allocate unbounded amounts of memory, potentially causing resource exhaustion or panics. After fix, Reader.Read limits the maximum size of header blocks to 1 MiB.

high : CVE--2022--28131

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.015%
EPSS Percentile3rd percentile
Description

Calling Decoder.Skip when parsing a deeply nested XML document can cause a panic due to stack exhaustion.

high : CVE--2022--27664

Affected range<1.18.6
Fixed version1.18.6
EPSS Score0.101%
EPSS Percentile28th percentile
Description

HTTP/2 server connections can hang forever waiting for a clean shutdown that was preempted by a fatal error. This condition can be exploited by a malicious client to cause a denial of service.

high : CVE--2023--29400

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.048%
EPSS Percentile15th percentile
Description

Templates containing actions in unquoted HTML attributes (e.g. "attr={{.}}") executed with empty input can result in output with unexpected results when parsed due to HTML normalization rules. This may allow injection of arbitrary attributes into tags.

high : CVE--2023--24539

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.065%
EPSS Percentile20th percentile
Description

Angle brackets (<>) are not considered dangerous characters when inserted into CSS contexts. Templates containing multiple actions separated by a '/' character can result in unexpectedly closing the CSS context and allowing for injection of unexpected HTML, if executed with untrusted input.

critical: 1 high: 6 medium: 0 low: 0 stdlib 1.24.4 (golang)

pkg:golang/stdlib@1.24.4

critical : CVE--2025--68121

Affected range<1.24.13
Fixed version1.24.13
EPSS Score0.009%
EPSS Percentile1st percentile
Description

During session resumption in crypto/tls, if the underlying Config has its ClientCAs or RootCAs fields mutated between the initial handshake and the resumed handshake, the resumed handshake may succeed when it should have failed. This may happen when a user calls Config.Clone and mutates the returned Config, or uses Config.GetConfigForClient. This can cause a client to resume a session with a server that it would not have resumed with during the initial handshake, or cause a server to resume a session with a client that it would not have resumed with during the initial handshake.

high : CVE--2025--61729

Affected range<1.24.11
Fixed version1.24.11
EPSS Score0.017%
EPSS Percentile4th 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--61726

Affected range<1.24.12
Fixed version1.24.12
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The net/url package does not set a limit on the number of query parameters in a query.

While the maximum size of query parameters in URLs is generally limited by the maximum request header size, the net/http.Request.ParseForm method can parse large URL-encoded forms. Parsing a large form containing many unique query parameters can cause excessive memory consumption.

high : CVE--2025--61725

Affected range<1.24.8
Fixed version1.24.8
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The ParseAddress function constructs 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.24.8
Fixed version1.24.8
EPSS Score0.040%
EPSS Percentile12th 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.24.8
Fixed version1.24.8
EPSS Score0.019%
EPSS Percentile5th 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.24.9
Fixed version1.24.9
EPSS Score0.019%
EPSS Percentile5th 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: 3 medium: 0 low: 0 urllib3 2.0.7 (pypi)

pkg:pypi/urllib3@2.0.7

high 8.9: CVE--2026--21441 Improper Handling of Highly Compressed Data (Data Amplification)

Affected range>=1.22
<2.6.3
Fixed version2.6.3
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.026%
EPSS Percentile7th percentile
Description

Impact

urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once.

urllib3 can perform decoding or decompression based on the HTTP Content-Encoding header (e.g., gzip, deflate, br, or zstd). When using the streaming API, the library decompresses only the necessary bytes, enabling partial content consumption.

However, for HTTP redirect responses, the library would read the entire response body to drain the connection and decompress the content unnecessarily. This decompression occurred even before any read methods were called, and configured read limits did not restrict the amount of decompressed data. As a result, there was no safeguard against decompression bombs. A malicious server could exploit this to trigger excessive resource consumption on the client (high CPU usage and large memory allocations for decompressed data; CWE-409).

Affected usages

Applications and libraries using urllib3 version 2.6.2 and earlier to stream content from untrusted sources by setting preload_content=False when they do not disable redirects.

Remediation

Upgrade to at least urllib3 v2.6.3 in which the library does not decode content of redirect responses when preload_content=False.

If upgrading is not immediately possible, disable redirects by setting redirect=False for requests to untrusted source.

high 8.9: CVE--2025--66471 Improper Handling of Highly Compressed Data (Data Amplification)

Affected range>=1.0
<2.6.0
Fixed version2.6.0
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.027%
EPSS Percentile7th percentile
Description

Impact

urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once.

When streaming a compressed response, urllib3 can perform decoding or decompression based on the HTTP Content-Encoding header (e.g., gzip, deflate, br, or zstd). The library must read compressed data from the network and decompress it until the requested chunk size is met. Any resulting decompressed data that exceeds the requested amount is held in an internal buffer for the next read operation.

The decompression logic could cause urllib3 to fully decode a small amount of highly compressed data in a single operation. This can result in excessive resource consumption (high CPU usage and massive memory allocation for the decompressed data; CWE-409) on the client side, even if the application only requested a small chunk of data.

Affected usages

Applications and libraries using urllib3 version 2.5.0 and earlier to stream large compressed responses or content from untrusted sources.

stream(), read(amt=256), read1(amt=256), read_chunked(amt=256), readinto(b) are examples of urllib3.HTTPResponse method calls using the affected logic unless decoding is disabled explicitly.

Remediation

Upgrade to at least urllib3 v2.6.0 in which the library avoids decompressing data that exceeds the requested amount.

If your environment contains a package facilitating the Brotli encoding, upgrade to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 too. These versions are enforced by the urllib3[brotli] extra in the patched versions of urllib3.

Credits

The issue was reported by @Cycloctane.
Supplemental information was provided by @stamparm during a security audit performed by 7ASecurity and facilitated by OSTIF.

high 8.9: CVE--2025--66418 Allocation of Resources Without Limits or Throttling

Affected range>=1.24
<2.6.0
Fixed version2.6.0
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.029%
EPSS Percentile8th percentile
Description

Impact

urllib3 supports chained HTTP encoding algorithms for response content according to RFC 9110 (e.g., Content-Encoding: gzip, zstd).

However, the number of links in the decompression chain was unbounded allowing a malicious server to insert a virtually unlimited number of compression steps leading to high CPU usage and massive memory allocation for the decompressed data.

Affected usages

Applications and libraries using urllib3 version 2.5.0 and earlier for HTTP requests to untrusted sources unless they disable content decoding explicitly.

Remediation

Upgrade to at least urllib3 v2.6.0 in which the library limits the number of links to 5.

If upgrading is not immediately possible, use preload_content=False and ensure that resp.headers["content-encoding"] contains a safe number of encodings before reading the response content.

critical: 0 high: 3 medium: 0 low: 0 cryptography 41.0.7 (pypi)

pkg:pypi/cryptography@41.0.7

high 8.7: CVE--2023--50782 Observable Discrepancy

Affected range<42.0.0
Fixed version42.0.0
CVSS Score8.7
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
EPSS Score1.147%
EPSS Percentile78th percentile
Description

A flaw was found in the python-cryptography package. This issue may allow a remote attacker to decrypt captured messages in TLS servers that use RSA key exchanges, which may lead to exposure of confidential or sensitive data.

high 8.2: CVE--2026--26007 Insufficient Verification of Data Authenticity

Affected range<=46.0.4
Fixed version46.0.5
CVSS Score8.2
CVSS VectorCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score0.007%
EPSS Percentile0th percentile
Description

Vulnerability Summary

The public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve.

This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup.

Only SECT curves are impacted by this.

Credit

This vulnerability was discovered by:

  • XlabAI Team of Tencent Xuanwu Lab
  • Atuin Automated Vulnerability Discovery Engine

high 7.5: CVE--2024--26130 NULL Pointer Dereference

Affected range>=38.0.0
<42.0.4
Fixed version42.0.4
CVSS Score7.5
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score0.341%
EPSS Percentile56th percentile
Description

If pkcs12.serialize_key_and_certificates is called with both:

  1. A certificate whose public key did not match the provided private key
  2. An encryption_algorithm with hmac_hash set (via PrivateFormat.PKCS12.encryption_builder().hmac_hash(...)

Then a NULL pointer dereference would occur, crashing the Python process.

This has been resolved, and now a ValueError is properly raised.

Patched in pyca/cryptography#10423

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

pkg:golang/golang.org/x/crypto@0.36.0

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.033%
EPSS Percentile9th 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

github-actions Bot commented Mar 5, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image ghcr.io/dependabot/dependabot-updater-core:latest

Base image is ubuntu:24.04

Name24.04
Digestsha256:98ff7968124952e719a8a69bb3cccdd217f5fe758108ac4f21ad22e1df44d237
Vulnerabilitiescritical: 0 high: 0 medium: 4 low: 5
Pushed3 weeks ago
Size30 MB
Packages131
OS24.04
The base image is also available under the supported tag(s): latest, noble

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
26.04
Major OS version update
Also known as:
  • devel
  • resolute
  • resolute-20260108
Benefits:
  • Image contains 9 fewer packages
  • Image has similar size
  • Image introduces no new vulnerability but removes 9
  • Major OS version update
Image details:
  • Size: 34 MB
  • OS: 26.04
1 month ago



25.10
Major OS version update
Also known as:
  • rolling
  • questing
  • questing-20251217
Benefits:
  • Image contains 7 fewer packages
  • Image has similar size
  • Image introduces no new vulnerability but removes 9
  • Major OS version update
Image details:
  • Size: 34 MB
  • OS: 25.10
2 months ago



@github-actions

github-actions Bot commented Mar 5, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of ghcr.io/dependabot/dependabot-updater-core:latest

📦 Image Reference ghcr.io/dependabot/dependabot-updater-core:latest
digestsha256:6a9a13044b52a7bf0dae95205f854c561478bd1cd2f3de8d59133e4ed6a4d8b5
vulnerabilitiescritical: 6 high: 51 medium: 0 low: 0
platformlinux/amd64
size347 MB
packages601
📦 Base Image ubuntu:24.04
also known as
  • latest
  • noble
digestsha256:98ff7968124952e719a8a69bb3cccdd217f5fe758108ac4f21ad22e1df44d237
vulnerabilitiescritical: 0 high: 0 medium: 4 low: 5
critical: 5 high: 38 medium: 0 low: 0 stdlib 1.18.3 (golang)

pkg:golang/stdlib@1.18.3

critical : CVE--2025--68121

Affected range<1.24.13
Fixed version1.24.13
EPSS Score0.009%
EPSS Percentile1st percentile
Description

During session resumption in crypto/tls, if the underlying Config has its ClientCAs or RootCAs fields mutated between the initial handshake and the resumed handshake, the resumed handshake may succeed when it should have failed. This may happen when a user calls Config.Clone and mutates the returned Config, or uses Config.GetConfigForClient. This can cause a client to resume a session with a server that it would not have resumed with during the initial handshake, or cause a server to resume a session with a client that it would not have resumed with during the initial handshake.

critical : CVE--2024--24790

Affected range<1.21.11
Fixed version1.21.11
EPSS Score0.082%
EPSS Percentile24th percentile
Description

The various Is methods (IsPrivate, IsLoopback, etc) did not work as expected for IPv4-mapped IPv6 addresses, returning false for addresses which would return true in their traditional IPv4 forms.

critical : CVE--2023--24540

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.243%
EPSS Percentile47th percentile
Description

Not all valid JavaScript whitespace characters are considered to be whitespace. Templates containing whitespace characters outside of the character set "\t\n\f\r\u0020\u2028\u2029" in JavaScript contexts that also contain actions may not be properly sanitized during execution.

critical : CVE--2023--24538

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.646%
EPSS Percentile70th percentile
Description

Templates do not properly consider backticks (`) as Javascript string delimiters, and do not escape them as expected.

Backticks are used, since ES6, for JS template literals. If a template contains a Go template action within a Javascript template literal, the contents of the action can be used to terminate the literal, injecting arbitrary Javascript code into the Go template.

As ES6 template literals are rather complex, and themselves can do string interpolation, the decision was made to simply disallow Go template actions from being used inside of them (e.g. "var a = {{.}}"), since there is no obviously safe way to allow this behavior. This takes the same approach as github.com/google/safehtml.

With fix, Template.Parse returns an Error when it encounters templates like this, with an ErrorCode of value 12. This ErrorCode is currently unexported, but will be exported in the release of Go 1.21.

Users who rely on the previous behavior can re-enable it using the GODEBUG flag jstmpllitinterp=1, with the caveat that backticks will now be escaped. This should be used with caution.

critical : CVE--2025--22871

Affected range<1.23.8
Fixed version1.23.8
EPSS Score0.117%
EPSS Percentile30th percentile
Description

The net/http package improperly accepts a bare LF as a line terminator in chunked data chunk-size lines. This can permit request smuggling if a net/http server is used in conjunction with a server that incorrectly accepts a bare LF as part of a chunk-ext.

high : CVE--2023--29403

Affected range<1.19.10
Fixed version1.19.10
EPSS Score0.009%
EPSS Percentile1st percentile
Description

On Unix platforms, the Go runtime does not behave differently when a binary is run with the setuid/setgid bits. This can be dangerous in certain cases, such as when dumping memory state, or assuming the status of standard i/o file descriptors.

If a setuid/setgid binary is executed with standard I/O file descriptors closed, opening any files can result in unexpected content being read or written with elevated privileges. Similarly, if a setuid/setgid program is terminated, either via panic or signal, it may leak the contents of its registers.

high : CVE--2025--61729

Affected range<1.24.11
Fixed version1.24.11
EPSS Score0.017%
EPSS Percentile4th 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--61726

Affected range<1.24.12
Fixed version1.24.12
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The net/url package does not set a limit on the number of query parameters in a query.

While the maximum size of query parameters in URLs is generally limited by the maximum request header size, the net/http.Request.ParseForm method can parse large URL-encoded forms. Parsing a large form containing many unique query parameters can cause excessive memory consumption.

high : CVE--2025--61725

Affected range<1.24.8
Fixed version1.24.8
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The ParseAddress function constructs 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.24.8
Fixed version1.24.8
EPSS Score0.040%
EPSS Percentile12th 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.24.8
Fixed version1.24.8
EPSS Score0.019%
EPSS Percentile5th 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.24.9
Fixed version1.24.9
EPSS Score0.019%
EPSS Percentile5th 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.

high : CVE--2024--34158

Affected range<1.22.7
Fixed version1.22.7
EPSS Score0.163%
EPSS Percentile37th percentile
Description

Calling Parse on a "// +build" build tag line with deeply nested expressions can cause a panic due to stack exhaustion.

high : CVE--2024--34156

Affected range<1.22.7
Fixed version1.22.7
EPSS Score0.298%
EPSS Percentile53rd percentile
Description

Calling Decoder.Decode on a message which contains deeply nested structures can cause a panic due to stack exhaustion. This is a follow-up to CVE-2022-30635.

high : CVE--2024--24791

Affected range<1.21.12
Fixed version1.21.12
EPSS Score0.618%
EPSS Percentile70th percentile
Description

The net/http HTTP/1.1 client mishandled the case where a server responds to a request with an "Expect: 100-continue" header with a non-informational (200 or higher) status. This mishandling could leave a client connection in an invalid state, where the next request sent on the connection will fail.

An attacker sending a request to a net/http/httputil.ReverseProxy proxy can exploit this mishandling to cause a denial of service by sending "Expect: 100-continue" requests which elicit a non-informational response from the backend. Each such request leaves the proxy with an invalid connection, and causes one subsequent request using that connection to fail.

high : CVE--2024--24784

Affected range<1.21.8
Fixed version1.21.8
EPSS Score1.498%
EPSS Percentile81st percentile
Description

The ParseAddressList function incorrectly handles comments (text within parentheses) within display names. Since this is a misalignment with conforming address parsers, it can result in different trust decisions being made by programs using different parsers.

high : CVE--2023--45288

Affected range<1.21.9
Fixed version1.21.9
EPSS Score71.463%
EPSS Percentile99th percentile
Description

An attacker may cause an HTTP/2 endpoint to read arbitrary amounts of header data by sending an excessive number of CONTINUATION frames.

Maintaining HPACK state requires parsing and processing all HEADERS and CONTINUATION frames on a connection. When a request's headers exceed MaxHeaderBytes, no memory is allocated to store the excess headers, but they are still parsed.

This permits an attacker to cause an HTTP/2 endpoint to read arbitrary amounts of header data, all associated with a request which is going to be rejected. These headers can include Huffman-encoded data which is significantly more expensive for the receiver to decode than for an attacker to send.

The fix sets a limit on the amount of excess header frames we will process before closing a connection.

high : CVE--2023--45287

Affected range<1.20.0
Fixed version1.20.0
EPSS Score0.185%
EPSS Percentile40th percentile
Description

Before Go 1.20, the RSA based TLS key exchanges used the math/big library, which is not constant time. RSA blinding was applied to prevent timing attacks, but analysis shows this may not have been fully effective. In particular it appears as if the removal of PKCS#1 padding may leak timing information, which in turn could be used to recover session key bits.

In Go 1.20, the crypto/tls library switched to a fully constant time RSA implementation, which we do not believe exhibits any timing side channels.

high : CVE--2023--45283

Affected range<1.20.11
Fixed version1.20.11
EPSS Score0.097%
EPSS Percentile27th percentile
Description

The filepath package does not recognize paths with a ??\ prefix as special.

On Windows, a path beginning with ??\ is a Root Local Device path equivalent to a path beginning with \?. Paths with a ??\ prefix may be used to access arbitrary locations on the system. For example, the path ??\c:\x is equivalent to the more common path c:\x.

Before fix, Clean could convert a rooted path such as \a..??\b into the root local device path ??\b. Clean will now convert this to .??\b.

Similarly, Join(, ??, b) could convert a seemingly innocent sequence of path elements into the root local device path ??\b. Join will now convert this to .??\b.

In addition, with fix, IsAbs now correctly reports paths beginning with ??\ as absolute, and VolumeName correctly reports the ??\ prefix as a volume name.

UPDATE: Go 1.20.11 and Go 1.21.4 inadvertently changed the definition of the volume name in Windows paths starting with ?, resulting in filepath.Clean(?\c:) returning ?\c: rather than ?\c:\ (among other effects). The previous behavior has been restored.

high : CVE--2023--44487

Affected range<1.20.10
Fixed version1.20.10
EPSS Score94.399%
EPSS Percentile100th percentile
Description

A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. While the total number of requests is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an in-progress request allows the attacker to create a new request while the existing one is still executing.

With the fix applied, HTTP/2 servers now bound the number of simultaneously executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams). New requests arriving when at the limit (which can only happen after the client has reset an existing, in-flight request) will be queued until a handler exits. If the request queue grows too large, the server will terminate the connection.

This issue is also fixed in golang.org/x/net/http2 for users manually configuring HTTP/2.

The default stream concurrency limit is 250 streams (requests) per HTTP/2 connection. This value may be adjusted using the golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams setting and the ConfigureServer function.

high : CVE--2023--39325

Affected range<1.20.10
Fixed version1.20.10
EPSS Score0.150%
EPSS Percentile35th percentile
Description

A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. While the total number of requests is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an in-progress request allows the attacker to create a new request while the existing one is still executing.

With the fix applied, HTTP/2 servers now bound the number of simultaneously executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams). New requests arriving when at the limit (which can only happen after the client has reset an existing, in-flight request) will be queued until a handler exits. If the request queue grows too large, the server will terminate the connection.

This issue is also fixed in golang.org/x/net/http2 for users manually configuring HTTP/2.

The default stream concurrency limit is 250 streams (requests) per HTTP/2 connection. This value may be adjusted using the golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams setting and the ConfigureServer function.

high : CVE--2023--24537

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.013%
EPSS Percentile2nd percentile
Description

Calling any of the Parse functions on Go source code which contains //line directives with very large line numbers can cause an infinite loop due to integer overflow.

high : CVE--2023--24536

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.070%
EPSS Percentile21st percentile
Description

Multipart form parsing can consume large amounts of CPU and memory when processing form inputs containing very large numbers of parts.

This stems from several causes:

  1. mime/multipart.Reader.ReadForm limits the total memory a parsed multipart form can consume. ReadForm can undercount the amount of memory consumed, leading it to accept larger inputs than intended.
  2. Limiting total memory does not account for increased pressure on the garbage collector from large numbers of small allocations in forms with many parts.
  3. ReadForm can allocate a large number of short-lived buffers, further increasing pressure on the garbage collector.

The combination of these factors can permit an attacker to cause an program that parses multipart forms to consume large amounts of CPU and memory, potentially resulting in a denial of service. This affects programs that use mime/multipart.Reader.ReadForm, as well as form parsing in the net/http package with the Request methods FormFile, FormValue, ParseMultipartForm, and PostFormValue.

With fix, ReadForm now does a better job of estimating the memory consumption of parsed forms, and performs many fewer short-lived allocations.

In addition, the fixed mime/multipart.Reader imposes the following limits on the size of parsed forms:

  1. Forms parsed with ReadForm may contain no more than 1000 parts. This limit may be adjusted with the environment variable GODEBUG=multipartmaxparts=.
  2. Form parts parsed with NextPart and NextRawPart may contain no more than 10,000 header fields. In addition, forms parsed with ReadForm may contain no more than 10,000 header fields across all parts. This limit may be adjusted with the environment variable GODEBUG=multipartmaxheaders=.

high : CVE--2023--24534

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.048%
EPSS Percentile15th percentile
Description

HTTP and MIME header parsing can allocate large amounts of memory, even when parsing small inputs, potentially leading to a denial of service.

Certain unusual patterns of input data can cause the common function used to parse HTTP and MIME headers to allocate substantially more memory than required to hold the parsed headers. An attacker can exploit this behavior to cause an HTTP server to allocate large amounts of memory from a small request, potentially leading to memory exhaustion and a denial of service.

With fix, header parsing now correctly allocates only the memory required to hold parsed headers.

high : CVE--2022--41725

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.048%
EPSS Percentile15th percentile
Description

A denial of service is possible from excessive resource consumption in net/http and mime/multipart.

Multipart form parsing with mime/multipart.Reader.ReadForm can consume largely unlimited amounts of memory and disk files. This also affects form parsing in the net/http package with the Request methods FormFile, FormValue, ParseMultipartForm, and PostFormValue.

ReadForm takes a maxMemory parameter, and is documented as storing "up to maxMemory bytes +10MB (reserved for non-file parts) in memory". File parts which cannot be stored in memory are stored on disk in temporary files. The unconfigurable 10MB reserved for non-file parts is excessively large and can potentially open a denial of service vector on its own. However, ReadForm did not properly account for all memory consumed by a parsed form, such as map entry overhead, part names, and MIME headers, permitting a maliciously crafted form to consume well over 10MB. In addition, ReadForm contained no limit on the number of disk files created, permitting a relatively small request body to create a large number of disk temporary files.

With fix, ReadForm now properly accounts for various forms of memory overhead, and should now stay within its documented limit of 10MB + maxMemory bytes of memory consumption. Users should still be aware that this limit is high and may still be hazardous.

In addition, ReadForm now creates at most one on-disk temporary file, combining multiple form parts into a single temporary file. The mime/multipart.File interface type's documentation states, "If stored on disk, the File's underlying concrete type will be an *os.File.". This is no longer the case when a form contains more than one file part, due to this coalescing of parts into a single file. The previous behavior of using distinct files for each form part may be reenabled with the environment variable GODEBUG=multipartfiles=distinct.

Users should be aware that multipart.ReadForm and the http.Request methods that call it do not limit the amount of disk consumed by temporary files. Callers can limit the size of form data with http.MaxBytesReader.

high : CVE--2022--41724

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.015%
EPSS Percentile3rd percentile
Description

Large handshake records may cause panics in crypto/tls.

Both clients and servers may send large TLS handshake records which cause servers and clients, respectively, to panic when attempting to construct responses.

This affects all TLS 1.3 clients, TLS 1.2 clients which explicitly enable session resumption (by setting Config.ClientSessionCache to a non-nil value), and TLS 1.3 servers which request client certificates (by setting Config.ClientAuth >= RequestClientCert).

high : CVE--2022--41723

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.195%
EPSS Percentile41st percentile
Description

A maliciously crafted HTTP/2 stream could cause excessive CPU consumption in the HPACK decoder, sufficient to cause a denial of service from a small number of small requests.

high : CVE--2022--41722

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.175%
EPSS Percentile39th percentile
Description

A path traversal vulnerability exists in filepath.Clean on Windows.

On Windows, the filepath.Clean function could transform an invalid path such as "a/../c:/b" into the valid path "c:\b". This transformation of a relative (if invalid) path into an absolute path could enable a directory traversal attack.

After fix, the filepath.Clean function transforms this path into the relative (but still invalid) path ".\c:\b".

high : CVE--2022--41720

Affected range<1.18.9
Fixed version1.18.9
EPSS Score0.035%
EPSS Percentile10th percentile
Description

On Windows, restricted files can be accessed via os.DirFS and http.Dir.

The os.DirFS function and http.Dir type provide access to a tree of files rooted at a given directory. These functions permit access to Windows device files under that root. For example, os.DirFS("C:/tmp").Open("COM1") opens the COM1 device. Both os.DirFS and http.Dir only provide read-only filesystem access.

In addition, on Windows, an os.DirFS for the directory (the root of the current drive) can permit a maliciously crafted path to escape from the drive and access any path on the system.

With fix applied, the behavior of os.DirFS("") has changed. Previously, an empty root was treated equivalently to "/", so os.DirFS("").Open("tmp") would open the path "/tmp". This now returns an error.

high : CVE--2022--41716

Affected range<1.18.8
Fixed version1.18.8
EPSS Score0.013%
EPSS Percentile2nd percentile
Description

Due to unsanitized NUL values, attackers may be able to maliciously set environment variables on Windows.

In syscall.StartProcess and os/exec.Cmd, invalid environment variable values containing NUL values are not properly checked for. A malicious environment variable value can exploit this behavior to set a value for a different environment variable. For example, the environment variable string "A=B\x00C=D" sets the variables "A=B" and "C=D".

high : CVE--2022--41715

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.016%
EPSS Percentile4th percentile
Description

Programs which compile regular expressions from untrusted sources may be vulnerable to memory exhaustion or denial of service.

The parsed regexp representation is linear in the size of the input, but in some cases the constant factor can be as high as 40,000, making relatively small regexps consume much larger amounts of memory.

After fix, each regexp being parsed is limited to a 256 MB memory footprint. Regular expressions whose representation would use more space than that are rejected. Normal use of regular expressions is unaffected.

high : CVE--2022--32189

Affected range>=1.18.0-0
<1.18.5
Fixed version1.18.5
EPSS Score0.113%
EPSS Percentile30th percentile
Description

Decoding big.Float and big.Rat types can panic if the encoded message is too short, potentially allowing a denial of service.

high : CVE--2022--30635

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Calling Decoder.Decode on a message which contains deeply nested structures can cause a panic due to stack exhaustion.

high : CVE--2022--30633

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Unmarshaling an XML document into a Go struct which has a nested field that uses the 'any' field tag can panic due to stack exhaustion.

high : CVE--2022--30632

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Calling Glob on a path which contains a large number of path separators can cause a panic due to stack exhaustion.

high : CVE--2022--30631

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.042%
EPSS Percentile13th percentile
Description

Calling Reader.Read on an archive containing a large number of concatenated 0-length compressed files can cause a panic due to stack exhaustion.

high : CVE--2022--30630

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.038%
EPSS Percentile11th percentile
Description

Calling Glob on a path which contains a large number of path separators can cause a panic due to stack exhaustion.

high : CVE--2022--2880

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.032%
EPSS Percentile9th percentile
Description

Requests forwarded by ReverseProxy include the raw query parameters from the inbound request, including unparsable parameters rejected by net/http. This could permit query parameter smuggling when a Go proxy forwards a parameter with an unparsable value.

After fix, ReverseProxy sanitizes the query parameters in the forwarded query when the outbound request's Form field is set after the ReverseProxy. Director function returns, indicating that the proxy has parsed the query parameters. Proxies which do not parse query parameters continue to forward the original query parameters unchanged.

high : CVE--2022--2879

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

Reader.Read does not set a limit on the maximum size of file headers. A maliciously crafted archive could cause Read to allocate unbounded amounts of memory, potentially causing resource exhaustion or panics. After fix, Reader.Read limits the maximum size of header blocks to 1 MiB.

high : CVE--2022--28131

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.015%
EPSS Percentile3rd percentile
Description

Calling Decoder.Skip when parsing a deeply nested XML document can cause a panic due to stack exhaustion.

high : CVE--2022--27664

Affected range<1.18.6
Fixed version1.18.6
EPSS Score0.101%
EPSS Percentile28th percentile
Description

HTTP/2 server connections can hang forever waiting for a clean shutdown that was preempted by a fatal error. This condition can be exploited by a malicious client to cause a denial of service.

high : CVE--2023--29400

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.048%
EPSS Percentile15th percentile
Description

Templates containing actions in unquoted HTML attributes (e.g. "attr={{.}}") executed with empty input can result in output with unexpected results when parsed due to HTML normalization rules. This may allow injection of arbitrary attributes into tags.

high : CVE--2023--24539

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.065%
EPSS Percentile20th percentile
Description

Angle brackets (<>) are not considered dangerous characters when inserted into CSS contexts. Templates containing multiple actions separated by a '/' character can result in unexpectedly closing the CSS context and allowing for injection of unexpected HTML, if executed with untrusted input.

critical: 1 high: 6 medium: 0 low: 0 stdlib 1.24.4 (golang)

pkg:golang/stdlib@1.24.4

critical : CVE--2025--68121

Affected range<1.24.13
Fixed version1.24.13
EPSS Score0.009%
EPSS Percentile1st percentile
Description

During session resumption in crypto/tls, if the underlying Config has its ClientCAs or RootCAs fields mutated between the initial handshake and the resumed handshake, the resumed handshake may succeed when it should have failed. This may happen when a user calls Config.Clone and mutates the returned Config, or uses Config.GetConfigForClient. This can cause a client to resume a session with a server that it would not have resumed with during the initial handshake, or cause a server to resume a session with a client that it would not have resumed with during the initial handshake.

high : CVE--2025--61729

Affected range<1.24.11
Fixed version1.24.11
EPSS Score0.017%
EPSS Percentile4th 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--61726

Affected range<1.24.12
Fixed version1.24.12
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The net/url package does not set a limit on the number of query parameters in a query.

While the maximum size of query parameters in URLs is generally limited by the maximum request header size, the net/http.Request.ParseForm method can parse large URL-encoded forms. Parsing a large form containing many unique query parameters can cause excessive memory consumption.

high : CVE--2025--61725

Affected range<1.24.8
Fixed version1.24.8
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The ParseAddress function constructs 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.24.8
Fixed version1.24.8
EPSS Score0.040%
EPSS Percentile12th 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.24.8
Fixed version1.24.8
EPSS Score0.019%
EPSS Percentile5th 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.24.9
Fixed version1.24.9
EPSS Score0.019%
EPSS Percentile5th 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: 3 medium: 0 low: 0 cryptography 41.0.7 (pypi)

pkg:pypi/cryptography@41.0.7

high 8.7: CVE--2023--50782 Observable Discrepancy

Affected range<42.0.0
Fixed version42.0.0
CVSS Score8.7
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
EPSS Score1.147%
EPSS Percentile78th percentile
Description

A flaw was found in the python-cryptography package. This issue may allow a remote attacker to decrypt captured messages in TLS servers that use RSA key exchanges, which may lead to exposure of confidential or sensitive data.

high 8.2: CVE--2026--26007 Insufficient Verification of Data Authenticity

Affected range<=46.0.4
Fixed version46.0.5
CVSS Score8.2
CVSS VectorCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score0.007%
EPSS Percentile0th percentile
Description

Vulnerability Summary

The public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve.

This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup.

Only SECT curves are impacted by this.

Credit

This vulnerability was discovered by:

  • XlabAI Team of Tencent Xuanwu Lab
  • Atuin Automated Vulnerability Discovery Engine

high 7.5: CVE--2024--26130 NULL Pointer Dereference

Affected range>=38.0.0
<42.0.4
Fixed version42.0.4
CVSS Score7.5
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score0.341%
EPSS Percentile56th percentile
Description

If pkcs12.serialize_key_and_certificates is called with both:

  1. A certificate whose public key did not match the provided private key
  2. An encryption_algorithm with hmac_hash set (via PrivateFormat.PKCS12.encryption_builder().hmac_hash(...)

Then a NULL pointer dereference would occur, crashing the Python process.

This has been resolved, and now a ValueError is properly raised.

Patched in pyca/cryptography#10423

critical: 0 high: 3 medium: 0 low: 0 urllib3 2.0.7 (pypi)

pkg:pypi/urllib3@2.0.7

high 8.9: CVE--2026--21441 Improper Handling of Highly Compressed Data (Data Amplification)

Affected range>=1.22
<2.6.3
Fixed version2.6.3
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.026%
EPSS Percentile7th percentile
Description

Impact

urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once.

urllib3 can perform decoding or decompression based on the HTTP Content-Encoding header (e.g., gzip, deflate, br, or zstd). When using the streaming API, the library decompresses only the necessary bytes, enabling partial content consumption.

However, for HTTP redirect responses, the library would read the entire response body to drain the connection and decompress the content unnecessarily. This decompression occurred even before any read methods were called, and configured read limits did not restrict the amount of decompressed data. As a result, there was no safeguard against decompression bombs. A malicious server could exploit this to trigger excessive resource consumption on the client (high CPU usage and large memory allocations for decompressed data; CWE-409).

Affected usages

Applications and libraries using urllib3 version 2.6.2 and earlier to stream content from untrusted sources by setting preload_content=False when they do not disable redirects.

Remediation

Upgrade to at least urllib3 v2.6.3 in which the library does not decode content of redirect responses when preload_content=False.

If upgrading is not immediately possible, disable redirects by setting redirect=False for requests to untrusted source.

high 8.9: CVE--2025--66471 Improper Handling of Highly Compressed Data (Data Amplification)

Affected range>=1.0
<2.6.0
Fixed version2.6.0
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.027%
EPSS Percentile7th percentile
Description

Impact

urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once.

When streaming a compressed response, urllib3 can perform decoding or decompression based on the HTTP Content-Encoding header (e.g., gzip, deflate, br, or zstd). The library must read compressed data from the network and decompress it until the requested chunk size is met. Any resulting decompressed data that exceeds the requested amount is held in an internal buffer for the next read operation.

The decompression logic could cause urllib3 to fully decode a small amount of highly compressed data in a single operation. This can result in excessive resource consumption (high CPU usage and massive memory allocation for the decompressed data; CWE-409) on the client side, even if the application only requested a small chunk of data.

Affected usages

Applications and libraries using urllib3 version 2.5.0 and earlier to stream large compressed responses or content from untrusted sources.

stream(), read(amt=256), read1(amt=256), read_chunked(amt=256), readinto(b) are examples of urllib3.HTTPResponse method calls using the affected logic unless decoding is disabled explicitly.

Remediation

Upgrade to at least urllib3 v2.6.0 in which the library avoids decompressing data that exceeds the requested amount.

If your environment contains a package facilitating the Brotli encoding, upgrade to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 too. These versions are enforced by the urllib3[brotli] extra in the patched versions of urllib3.

Credits

The issue was reported by @Cycloctane.
Supplemental information was provided by @stamparm during a security audit performed by 7ASecurity and facilitated by OSTIF.

high 8.9: CVE--2025--66418 Allocation of Resources Without Limits or Throttling

Affected range>=1.24
<2.6.0
Fixed version2.6.0
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.029%
EPSS Percentile8th percentile
Description

Impact

urllib3 supports chained HTTP encoding algorithms for response content according to RFC 9110 (e.g., Content-Encoding: gzip, zstd).

However, the number of links in the decompression chain was unbounded allowing a malicious server to insert a virtually unlimited number of compression steps leading to high CPU usage and massive memory allocation for the decompressed data.

Affected usages

Applications and libraries using urllib3 version 2.5.0 and earlier for HTTP requests to untrusted sources unless they disable content decoding explicitly.

Remediation

Upgrade to at least urllib3 v2.6.0 in which the library limits the number of links to 5.

If upgrading is not immediately possible, use preload_content=False and ensure that resp.headers["content-encoding"] contains a safe number of encodings before reading the response content.

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

pkg:golang/golang.org/x/crypto@0.36.0

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.033%
EPSS Percentile9th 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

github-actions Bot commented Mar 5, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image ghcr.io/dependabot/dependabot-updater-core:latest

Base image is ubuntu:24.04

Name24.04
Digestsha256:98ff7968124952e719a8a69bb3cccdd217f5fe758108ac4f21ad22e1df44d237
Vulnerabilitiescritical: 0 high: 0 medium: 4 low: 5
Pushed3 weeks ago
Size30 MB
Packages131
OS24.04
The base image is also available under the supported tag(s): latest, noble

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
26.04
Major OS version update
Also known as:
  • devel
  • resolute
  • resolute-20260108
Benefits:
  • Image contains 9 fewer packages
  • Image has similar size
  • Image introduces no new vulnerability but removes 9
  • Major OS version update
Image details:
  • Size: 34 MB
  • OS: 26.04
1 month ago



25.10
Major OS version update
Also known as:
  • rolling
  • questing
  • questing-20251217
Benefits:
  • Image contains 7 fewer packages
  • Image has similar size
  • Image introduces no new vulnerability but removes 9
  • Major OS version update
Image details:
  • Size: 34 MB
  • OS: 25.10
2 months ago



@github-actions

github-actions Bot commented Mar 5, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of ghcr.io/dependabot/dependabot-updater-core:latest

📦 Image Reference ghcr.io/dependabot/dependabot-updater-core:latest
digestsha256:6a9a13044b52a7bf0dae95205f854c561478bd1cd2f3de8d59133e4ed6a4d8b5
vulnerabilitiescritical: 6 high: 51 medium: 0 low: 0
platformlinux/amd64
size347 MB
packages601
📦 Base Image ubuntu:24.04
also known as
  • latest
  • noble
digestsha256:98ff7968124952e719a8a69bb3cccdd217f5fe758108ac4f21ad22e1df44d237
vulnerabilitiescritical: 0 high: 0 medium: 4 low: 5
critical: 5 high: 38 medium: 0 low: 0 stdlib 1.18.3 (golang)

pkg:golang/stdlib@1.18.3

critical : CVE--2025--68121

Affected range<1.24.13
Fixed version1.24.13
EPSS Score0.009%
EPSS Percentile1st percentile
Description

During session resumption in crypto/tls, if the underlying Config has its ClientCAs or RootCAs fields mutated between the initial handshake and the resumed handshake, the resumed handshake may succeed when it should have failed. This may happen when a user calls Config.Clone and mutates the returned Config, or uses Config.GetConfigForClient. This can cause a client to resume a session with a server that it would not have resumed with during the initial handshake, or cause a server to resume a session with a client that it would not have resumed with during the initial handshake.

critical : CVE--2024--24790

Affected range<1.21.11
Fixed version1.21.11
EPSS Score0.082%
EPSS Percentile24th percentile
Description

The various Is methods (IsPrivate, IsLoopback, etc) did not work as expected for IPv4-mapped IPv6 addresses, returning false for addresses which would return true in their traditional IPv4 forms.

critical : CVE--2023--24540

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.243%
EPSS Percentile47th percentile
Description

Not all valid JavaScript whitespace characters are considered to be whitespace. Templates containing whitespace characters outside of the character set "\t\n\f\r\u0020\u2028\u2029" in JavaScript contexts that also contain actions may not be properly sanitized during execution.

critical : CVE--2023--24538

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.646%
EPSS Percentile70th percentile
Description

Templates do not properly consider backticks (`) as Javascript string delimiters, and do not escape them as expected.

Backticks are used, since ES6, for JS template literals. If a template contains a Go template action within a Javascript template literal, the contents of the action can be used to terminate the literal, injecting arbitrary Javascript code into the Go template.

As ES6 template literals are rather complex, and themselves can do string interpolation, the decision was made to simply disallow Go template actions from being used inside of them (e.g. "var a = {{.}}"), since there is no obviously safe way to allow this behavior. This takes the same approach as github.com/google/safehtml.

With fix, Template.Parse returns an Error when it encounters templates like this, with an ErrorCode of value 12. This ErrorCode is currently unexported, but will be exported in the release of Go 1.21.

Users who rely on the previous behavior can re-enable it using the GODEBUG flag jstmpllitinterp=1, with the caveat that backticks will now be escaped. This should be used with caution.

critical : CVE--2025--22871

Affected range<1.23.8
Fixed version1.23.8
EPSS Score0.117%
EPSS Percentile30th percentile
Description

The net/http package improperly accepts a bare LF as a line terminator in chunked data chunk-size lines. This can permit request smuggling if a net/http server is used in conjunction with a server that incorrectly accepts a bare LF as part of a chunk-ext.

high : CVE--2023--29403

Affected range<1.19.10
Fixed version1.19.10
EPSS Score0.009%
EPSS Percentile1st percentile
Description

On Unix platforms, the Go runtime does not behave differently when a binary is run with the setuid/setgid bits. This can be dangerous in certain cases, such as when dumping memory state, or assuming the status of standard i/o file descriptors.

If a setuid/setgid binary is executed with standard I/O file descriptors closed, opening any files can result in unexpected content being read or written with elevated privileges. Similarly, if a setuid/setgid program is terminated, either via panic or signal, it may leak the contents of its registers.

high : CVE--2025--61729

Affected range<1.24.11
Fixed version1.24.11
EPSS Score0.017%
EPSS Percentile4th 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--61726

Affected range<1.24.12
Fixed version1.24.12
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The net/url package does not set a limit on the number of query parameters in a query.

While the maximum size of query parameters in URLs is generally limited by the maximum request header size, the net/http.Request.ParseForm method can parse large URL-encoded forms. Parsing a large form containing many unique query parameters can cause excessive memory consumption.

high : CVE--2025--61725

Affected range<1.24.8
Fixed version1.24.8
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The ParseAddress function constructs 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.24.8
Fixed version1.24.8
EPSS Score0.040%
EPSS Percentile12th 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.24.8
Fixed version1.24.8
EPSS Score0.019%
EPSS Percentile5th 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.24.9
Fixed version1.24.9
EPSS Score0.019%
EPSS Percentile5th 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.

high : CVE--2024--34158

Affected range<1.22.7
Fixed version1.22.7
EPSS Score0.163%
EPSS Percentile37th percentile
Description

Calling Parse on a "// +build" build tag line with deeply nested expressions can cause a panic due to stack exhaustion.

high : CVE--2024--34156

Affected range<1.22.7
Fixed version1.22.7
EPSS Score0.298%
EPSS Percentile53rd percentile
Description

Calling Decoder.Decode on a message which contains deeply nested structures can cause a panic due to stack exhaustion. This is a follow-up to CVE-2022-30635.

high : CVE--2024--24791

Affected range<1.21.12
Fixed version1.21.12
EPSS Score0.618%
EPSS Percentile70th percentile
Description

The net/http HTTP/1.1 client mishandled the case where a server responds to a request with an "Expect: 100-continue" header with a non-informational (200 or higher) status. This mishandling could leave a client connection in an invalid state, where the next request sent on the connection will fail.

An attacker sending a request to a net/http/httputil.ReverseProxy proxy can exploit this mishandling to cause a denial of service by sending "Expect: 100-continue" requests which elicit a non-informational response from the backend. Each such request leaves the proxy with an invalid connection, and causes one subsequent request using that connection to fail.

high : CVE--2024--24784

Affected range<1.21.8
Fixed version1.21.8
EPSS Score1.498%
EPSS Percentile81st percentile
Description

The ParseAddressList function incorrectly handles comments (text within parentheses) within display names. Since this is a misalignment with conforming address parsers, it can result in different trust decisions being made by programs using different parsers.

high : CVE--2023--45288

Affected range<1.21.9
Fixed version1.21.9
EPSS Score71.463%
EPSS Percentile99th percentile
Description

An attacker may cause an HTTP/2 endpoint to read arbitrary amounts of header data by sending an excessive number of CONTINUATION frames.

Maintaining HPACK state requires parsing and processing all HEADERS and CONTINUATION frames on a connection. When a request's headers exceed MaxHeaderBytes, no memory is allocated to store the excess headers, but they are still parsed.

This permits an attacker to cause an HTTP/2 endpoint to read arbitrary amounts of header data, all associated with a request which is going to be rejected. These headers can include Huffman-encoded data which is significantly more expensive for the receiver to decode than for an attacker to send.

The fix sets a limit on the amount of excess header frames we will process before closing a connection.

high : CVE--2023--45287

Affected range<1.20.0
Fixed version1.20.0
EPSS Score0.185%
EPSS Percentile40th percentile
Description

Before Go 1.20, the RSA based TLS key exchanges used the math/big library, which is not constant time. RSA blinding was applied to prevent timing attacks, but analysis shows this may not have been fully effective. In particular it appears as if the removal of PKCS#1 padding may leak timing information, which in turn could be used to recover session key bits.

In Go 1.20, the crypto/tls library switched to a fully constant time RSA implementation, which we do not believe exhibits any timing side channels.

high : CVE--2023--45283

Affected range<1.20.11
Fixed version1.20.11
EPSS Score0.097%
EPSS Percentile27th percentile
Description

The filepath package does not recognize paths with a ??\ prefix as special.

On Windows, a path beginning with ??\ is a Root Local Device path equivalent to a path beginning with \?. Paths with a ??\ prefix may be used to access arbitrary locations on the system. For example, the path ??\c:\x is equivalent to the more common path c:\x.

Before fix, Clean could convert a rooted path such as \a..??\b into the root local device path ??\b. Clean will now convert this to .??\b.

Similarly, Join(, ??, b) could convert a seemingly innocent sequence of path elements into the root local device path ??\b. Join will now convert this to .??\b.

In addition, with fix, IsAbs now correctly reports paths beginning with ??\ as absolute, and VolumeName correctly reports the ??\ prefix as a volume name.

UPDATE: Go 1.20.11 and Go 1.21.4 inadvertently changed the definition of the volume name in Windows paths starting with ?, resulting in filepath.Clean(?\c:) returning ?\c: rather than ?\c:\ (among other effects). The previous behavior has been restored.

high : CVE--2023--44487

Affected range<1.20.10
Fixed version1.20.10
EPSS Score94.399%
EPSS Percentile100th percentile
Description

A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. While the total number of requests is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an in-progress request allows the attacker to create a new request while the existing one is still executing.

With the fix applied, HTTP/2 servers now bound the number of simultaneously executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams). New requests arriving when at the limit (which can only happen after the client has reset an existing, in-flight request) will be queued until a handler exits. If the request queue grows too large, the server will terminate the connection.

This issue is also fixed in golang.org/x/net/http2 for users manually configuring HTTP/2.

The default stream concurrency limit is 250 streams (requests) per HTTP/2 connection. This value may be adjusted using the golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams setting and the ConfigureServer function.

high : CVE--2023--39325

Affected range<1.20.10
Fixed version1.20.10
EPSS Score0.150%
EPSS Percentile35th percentile
Description

A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. While the total number of requests is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an in-progress request allows the attacker to create a new request while the existing one is still executing.

With the fix applied, HTTP/2 servers now bound the number of simultaneously executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams). New requests arriving when at the limit (which can only happen after the client has reset an existing, in-flight request) will be queued until a handler exits. If the request queue grows too large, the server will terminate the connection.

This issue is also fixed in golang.org/x/net/http2 for users manually configuring HTTP/2.

The default stream concurrency limit is 250 streams (requests) per HTTP/2 connection. This value may be adjusted using the golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams setting and the ConfigureServer function.

high : CVE--2023--24537

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.013%
EPSS Percentile2nd percentile
Description

Calling any of the Parse functions on Go source code which contains //line directives with very large line numbers can cause an infinite loop due to integer overflow.

high : CVE--2023--24536

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.070%
EPSS Percentile21st percentile
Description

Multipart form parsing can consume large amounts of CPU and memory when processing form inputs containing very large numbers of parts.

This stems from several causes:

  1. mime/multipart.Reader.ReadForm limits the total memory a parsed multipart form can consume. ReadForm can undercount the amount of memory consumed, leading it to accept larger inputs than intended.
  2. Limiting total memory does not account for increased pressure on the garbage collector from large numbers of small allocations in forms with many parts.
  3. ReadForm can allocate a large number of short-lived buffers, further increasing pressure on the garbage collector.

The combination of these factors can permit an attacker to cause an program that parses multipart forms to consume large amounts of CPU and memory, potentially resulting in a denial of service. This affects programs that use mime/multipart.Reader.ReadForm, as well as form parsing in the net/http package with the Request methods FormFile, FormValue, ParseMultipartForm, and PostFormValue.

With fix, ReadForm now does a better job of estimating the memory consumption of parsed forms, and performs many fewer short-lived allocations.

In addition, the fixed mime/multipart.Reader imposes the following limits on the size of parsed forms:

  1. Forms parsed with ReadForm may contain no more than 1000 parts. This limit may be adjusted with the environment variable GODEBUG=multipartmaxparts=.
  2. Form parts parsed with NextPart and NextRawPart may contain no more than 10,000 header fields. In addition, forms parsed with ReadForm may contain no more than 10,000 header fields across all parts. This limit may be adjusted with the environment variable GODEBUG=multipartmaxheaders=.

high : CVE--2023--24534

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.048%
EPSS Percentile15th percentile
Description

HTTP and MIME header parsing can allocate large amounts of memory, even when parsing small inputs, potentially leading to a denial of service.

Certain unusual patterns of input data can cause the common function used to parse HTTP and MIME headers to allocate substantially more memory than required to hold the parsed headers. An attacker can exploit this behavior to cause an HTTP server to allocate large amounts of memory from a small request, potentially leading to memory exhaustion and a denial of service.

With fix, header parsing now correctly allocates only the memory required to hold parsed headers.

high : CVE--2022--41725

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.048%
EPSS Percentile15th percentile
Description

A denial of service is possible from excessive resource consumption in net/http and mime/multipart.

Multipart form parsing with mime/multipart.Reader.ReadForm can consume largely unlimited amounts of memory and disk files. This also affects form parsing in the net/http package with the Request methods FormFile, FormValue, ParseMultipartForm, and PostFormValue.

ReadForm takes a maxMemory parameter, and is documented as storing "up to maxMemory bytes +10MB (reserved for non-file parts) in memory". File parts which cannot be stored in memory are stored on disk in temporary files. The unconfigurable 10MB reserved for non-file parts is excessively large and can potentially open a denial of service vector on its own. However, ReadForm did not properly account for all memory consumed by a parsed form, such as map entry overhead, part names, and MIME headers, permitting a maliciously crafted form to consume well over 10MB. In addition, ReadForm contained no limit on the number of disk files created, permitting a relatively small request body to create a large number of disk temporary files.

With fix, ReadForm now properly accounts for various forms of memory overhead, and should now stay within its documented limit of 10MB + maxMemory bytes of memory consumption. Users should still be aware that this limit is high and may still be hazardous.

In addition, ReadForm now creates at most one on-disk temporary file, combining multiple form parts into a single temporary file. The mime/multipart.File interface type's documentation states, "If stored on disk, the File's underlying concrete type will be an *os.File.". This is no longer the case when a form contains more than one file part, due to this coalescing of parts into a single file. The previous behavior of using distinct files for each form part may be reenabled with the environment variable GODEBUG=multipartfiles=distinct.

Users should be aware that multipart.ReadForm and the http.Request methods that call it do not limit the amount of disk consumed by temporary files. Callers can limit the size of form data with http.MaxBytesReader.

high : CVE--2022--41724

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.015%
EPSS Percentile3rd percentile
Description

Large handshake records may cause panics in crypto/tls.

Both clients and servers may send large TLS handshake records which cause servers and clients, respectively, to panic when attempting to construct responses.

This affects all TLS 1.3 clients, TLS 1.2 clients which explicitly enable session resumption (by setting Config.ClientSessionCache to a non-nil value), and TLS 1.3 servers which request client certificates (by setting Config.ClientAuth >= RequestClientCert).

high : CVE--2022--41723

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.195%
EPSS Percentile41st percentile
Description

A maliciously crafted HTTP/2 stream could cause excessive CPU consumption in the HPACK decoder, sufficient to cause a denial of service from a small number of small requests.

high : CVE--2022--41722

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.175%
EPSS Percentile39th percentile
Description

A path traversal vulnerability exists in filepath.Clean on Windows.

On Windows, the filepath.Clean function could transform an invalid path such as "a/../c:/b" into the valid path "c:\b". This transformation of a relative (if invalid) path into an absolute path could enable a directory traversal attack.

After fix, the filepath.Clean function transforms this path into the relative (but still invalid) path ".\c:\b".

high : CVE--2022--41720

Affected range<1.18.9
Fixed version1.18.9
EPSS Score0.035%
EPSS Percentile10th percentile
Description

On Windows, restricted files can be accessed via os.DirFS and http.Dir.

The os.DirFS function and http.Dir type provide access to a tree of files rooted at a given directory. These functions permit access to Windows device files under that root. For example, os.DirFS("C:/tmp").Open("COM1") opens the COM1 device. Both os.DirFS and http.Dir only provide read-only filesystem access.

In addition, on Windows, an os.DirFS for the directory (the root of the current drive) can permit a maliciously crafted path to escape from the drive and access any path on the system.

With fix applied, the behavior of os.DirFS("") has changed. Previously, an empty root was treated equivalently to "/", so os.DirFS("").Open("tmp") would open the path "/tmp". This now returns an error.

high : CVE--2022--41716

Affected range<1.18.8
Fixed version1.18.8
EPSS Score0.013%
EPSS Percentile2nd percentile
Description

Due to unsanitized NUL values, attackers may be able to maliciously set environment variables on Windows.

In syscall.StartProcess and os/exec.Cmd, invalid environment variable values containing NUL values are not properly checked for. A malicious environment variable value can exploit this behavior to set a value for a different environment variable. For example, the environment variable string "A=B\x00C=D" sets the variables "A=B" and "C=D".

high : CVE--2022--41715

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.016%
EPSS Percentile4th percentile
Description

Programs which compile regular expressions from untrusted sources may be vulnerable to memory exhaustion or denial of service.

The parsed regexp representation is linear in the size of the input, but in some cases the constant factor can be as high as 40,000, making relatively small regexps consume much larger amounts of memory.

After fix, each regexp being parsed is limited to a 256 MB memory footprint. Regular expressions whose representation would use more space than that are rejected. Normal use of regular expressions is unaffected.

high : CVE--2022--32189

Affected range>=1.18.0-0
<1.18.5
Fixed version1.18.5
EPSS Score0.113%
EPSS Percentile30th percentile
Description

Decoding big.Float and big.Rat types can panic if the encoded message is too short, potentially allowing a denial of service.

high : CVE--2022--30635

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Calling Decoder.Decode on a message which contains deeply nested structures can cause a panic due to stack exhaustion.

high : CVE--2022--30633

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Unmarshaling an XML document into a Go struct which has a nested field that uses the 'any' field tag can panic due to stack exhaustion.

high : CVE--2022--30632

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Calling Glob on a path which contains a large number of path separators can cause a panic due to stack exhaustion.

high : CVE--2022--30631

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.042%
EPSS Percentile13th percentile
Description

Calling Reader.Read on an archive containing a large number of concatenated 0-length compressed files can cause a panic due to stack exhaustion.

high : CVE--2022--30630

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.038%
EPSS Percentile11th percentile
Description

Calling Glob on a path which contains a large number of path separators can cause a panic due to stack exhaustion.

high : CVE--2022--2880

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.032%
EPSS Percentile9th percentile
Description

Requests forwarded by ReverseProxy include the raw query parameters from the inbound request, including unparsable parameters rejected by net/http. This could permit query parameter smuggling when a Go proxy forwards a parameter with an unparsable value.

After fix, ReverseProxy sanitizes the query parameters in the forwarded query when the outbound request's Form field is set after the ReverseProxy. Director function returns, indicating that the proxy has parsed the query parameters. Proxies which do not parse query parameters continue to forward the original query parameters unchanged.

high : CVE--2022--2879

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

Reader.Read does not set a limit on the maximum size of file headers. A maliciously crafted archive could cause Read to allocate unbounded amounts of memory, potentially causing resource exhaustion or panics. After fix, Reader.Read limits the maximum size of header blocks to 1 MiB.

high : CVE--2022--28131

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.015%
EPSS Percentile3rd percentile
Description

Calling Decoder.Skip when parsing a deeply nested XML document can cause a panic due to stack exhaustion.

high : CVE--2022--27664

Affected range<1.18.6
Fixed version1.18.6
EPSS Score0.101%
EPSS Percentile28th percentile
Description

HTTP/2 server connections can hang forever waiting for a clean shutdown that was preempted by a fatal error. This condition can be exploited by a malicious client to cause a denial of service.

high : CVE--2023--29400

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.048%
EPSS Percentile15th percentile
Description

Templates containing actions in unquoted HTML attributes (e.g. "attr={{.}}") executed with empty input can result in output with unexpected results when parsed due to HTML normalization rules. This may allow injection of arbitrary attributes into tags.

high : CVE--2023--24539

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.065%
EPSS Percentile20th percentile
Description

Angle brackets (<>) are not considered dangerous characters when inserted into CSS contexts. Templates containing multiple actions separated by a '/' character can result in unexpectedly closing the CSS context and allowing for injection of unexpected HTML, if executed with untrusted input.

critical: 1 high: 6 medium: 0 low: 0 stdlib 1.24.4 (golang)

pkg:golang/stdlib@1.24.4

critical : CVE--2025--68121

Affected range<1.24.13
Fixed version1.24.13
EPSS Score0.009%
EPSS Percentile1st percentile
Description

During session resumption in crypto/tls, if the underlying Config has its ClientCAs or RootCAs fields mutated between the initial handshake and the resumed handshake, the resumed handshake may succeed when it should have failed. This may happen when a user calls Config.Clone and mutates the returned Config, or uses Config.GetConfigForClient. This can cause a client to resume a session with a server that it would not have resumed with during the initial handshake, or cause a server to resume a session with a client that it would not have resumed with during the initial handshake.

high : CVE--2025--61729

Affected range<1.24.11
Fixed version1.24.11
EPSS Score0.017%
EPSS Percentile4th 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--61726

Affected range<1.24.12
Fixed version1.24.12
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The net/url package does not set a limit on the number of query parameters in a query.

While the maximum size of query parameters in URLs is generally limited by the maximum request header size, the net/http.Request.ParseForm method can parse large URL-encoded forms. Parsing a large form containing many unique query parameters can cause excessive memory consumption.

high : CVE--2025--61725

Affected range<1.24.8
Fixed version1.24.8
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The ParseAddress function constructs 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.24.8
Fixed version1.24.8
EPSS Score0.040%
EPSS Percentile12th 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.24.8
Fixed version1.24.8
EPSS Score0.019%
EPSS Percentile5th 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.24.9
Fixed version1.24.9
EPSS Score0.019%
EPSS Percentile5th 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: 3 medium: 0 low: 0 urllib3 2.0.7 (pypi)

pkg:pypi/urllib3@2.0.7

high 8.9: CVE--2026--21441 Improper Handling of Highly Compressed Data (Data Amplification)

Affected range>=1.22
<2.6.3
Fixed version2.6.3
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.026%
EPSS Percentile7th percentile
Description

Impact

urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once.

urllib3 can perform decoding or decompression based on the HTTP Content-Encoding header (e.g., gzip, deflate, br, or zstd). When using the streaming API, the library decompresses only the necessary bytes, enabling partial content consumption.

However, for HTTP redirect responses, the library would read the entire response body to drain the connection and decompress the content unnecessarily. This decompression occurred even before any read methods were called, and configured read limits did not restrict the amount of decompressed data. As a result, there was no safeguard against decompression bombs. A malicious server could exploit this to trigger excessive resource consumption on the client (high CPU usage and large memory allocations for decompressed data; CWE-409).

Affected usages

Applications and libraries using urllib3 version 2.6.2 and earlier to stream content from untrusted sources by setting preload_content=False when they do not disable redirects.

Remediation

Upgrade to at least urllib3 v2.6.3 in which the library does not decode content of redirect responses when preload_content=False.

If upgrading is not immediately possible, disable redirects by setting redirect=False for requests to untrusted source.

high 8.9: CVE--2025--66471 Improper Handling of Highly Compressed Data (Data Amplification)

Affected range>=1.0
<2.6.0
Fixed version2.6.0
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.027%
EPSS Percentile7th percentile
Description

Impact

urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once.

When streaming a compressed response, urllib3 can perform decoding or decompression based on the HTTP Content-Encoding header (e.g., gzip, deflate, br, or zstd). The library must read compressed data from the network and decompress it until the requested chunk size is met. Any resulting decompressed data that exceeds the requested amount is held in an internal buffer for the next read operation.

The decompression logic could cause urllib3 to fully decode a small amount of highly compressed data in a single operation. This can result in excessive resource consumption (high CPU usage and massive memory allocation for the decompressed data; CWE-409) on the client side, even if the application only requested a small chunk of data.

Affected usages

Applications and libraries using urllib3 version 2.5.0 and earlier to stream large compressed responses or content from untrusted sources.

stream(), read(amt=256), read1(amt=256), read_chunked(amt=256), readinto(b) are examples of urllib3.HTTPResponse method calls using the affected logic unless decoding is disabled explicitly.

Remediation

Upgrade to at least urllib3 v2.6.0 in which the library avoids decompressing data that exceeds the requested amount.

If your environment contains a package facilitating the Brotli encoding, upgrade to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 too. These versions are enforced by the urllib3[brotli] extra in the patched versions of urllib3.

Credits

The issue was reported by @Cycloctane.
Supplemental information was provided by @stamparm during a security audit performed by 7ASecurity and facilitated by OSTIF.

high 8.9: CVE--2025--66418 Allocation of Resources Without Limits or Throttling

Affected range>=1.24
<2.6.0
Fixed version2.6.0
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.029%
EPSS Percentile8th percentile
Description

Impact

urllib3 supports chained HTTP encoding algorithms for response content according to RFC 9110 (e.g., Content-Encoding: gzip, zstd).

However, the number of links in the decompression chain was unbounded allowing a malicious server to insert a virtually unlimited number of compression steps leading to high CPU usage and massive memory allocation for the decompressed data.

Affected usages

Applications and libraries using urllib3 version 2.5.0 and earlier for HTTP requests to untrusted sources unless they disable content decoding explicitly.

Remediation

Upgrade to at least urllib3 v2.6.0 in which the library limits the number of links to 5.

If upgrading is not immediately possible, use preload_content=False and ensure that resp.headers["content-encoding"] contains a safe number of encodings before reading the response content.

critical: 0 high: 3 medium: 0 low: 0 cryptography 41.0.7 (pypi)

pkg:pypi/cryptography@41.0.7

high 8.7: CVE--2023--50782 Observable Discrepancy

Affected range<42.0.0
Fixed version42.0.0
CVSS Score8.7
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
EPSS Score1.147%
EPSS Percentile78th percentile
Description

A flaw was found in the python-cryptography package. This issue may allow a remote attacker to decrypt captured messages in TLS servers that use RSA key exchanges, which may lead to exposure of confidential or sensitive data.

high 8.2: CVE--2026--26007 Insufficient Verification of Data Authenticity

Affected range<=46.0.4
Fixed version46.0.5
CVSS Score8.2
CVSS VectorCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score0.007%
EPSS Percentile0th percentile
Description

Vulnerability Summary

The public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve.

This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup.

Only SECT curves are impacted by this.

Credit

This vulnerability was discovered by:

  • XlabAI Team of Tencent Xuanwu Lab
  • Atuin Automated Vulnerability Discovery Engine

high 7.5: CVE--2024--26130 NULL Pointer Dereference

Affected range>=38.0.0
<42.0.4
Fixed version42.0.4
CVSS Score7.5
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score0.341%
EPSS Percentile56th percentile
Description

If pkcs12.serialize_key_and_certificates is called with both:

  1. A certificate whose public key did not match the provided private key
  2. An encryption_algorithm with hmac_hash set (via PrivateFormat.PKCS12.encryption_builder().hmac_hash(...)

Then a NULL pointer dereference would occur, crashing the Python process.

This has been resolved, and now a ValueError is properly raised.

Patched in pyca/cryptography#10423

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

pkg:golang/golang.org/x/crypto@0.36.0

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.033%
EPSS Percentile9th 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

github-actions Bot commented Mar 5, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image ghcr.io/dependabot/dependabot-updater-core:latest

Base image is ubuntu:24.04

Name24.04
Digestsha256:98ff7968124952e719a8a69bb3cccdd217f5fe758108ac4f21ad22e1df44d237
Vulnerabilitiescritical: 0 high: 0 medium: 4 low: 5
Pushed3 weeks ago
Size30 MB
Packages131
OS24.04
The base image is also available under the supported tag(s): latest, noble

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
26.04
Major OS version update
Also known as:
  • devel
  • resolute
  • resolute-20260108
Benefits:
  • Image contains 9 fewer packages
  • Image has similar size
  • Image introduces no new vulnerability but removes 9
  • Major OS version update
Image details:
  • Size: 34 MB
  • OS: 26.04
1 month ago



25.10
Major OS version update
Also known as:
  • rolling
  • questing
  • questing-20251217
Benefits:
  • Image contains 7 fewer packages
  • Image has similar size
  • Image introduces no new vulnerability but removes 9
  • Major OS version update
Image details:
  • Size: 34 MB
  • OS: 25.10
2 months ago



@github-actions

github-actions Bot commented Mar 5, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of ghcr.io/dependabot/dependabot-updater-core:latest

📦 Image Reference ghcr.io/dependabot/dependabot-updater-core:latest
digestsha256:6a9a13044b52a7bf0dae95205f854c561478bd1cd2f3de8d59133e4ed6a4d8b5
vulnerabilitiescritical: 6 high: 51 medium: 0 low: 0
platformlinux/amd64
size347 MB
packages601
📦 Base Image ubuntu:24.04
also known as
  • latest
  • noble
digestsha256:98ff7968124952e719a8a69bb3cccdd217f5fe758108ac4f21ad22e1df44d237
vulnerabilitiescritical: 0 high: 0 medium: 4 low: 5
critical: 5 high: 38 medium: 0 low: 0 stdlib 1.18.3 (golang)

pkg:golang/stdlib@1.18.3

critical : CVE--2025--68121

Affected range<1.24.13
Fixed version1.24.13
EPSS Score0.009%
EPSS Percentile1st percentile
Description

During session resumption in crypto/tls, if the underlying Config has its ClientCAs or RootCAs fields mutated between the initial handshake and the resumed handshake, the resumed handshake may succeed when it should have failed. This may happen when a user calls Config.Clone and mutates the returned Config, or uses Config.GetConfigForClient. This can cause a client to resume a session with a server that it would not have resumed with during the initial handshake, or cause a server to resume a session with a client that it would not have resumed with during the initial handshake.

critical : CVE--2024--24790

Affected range<1.21.11
Fixed version1.21.11
EPSS Score0.082%
EPSS Percentile24th percentile
Description

The various Is methods (IsPrivate, IsLoopback, etc) did not work as expected for IPv4-mapped IPv6 addresses, returning false for addresses which would return true in their traditional IPv4 forms.

critical : CVE--2023--24540

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.243%
EPSS Percentile47th percentile
Description

Not all valid JavaScript whitespace characters are considered to be whitespace. Templates containing whitespace characters outside of the character set "\t\n\f\r\u0020\u2028\u2029" in JavaScript contexts that also contain actions may not be properly sanitized during execution.

critical : CVE--2023--24538

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.646%
EPSS Percentile70th percentile
Description

Templates do not properly consider backticks (`) as Javascript string delimiters, and do not escape them as expected.

Backticks are used, since ES6, for JS template literals. If a template contains a Go template action within a Javascript template literal, the contents of the action can be used to terminate the literal, injecting arbitrary Javascript code into the Go template.

As ES6 template literals are rather complex, and themselves can do string interpolation, the decision was made to simply disallow Go template actions from being used inside of them (e.g. "var a = {{.}}"), since there is no obviously safe way to allow this behavior. This takes the same approach as github.com/google/safehtml.

With fix, Template.Parse returns an Error when it encounters templates like this, with an ErrorCode of value 12. This ErrorCode is currently unexported, but will be exported in the release of Go 1.21.

Users who rely on the previous behavior can re-enable it using the GODEBUG flag jstmpllitinterp=1, with the caveat that backticks will now be escaped. This should be used with caution.

critical : CVE--2025--22871

Affected range<1.23.8
Fixed version1.23.8
EPSS Score0.117%
EPSS Percentile30th percentile
Description

The net/http package improperly accepts a bare LF as a line terminator in chunked data chunk-size lines. This can permit request smuggling if a net/http server is used in conjunction with a server that incorrectly accepts a bare LF as part of a chunk-ext.

high : CVE--2023--29403

Affected range<1.19.10
Fixed version1.19.10
EPSS Score0.009%
EPSS Percentile1st percentile
Description

On Unix platforms, the Go runtime does not behave differently when a binary is run with the setuid/setgid bits. This can be dangerous in certain cases, such as when dumping memory state, or assuming the status of standard i/o file descriptors.

If a setuid/setgid binary is executed with standard I/O file descriptors closed, opening any files can result in unexpected content being read or written with elevated privileges. Similarly, if a setuid/setgid program is terminated, either via panic or signal, it may leak the contents of its registers.

high : CVE--2025--61729

Affected range<1.24.11
Fixed version1.24.11
EPSS Score0.017%
EPSS Percentile4th 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--61726

Affected range<1.24.12
Fixed version1.24.12
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The net/url package does not set a limit on the number of query parameters in a query.

While the maximum size of query parameters in URLs is generally limited by the maximum request header size, the net/http.Request.ParseForm method can parse large URL-encoded forms. Parsing a large form containing many unique query parameters can cause excessive memory consumption.

high : CVE--2025--61725

Affected range<1.24.8
Fixed version1.24.8
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The ParseAddress function constructs 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.24.8
Fixed version1.24.8
EPSS Score0.040%
EPSS Percentile12th 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.24.8
Fixed version1.24.8
EPSS Score0.019%
EPSS Percentile5th 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.24.9
Fixed version1.24.9
EPSS Score0.019%
EPSS Percentile5th 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.

high : CVE--2024--34158

Affected range<1.22.7
Fixed version1.22.7
EPSS Score0.163%
EPSS Percentile37th percentile
Description

Calling Parse on a "// +build" build tag line with deeply nested expressions can cause a panic due to stack exhaustion.

high : CVE--2024--34156

Affected range<1.22.7
Fixed version1.22.7
EPSS Score0.298%
EPSS Percentile53rd percentile
Description

Calling Decoder.Decode on a message which contains deeply nested structures can cause a panic due to stack exhaustion. This is a follow-up to CVE-2022-30635.

high : CVE--2024--24791

Affected range<1.21.12
Fixed version1.21.12
EPSS Score0.618%
EPSS Percentile70th percentile
Description

The net/http HTTP/1.1 client mishandled the case where a server responds to a request with an "Expect: 100-continue" header with a non-informational (200 or higher) status. This mishandling could leave a client connection in an invalid state, where the next request sent on the connection will fail.

An attacker sending a request to a net/http/httputil.ReverseProxy proxy can exploit this mishandling to cause a denial of service by sending "Expect: 100-continue" requests which elicit a non-informational response from the backend. Each such request leaves the proxy with an invalid connection, and causes one subsequent request using that connection to fail.

high : CVE--2024--24784

Affected range<1.21.8
Fixed version1.21.8
EPSS Score1.498%
EPSS Percentile81st percentile
Description

The ParseAddressList function incorrectly handles comments (text within parentheses) within display names. Since this is a misalignment with conforming address parsers, it can result in different trust decisions being made by programs using different parsers.

high : CVE--2023--45288

Affected range<1.21.9
Fixed version1.21.9
EPSS Score71.463%
EPSS Percentile99th percentile
Description

An attacker may cause an HTTP/2 endpoint to read arbitrary amounts of header data by sending an excessive number of CONTINUATION frames.

Maintaining HPACK state requires parsing and processing all HEADERS and CONTINUATION frames on a connection. When a request's headers exceed MaxHeaderBytes, no memory is allocated to store the excess headers, but they are still parsed.

This permits an attacker to cause an HTTP/2 endpoint to read arbitrary amounts of header data, all associated with a request which is going to be rejected. These headers can include Huffman-encoded data which is significantly more expensive for the receiver to decode than for an attacker to send.

The fix sets a limit on the amount of excess header frames we will process before closing a connection.

high : CVE--2023--45287

Affected range<1.20.0
Fixed version1.20.0
EPSS Score0.185%
EPSS Percentile40th percentile
Description

Before Go 1.20, the RSA based TLS key exchanges used the math/big library, which is not constant time. RSA blinding was applied to prevent timing attacks, but analysis shows this may not have been fully effective. In particular it appears as if the removal of PKCS#1 padding may leak timing information, which in turn could be used to recover session key bits.

In Go 1.20, the crypto/tls library switched to a fully constant time RSA implementation, which we do not believe exhibits any timing side channels.

high : CVE--2023--45283

Affected range<1.20.11
Fixed version1.20.11
EPSS Score0.097%
EPSS Percentile27th percentile
Description

The filepath package does not recognize paths with a ??\ prefix as special.

On Windows, a path beginning with ??\ is a Root Local Device path equivalent to a path beginning with \?. Paths with a ??\ prefix may be used to access arbitrary locations on the system. For example, the path ??\c:\x is equivalent to the more common path c:\x.

Before fix, Clean could convert a rooted path such as \a..??\b into the root local device path ??\b. Clean will now convert this to .??\b.

Similarly, Join(, ??, b) could convert a seemingly innocent sequence of path elements into the root local device path ??\b. Join will now convert this to .??\b.

In addition, with fix, IsAbs now correctly reports paths beginning with ??\ as absolute, and VolumeName correctly reports the ??\ prefix as a volume name.

UPDATE: Go 1.20.11 and Go 1.21.4 inadvertently changed the definition of the volume name in Windows paths starting with ?, resulting in filepath.Clean(?\c:) returning ?\c: rather than ?\c:\ (among other effects). The previous behavior has been restored.

high : CVE--2023--44487

Affected range<1.20.10
Fixed version1.20.10
EPSS Score94.399%
EPSS Percentile100th percentile
Description

A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. While the total number of requests is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an in-progress request allows the attacker to create a new request while the existing one is still executing.

With the fix applied, HTTP/2 servers now bound the number of simultaneously executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams). New requests arriving when at the limit (which can only happen after the client has reset an existing, in-flight request) will be queued until a handler exits. If the request queue grows too large, the server will terminate the connection.

This issue is also fixed in golang.org/x/net/http2 for users manually configuring HTTP/2.

The default stream concurrency limit is 250 streams (requests) per HTTP/2 connection. This value may be adjusted using the golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams setting and the ConfigureServer function.

high : CVE--2023--39325

Affected range<1.20.10
Fixed version1.20.10
EPSS Score0.150%
EPSS Percentile35th percentile
Description

A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. While the total number of requests is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an in-progress request allows the attacker to create a new request while the existing one is still executing.

With the fix applied, HTTP/2 servers now bound the number of simultaneously executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams). New requests arriving when at the limit (which can only happen after the client has reset an existing, in-flight request) will be queued until a handler exits. If the request queue grows too large, the server will terminate the connection.

This issue is also fixed in golang.org/x/net/http2 for users manually configuring HTTP/2.

The default stream concurrency limit is 250 streams (requests) per HTTP/2 connection. This value may be adjusted using the golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams setting and the ConfigureServer function.

high : CVE--2023--24537

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.013%
EPSS Percentile2nd percentile
Description

Calling any of the Parse functions on Go source code which contains //line directives with very large line numbers can cause an infinite loop due to integer overflow.

high : CVE--2023--24536

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.070%
EPSS Percentile21st percentile
Description

Multipart form parsing can consume large amounts of CPU and memory when processing form inputs containing very large numbers of parts.

This stems from several causes:

  1. mime/multipart.Reader.ReadForm limits the total memory a parsed multipart form can consume. ReadForm can undercount the amount of memory consumed, leading it to accept larger inputs than intended.
  2. Limiting total memory does not account for increased pressure on the garbage collector from large numbers of small allocations in forms with many parts.
  3. ReadForm can allocate a large number of short-lived buffers, further increasing pressure on the garbage collector.

The combination of these factors can permit an attacker to cause an program that parses multipart forms to consume large amounts of CPU and memory, potentially resulting in a denial of service. This affects programs that use mime/multipart.Reader.ReadForm, as well as form parsing in the net/http package with the Request methods FormFile, FormValue, ParseMultipartForm, and PostFormValue.

With fix, ReadForm now does a better job of estimating the memory consumption of parsed forms, and performs many fewer short-lived allocations.

In addition, the fixed mime/multipart.Reader imposes the following limits on the size of parsed forms:

  1. Forms parsed with ReadForm may contain no more than 1000 parts. This limit may be adjusted with the environment variable GODEBUG=multipartmaxparts=.
  2. Form parts parsed with NextPart and NextRawPart may contain no more than 10,000 header fields. In addition, forms parsed with ReadForm may contain no more than 10,000 header fields across all parts. This limit may be adjusted with the environment variable GODEBUG=multipartmaxheaders=.

high : CVE--2023--24534

Affected range<1.19.8
Fixed version1.19.8
EPSS Score0.048%
EPSS Percentile15th percentile
Description

HTTP and MIME header parsing can allocate large amounts of memory, even when parsing small inputs, potentially leading to a denial of service.

Certain unusual patterns of input data can cause the common function used to parse HTTP and MIME headers to allocate substantially more memory than required to hold the parsed headers. An attacker can exploit this behavior to cause an HTTP server to allocate large amounts of memory from a small request, potentially leading to memory exhaustion and a denial of service.

With fix, header parsing now correctly allocates only the memory required to hold parsed headers.

high : CVE--2022--41725

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.048%
EPSS Percentile15th percentile
Description

A denial of service is possible from excessive resource consumption in net/http and mime/multipart.

Multipart form parsing with mime/multipart.Reader.ReadForm can consume largely unlimited amounts of memory and disk files. This also affects form parsing in the net/http package with the Request methods FormFile, FormValue, ParseMultipartForm, and PostFormValue.

ReadForm takes a maxMemory parameter, and is documented as storing "up to maxMemory bytes +10MB (reserved for non-file parts) in memory". File parts which cannot be stored in memory are stored on disk in temporary files. The unconfigurable 10MB reserved for non-file parts is excessively large and can potentially open a denial of service vector on its own. However, ReadForm did not properly account for all memory consumed by a parsed form, such as map entry overhead, part names, and MIME headers, permitting a maliciously crafted form to consume well over 10MB. In addition, ReadForm contained no limit on the number of disk files created, permitting a relatively small request body to create a large number of disk temporary files.

With fix, ReadForm now properly accounts for various forms of memory overhead, and should now stay within its documented limit of 10MB + maxMemory bytes of memory consumption. Users should still be aware that this limit is high and may still be hazardous.

In addition, ReadForm now creates at most one on-disk temporary file, combining multiple form parts into a single temporary file. The mime/multipart.File interface type's documentation states, "If stored on disk, the File's underlying concrete type will be an *os.File.". This is no longer the case when a form contains more than one file part, due to this coalescing of parts into a single file. The previous behavior of using distinct files for each form part may be reenabled with the environment variable GODEBUG=multipartfiles=distinct.

Users should be aware that multipart.ReadForm and the http.Request methods that call it do not limit the amount of disk consumed by temporary files. Callers can limit the size of form data with http.MaxBytesReader.

high : CVE--2022--41724

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.015%
EPSS Percentile3rd percentile
Description

Large handshake records may cause panics in crypto/tls.

Both clients and servers may send large TLS handshake records which cause servers and clients, respectively, to panic when attempting to construct responses.

This affects all TLS 1.3 clients, TLS 1.2 clients which explicitly enable session resumption (by setting Config.ClientSessionCache to a non-nil value), and TLS 1.3 servers which request client certificates (by setting Config.ClientAuth >= RequestClientCert).

high : CVE--2022--41723

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.195%
EPSS Percentile41st percentile
Description

A maliciously crafted HTTP/2 stream could cause excessive CPU consumption in the HPACK decoder, sufficient to cause a denial of service from a small number of small requests.

high : CVE--2022--41722

Affected range<1.19.6
Fixed version1.19.6
EPSS Score0.175%
EPSS Percentile39th percentile
Description

A path traversal vulnerability exists in filepath.Clean on Windows.

On Windows, the filepath.Clean function could transform an invalid path such as "a/../c:/b" into the valid path "c:\b". This transformation of a relative (if invalid) path into an absolute path could enable a directory traversal attack.

After fix, the filepath.Clean function transforms this path into the relative (but still invalid) path ".\c:\b".

high : CVE--2022--41720

Affected range<1.18.9
Fixed version1.18.9
EPSS Score0.035%
EPSS Percentile10th percentile
Description

On Windows, restricted files can be accessed via os.DirFS and http.Dir.

The os.DirFS function and http.Dir type provide access to a tree of files rooted at a given directory. These functions permit access to Windows device files under that root. For example, os.DirFS("C:/tmp").Open("COM1") opens the COM1 device. Both os.DirFS and http.Dir only provide read-only filesystem access.

In addition, on Windows, an os.DirFS for the directory (the root of the current drive) can permit a maliciously crafted path to escape from the drive and access any path on the system.

With fix applied, the behavior of os.DirFS("") has changed. Previously, an empty root was treated equivalently to "/", so os.DirFS("").Open("tmp") would open the path "/tmp". This now returns an error.

high : CVE--2022--41716

Affected range<1.18.8
Fixed version1.18.8
EPSS Score0.013%
EPSS Percentile2nd percentile
Description

Due to unsanitized NUL values, attackers may be able to maliciously set environment variables on Windows.

In syscall.StartProcess and os/exec.Cmd, invalid environment variable values containing NUL values are not properly checked for. A malicious environment variable value can exploit this behavior to set a value for a different environment variable. For example, the environment variable string "A=B\x00C=D" sets the variables "A=B" and "C=D".

high : CVE--2022--41715

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.016%
EPSS Percentile4th percentile
Description

Programs which compile regular expressions from untrusted sources may be vulnerable to memory exhaustion or denial of service.

The parsed regexp representation is linear in the size of the input, but in some cases the constant factor can be as high as 40,000, making relatively small regexps consume much larger amounts of memory.

After fix, each regexp being parsed is limited to a 256 MB memory footprint. Regular expressions whose representation would use more space than that are rejected. Normal use of regular expressions is unaffected.

high : CVE--2022--32189

Affected range>=1.18.0-0
<1.18.5
Fixed version1.18.5
EPSS Score0.113%
EPSS Percentile30th percentile
Description

Decoding big.Float and big.Rat types can panic if the encoded message is too short, potentially allowing a denial of service.

high : CVE--2022--30635

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Calling Decoder.Decode on a message which contains deeply nested structures can cause a panic due to stack exhaustion.

high : CVE--2022--30633

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Unmarshaling an XML document into a Go struct which has a nested field that uses the 'any' field tag can panic due to stack exhaustion.

high : CVE--2022--30632

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.096%
EPSS Percentile26th percentile
Description

Calling Glob on a path which contains a large number of path separators can cause a panic due to stack exhaustion.

high : CVE--2022--30631

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.042%
EPSS Percentile13th percentile
Description

Calling Reader.Read on an archive containing a large number of concatenated 0-length compressed files can cause a panic due to stack exhaustion.

high : CVE--2022--30630

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.038%
EPSS Percentile11th percentile
Description

Calling Glob on a path which contains a large number of path separators can cause a panic due to stack exhaustion.

high : CVE--2022--2880

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.032%
EPSS Percentile9th percentile
Description

Requests forwarded by ReverseProxy include the raw query parameters from the inbound request, including unparsable parameters rejected by net/http. This could permit query parameter smuggling when a Go proxy forwards a parameter with an unparsable value.

After fix, ReverseProxy sanitizes the query parameters in the forwarded query when the outbound request's Form field is set after the ReverseProxy. Director function returns, indicating that the proxy has parsed the query parameters. Proxies which do not parse query parameters continue to forward the original query parameters unchanged.

high : CVE--2022--2879

Affected range<1.18.7
Fixed version1.18.7
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

Reader.Read does not set a limit on the maximum size of file headers. A maliciously crafted archive could cause Read to allocate unbounded amounts of memory, potentially causing resource exhaustion or panics. After fix, Reader.Read limits the maximum size of header blocks to 1 MiB.

high : CVE--2022--28131

Affected range>=1.18.0-0
<1.18.4
Fixed version1.18.4
EPSS Score0.015%
EPSS Percentile3rd percentile
Description

Calling Decoder.Skip when parsing a deeply nested XML document can cause a panic due to stack exhaustion.

high : CVE--2022--27664

Affected range<1.18.6
Fixed version1.18.6
EPSS Score0.101%
EPSS Percentile28th percentile
Description

HTTP/2 server connections can hang forever waiting for a clean shutdown that was preempted by a fatal error. This condition can be exploited by a malicious client to cause a denial of service.

high : CVE--2023--29400

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.048%
EPSS Percentile15th percentile
Description

Templates containing actions in unquoted HTML attributes (e.g. "attr={{.}}") executed with empty input can result in output with unexpected results when parsed due to HTML normalization rules. This may allow injection of arbitrary attributes into tags.

high : CVE--2023--24539

Affected range<1.19.9
Fixed version1.19.9
EPSS Score0.065%
EPSS Percentile20th percentile
Description

Angle brackets (<>) are not considered dangerous characters when inserted into CSS contexts. Templates containing multiple actions separated by a '/' character can result in unexpectedly closing the CSS context and allowing for injection of unexpected HTML, if executed with untrusted input.

critical: 1 high: 6 medium: 0 low: 0 stdlib 1.24.4 (golang)

pkg:golang/stdlib@1.24.4

critical : CVE--2025--68121

Affected range<1.24.13
Fixed version1.24.13
EPSS Score0.009%
EPSS Percentile1st percentile
Description

During session resumption in crypto/tls, if the underlying Config has its ClientCAs or RootCAs fields mutated between the initial handshake and the resumed handshake, the resumed handshake may succeed when it should have failed. This may happen when a user calls Config.Clone and mutates the returned Config, or uses Config.GetConfigForClient. This can cause a client to resume a session with a server that it would not have resumed with during the initial handshake, or cause a server to resume a session with a client that it would not have resumed with during the initial handshake.

high : CVE--2025--61729

Affected range<1.24.11
Fixed version1.24.11
EPSS Score0.017%
EPSS Percentile4th 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--61726

Affected range<1.24.12
Fixed version1.24.12
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The net/url package does not set a limit on the number of query parameters in a query.

While the maximum size of query parameters in URLs is generally limited by the maximum request header size, the net/http.Request.ParseForm method can parse large URL-encoded forms. Parsing a large form containing many unique query parameters can cause excessive memory consumption.

high : CVE--2025--61725

Affected range<1.24.8
Fixed version1.24.8
EPSS Score0.032%
EPSS Percentile9th percentile
Description

The ParseAddress function constructs 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.24.8
Fixed version1.24.8
EPSS Score0.040%
EPSS Percentile12th 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.24.8
Fixed version1.24.8
EPSS Score0.019%
EPSS Percentile5th 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.24.9
Fixed version1.24.9
EPSS Score0.019%
EPSS Percentile5th 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: 3 medium: 0 low: 0 cryptography 41.0.7 (pypi)

pkg:pypi/cryptography@41.0.7

high 8.7: CVE--2023--50782 Observable Discrepancy

Affected range<42.0.0
Fixed version42.0.0
CVSS Score8.7
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
EPSS Score1.147%
EPSS Percentile78th percentile
Description

A flaw was found in the python-cryptography package. This issue may allow a remote attacker to decrypt captured messages in TLS servers that use RSA key exchanges, which may lead to exposure of confidential or sensitive data.

high 8.2: CVE--2026--26007 Insufficient Verification of Data Authenticity

Affected range<=46.0.4
Fixed version46.0.5
CVSS Score8.2
CVSS VectorCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score0.007%
EPSS Percentile0th percentile
Description

Vulnerability Summary

The public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve.

This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup.

Only SECT curves are impacted by this.

Credit

This vulnerability was discovered by:

  • XlabAI Team of Tencent Xuanwu Lab
  • Atuin Automated Vulnerability Discovery Engine

high 7.5: CVE--2024--26130 NULL Pointer Dereference

Affected range>=38.0.0
<42.0.4
Fixed version42.0.4
CVSS Score7.5
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score0.341%
EPSS Percentile56th percentile
Description

If pkcs12.serialize_key_and_certificates is called with both:

  1. A certificate whose public key did not match the provided private key
  2. An encryption_algorithm with hmac_hash set (via PrivateFormat.PKCS12.encryption_builder().hmac_hash(...)

Then a NULL pointer dereference would occur, crashing the Python process.

This has been resolved, and now a ValueError is properly raised.

Patched in pyca/cryptography#10423

critical: 0 high: 3 medium: 0 low: 0 urllib3 2.0.7 (pypi)

pkg:pypi/urllib3@2.0.7

high 8.9: CVE--2026--21441 Improper Handling of Highly Compressed Data (Data Amplification)

Affected range>=1.22
<2.6.3
Fixed version2.6.3
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.026%
EPSS Percentile7th percentile
Description

Impact

urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once.

urllib3 can perform decoding or decompression based on the HTTP Content-Encoding header (e.g., gzip, deflate, br, or zstd). When using the streaming API, the library decompresses only the necessary bytes, enabling partial content consumption.

However, for HTTP redirect responses, the library would read the entire response body to drain the connection and decompress the content unnecessarily. This decompression occurred even before any read methods were called, and configured read limits did not restrict the amount of decompressed data. As a result, there was no safeguard against decompression bombs. A malicious server could exploit this to trigger excessive resource consumption on the client (high CPU usage and large memory allocations for decompressed data; CWE-409).

Affected usages

Applications and libraries using urllib3 version 2.6.2 and earlier to stream content from untrusted sources by setting preload_content=False when they do not disable redirects.

Remediation

Upgrade to at least urllib3 v2.6.3 in which the library does not decode content of redirect responses when preload_content=False.

If upgrading is not immediately possible, disable redirects by setting redirect=False for requests to untrusted source.

high 8.9: CVE--2025--66471 Improper Handling of Highly Compressed Data (Data Amplification)

Affected range>=1.0
<2.6.0
Fixed version2.6.0
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.027%
EPSS Percentile7th percentile
Description

Impact

urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once.

When streaming a compressed response, urllib3 can perform decoding or decompression based on the HTTP Content-Encoding header (e.g., gzip, deflate, br, or zstd). The library must read compressed data from the network and decompress it until the requested chunk size is met. Any resulting decompressed data that exceeds the requested amount is held in an internal buffer for the next read operation.

The decompression logic could cause urllib3 to fully decode a small amount of highly compressed data in a single operation. This can result in excessive resource consumption (high CPU usage and massive memory allocation for the decompressed data; CWE-409) on the client side, even if the application only requested a small chunk of data.

Affected usages

Applications and libraries using urllib3 version 2.5.0 and earlier to stream large compressed responses or content from untrusted sources.

stream(), read(amt=256), read1(amt=256), read_chunked(amt=256), readinto(b) are examples of urllib3.HTTPResponse method calls using the affected logic unless decoding is disabled explicitly.

Remediation

Upgrade to at least urllib3 v2.6.0 in which the library avoids decompressing data that exceeds the requested amount.

If your environment contains a package facilitating the Brotli encoding, upgrade to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 too. These versions are enforced by the urllib3[brotli] extra in the patched versions of urllib3.

Credits

The issue was reported by @Cycloctane.
Supplemental information was provided by @stamparm during a security audit performed by 7ASecurity and facilitated by OSTIF.

high 8.9: CVE--2025--66418 Allocation of Resources Without Limits or Throttling

Affected range>=1.24
<2.6.0
Fixed version2.6.0
CVSS Score8.9
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score0.029%
EPSS Percentile8th percentile
Description

Impact

urllib3 supports chained HTTP encoding algorithms for response content according to RFC 9110 (e.g., Content-Encoding: gzip, zstd).

However, the number of links in the decompression chain was unbounded allowing a malicious server to insert a virtually unlimited number of compression steps leading to high CPU usage and massive memory allocation for the decompressed data.

Affected usages

Applications and libraries using urllib3 version 2.5.0 and earlier for HTTP requests to untrusted sources unless they disable content decoding explicitly.

Remediation

Upgrade to at least urllib3 v2.6.0 in which the library limits the number of links to 5.

If upgrading is not immediately possible, use preload_content=False and ensure that resp.headers["content-encoding"] contains a safe number of encodings before reading the response content.

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

pkg:golang/golang.org/x/crypto@0.36.0

high : CVE--2025--47913

Affected range<0.43.0
Fixed version0.43.0
EPSS Score0.033%
EPSS Percentile9th 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

github-actions Bot commented Mar 5, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image ghcr.io/dependabot/dependabot-updater-core:latest

Base image is ubuntu:24.04

Name24.04
Digestsha256:98ff7968124952e719a8a69bb3cccdd217f5fe758108ac4f21ad22e1df44d237
Vulnerabilitiescritical: 0 high: 0 medium: 4 low: 5
Pushed3 weeks ago
Size30 MB
Packages131
OS24.04
The base image is also available under the supported tag(s): latest, noble

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
26.04
Major OS version update
Also known as:
  • devel
  • resolute
  • resolute-20260108
Benefits:
  • Image contains 9 fewer packages
  • Image has similar size
  • Image introduces no new vulnerability but removes 9
  • Major OS version update
Image details:
  • Size: 34 MB
  • OS: 26.04
1 month ago



25.10
Major OS version update
Also known as:
  • rolling
  • questing
  • questing-20251217
Benefits:
  • Image contains 7 fewer packages
  • Image has similar size
  • Image introduces no new vulnerability but removes 9
  • Major OS version update
Image details:
  • Size: 34 MB
  • OS: 25.10
2 months ago



@renovate
renovate Bot force-pushed the renovate/ansible-ansible-lint-26.x branch from 8ceaaa4 to 4ed579d Compare April 1, 2026 16:51
@renovate
renovate Bot force-pushed the renovate/ansible-ansible-lint-26.x branch from 4ed579d to 772fd3b Compare June 30, 2026 13:47
@renovate
renovate Bot force-pushed the renovate/ansible-ansible-lint-26.x branch from 772fd3b to 52308f6 Compare August 12, 2026 13:38
@renovate
renovate Bot force-pushed the renovate/ansible-ansible-lint-26.x branch from 52308f6 to 349d4d2 Compare September 22, 2026 23:26
@renovate
renovate Bot force-pushed the renovate/ansible-ansible-lint-26.x branch from 349d4d2 to ffd1f17 Compare October 12, 2026 11:26
@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digest sha256:473b21a966d4b73b1e70373f6dea884a2ee2d3049e3de163ae3aa1d19aa7d9c1
vulnerabilities critical: 15 high: 33 medium: 0 low: 0
platform linux/amd64
size 118 MB
packages 253
📦 Base Image php:8.2-alpine
also known as
  • 8.2-alpine3.24
  • 8.2-cli-alpine
  • 8.2-cli-alpine3.24
  • 8.2.34-alpine
  • 8.2.34-alpine3.24
  • 8.2.34-cli-alpine
  • 8.2.34-cli-alpine3.24
digest sha256:4203d470e6d27ccf2cbfe64a2ea4448d76a28d2325e6db55d76c076de6c1b02b
vulnerabilities critical: 0 high: 2 medium: 8 low: 5 unspecified: 1
critical: 7 high: 6 medium: 0 low: 0 golang.org/x/crypto 0.38.0 (golang)

pkg:golang/golang.org/x/crypto@0.38.0

critical 10.0: CVE--2026--46595 Incorrect Implementation of Authentication Algorithm

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 10
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L
EPSS Score 0.503%
EPSS Percentile 41st percentile
Description

Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped.

critical 9.1: CVE--2026--42508 Improper Certificate Validation

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.654%
EPSS Percentile 50th percentile
Description

Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @Revoked.

critical 9.1: CVE--2026--39834 Integer Overflow or Wraparound

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
EPSS Score 0.637%
EPSS Percentile 49th percentile
Description

When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation.

critical 9.1: CVE--2026--39833 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested.

critical 9.1: CVE--2026--39832 Improper Preservation of Permissions

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.716%
EPSS Percentile 52nd percentile
Description

When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them.

critical 9.1: CVE--2026--39831 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) did not check the User Presence flag. Signatures generated without physical touch were accepted, allowing unattended use of a hardware security key. To restore the previous behavior, return a "no-touch-required" extension in Permissions.Extensions from PublicKeyCallback.

critical 9.1: CVE--2026--39830 Improper Restriction of Operations within the Bounds of a Memory Buffer

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
EPSS Score 0.621%
EPSS Percentile 48th percentile
Description

A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded.

high : CVE--2026--78662

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.431%
EPSS Percentile 35th percentile
Description

Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection.

Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection.

high : CVE--2026--56855

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.500%
EPSS Percentile 41st percentile
Description

Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection.

Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking.

high : CVE--2026--56854

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.437%
EPSS Percentile 36th percentile
Description

The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback.

high 7.5: CVE--2026--46597 Incorrect Type Conversion or Cast

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.620%
EPSS Percentile 48th percentile
Description

An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.

high 7.5: CVE--2026--39829 Improper Validation of Specified Quantity in Input

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2.

high : CVE--2025--47913

Affected range <0.43.0
Fixed version 0.43.0
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

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

critical: 3 high: 7 medium: 0 low: 0 github.com/rabbitmq/amqp091-go 1.10.0 (golang)

pkg:golang/github.com/rabbitmq/amqp091-go@1.10.0

critical 9.5: CVE--2026--77411 Improper Check for Unusual or Exceptional Conditions

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.5
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A critical stream desynchronization vulnerability has been identified in the AMQP wire-protocol parser. When parsing a long string (readLongstr) within a table field, providing a length that exceeds the maximum signed 32-bit integer (2^31 - 1, or roughly 2.1 GiB) triggers an improper error-handling condition. The parser abruptly aborts the read and returns a success status ("",nil) without consuming the specified bytes from the underlying network buffer. This causes all subsequent read operations to become misaligned. The parser interprets arbitrary offsets within the remaining payload bytes as valid AMQP frame headers, leading to potential Remote Code Execution (RCE), data injection, or complete connection hijacking.

Vulnerability Details

The vulnerability exists within the bounds-checking logic of the readLongstr function:

// read.go:113-114 — silent no-op return, bytes left in stream
if length > (^uint32(0) >> 1) {
    return  // returns "", nil, does NOT consume `length` bytes
}

When length evaluates to a value greater than 0x7FFFFFFF:

  1. The function executes a silent return statement.
  2. Because Go utilizes named or zero-value initialization for unassigned return registers, this yields "", nil (indicating a successful read of an empty string).
  3. The Critical Failure: The reader's cursor is not advanced by length bytes. The malformed payload remains sitting in the TCP/buffer stream.

Impact

As readTable continues iterating over the stream under the assumption that the string was successfully parsed, the byte alignment is entirely broken.

  • Parser Desynchronization: Future AMQP frame headers are read from arbitrary offsets inside the attacker-controlled message payload.
  • Payload Reinterpretation: A malicious actor can carefully craft the trailing bytes of the initial payload to perfectly mimic valid AMQP frames (e.g., connection.close, channel.open, or message publishing frames), forcing the client/server to execute unintended actions.

critical 9.4: CVE--2026--77405 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.4
CVSS Vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:L/SA:N
EPSS Score 0.282%
EPSS Percentile 19th percentile
Description

Summary

A structural security weakness exists in the AMQP client's TLS configuration generator (tlsConfigFromURI). When constructing a *tls.Config object from an amqps:// connection URI, the library initializes the structure without explicitly defining the MinVersion field.

While modern versions of the Go compiler toolchain (Go 1.18+) default the implicit minimum version to TLS 1.2, this security posture relies entirely on an implicit toolchain dependency. If the library is compiled using legacy Go toolchains (Go < 1.18), or if a future toolchain introduces fallback behavior, the client could silently negotiate obsolete and insecure TLS 1.0 or TLS 1.1 protocols during connection handshakes with a compromised or malicious AMQP broker.


Vulnerability Details

Mechanism

The vulnerability lies in the lack of an explicit safety floor when assigning configurations inside the URI component:

// Example within uri.go's tlsConfigFromURI
cfg := &tls.Config{
    ServerName: host,
    // MinVersion is left completely unassigned (defaults to 0, or toolchain default)
}

In the Go standard library (crypto/tls), leaving MinVersion: 0 instructs the runtime to choose the toolchain's default minimum. Prior to Go 1.18, this default allowed negotiation down to TLS 1.0. Relying on implicit compiler configurations violates secure coding practices by decoupling the library's security posture from its source code, leaving applications vulnerable based solely on how they are built.

Impact

If a client application is built with a legacy compiler environment or a custom Go runtime, an attacker capable of executing a Man-in-the-Middle (MitM) attack can force the connection to downgrade to TLS 1.0 or 1.1. This exposes the AMQP protocol data stream to well-known cryptographic vulnerabilities (such as BEAST, POODLE, or SWEET32), allowing the attacker to decrypt or alter message payloads, connection parameters, and authentication credentials.


Attack Vector

An attacker performing a network-level downgrade attack can intercept a client connection built under a legacy toolchain:

  1. Interception: A client application compiled on a legacy pipeline attempts to establish an encrypted connection to an AMQP broker.
  2. Protocol Downgrade: The attacker intercepts the TLS Client Hello handshake and forces a downgrade negotiation to TLS 1.0.
  3. Cryptographic Exploitation: Because MinVersion was never explicitly locked to tls.VersionTLS12 by the library, the client accepts the weak cipher suites, allowing the attacker to monitor or manipulate the underlying AMQP session data.

critical 9.1: CVE--2026--77408 Integer Overflow or Wraparound

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.1
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:H/SC:L/SI:H/SA:L
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A data integrity and protocol corruption vulnerability exists in the AMQP client's property serialization logic. When encoding AMQP short string (shortstr) fields—such as identifiers, routing strings, and content metadata—the length of the string is explicitly cast to a fixed-size 8-bit unsigned integer (uint8).

If an application provides a property string exceeding 255 bytes, the length counter silently wraps around (e.g., a length of 300 wraps to 44). As a result, the parser writes only a truncated portion of the string into the outgoing connection buffer without returning an error. This leads to silent data corruption, broken RPC routing, and unpredictable broker-side state behavior.


Vulnerability Details

Mechanism

The vulnerability resides in the wire-level serialization logic for application publishing properties:

// write.go:246
length := uint8(len(b))  // wraps silently when len(b) > 255 (e.g., 300 -> 44)

Because Go allows silent integer truncation during explicit type casting, lengths larger than $2^8 - 1$ lose their most significant bits. The underlying stream writer reads length to determine how many bytes to pull from the buffer. Because no error or boundary check accompanies this truncation, the application believes the full payload was transmitted successfully.

Affected Properties

This truncation behavior affects every standard AMQP field serialized as a shortstr:

  • CorrelationId
  • ReplyTo
  • MessageId
  • Expiration
  • UserId
  • AppId
  • ContentType
  • ContentEncoding
  • Type

Impact

The critical consequence is silent protocol desynchronization at the application layer. The underlying TCP stream remains framed properly (because the shortened length matches the bytes written), but the business logic is corrupted. Distributed transactions, request-reply correlations, and tracing headers are truncated, causing downstream systems to drop messages or route them to incorrect consumers.


Attack Vector

An attacker who can influence metadata fields processed by an upstream application (such as a user-supplied tracking ID or a long content-type header) can exploit this to break system components:

  1. Targeting RPC Routing: A user passes a malicious or overly long CorrelationId of 300 bytes through an application endpoint.
  2. Silent Truncation: The library wraps the length value to 44, transmitting only the first 44 bytes to the rabbitMQ broker.
  3. Broken Correlation: When the service processes the request and responds, the replying consumer attempts to route the message using the full 300-byte identifier. Because the broker only recognizes the truncated 44-byte ID, the reply loop breaks silently, leading to hanging processes or data leaks across transaction boundaries.

high 8.9: CVE--2026--79921 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.550%
EPSS Percentile 44th percentile
Description

Summary
A vulnerability exists in the amqp091-go client library where a compromised or malicious AMQP broker can force the client to allocate resources for and process content body frames that exceed the negotiated frame_max limit. This can lead to unexpected memory consumption or application-layer denial of service (DoS), bypassing the protocol's built-in framing constraints.

Details
During a standard AMQP 0-9-1 connection handshake, the client and the broker negotiate a maximum frame size (frame_max), for example, 4096 bytes.

However, after negotiation, a malicious broker can send a valid basic.deliver sequence containing a content body frame whose header declares a payload size larger than the negotiated frame_max. Instead of enforcing the agreed-upon limit and closing the connection with a frame-error (as mandated by the AMQP 0-9-1 specification), the amqp091-go client:

  1. Accepts the broker-declared oversized frame size.
  2. Allocates memory based on this oversized declaration.
  3. Reads the payload, assembles it into the message, and delivers it to the consumer.

Impact

  • Denial of Service (DoS): If a broker sends extremely large frame sizes, it can trigger significant memory allocations on the client side, potentially leading to Out-Of-Memory (OOM) crashes.
  • Protocol Violation: The client fails to enforce negotiated connection parameters, trusting the broker implicitly even after constraints have been established.

high 8.9: CVE--2026--77412 Incorrect Conversion between Numeric Types

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A vulnerability in the readField function allows a malicious or compromised AMQP server to trigger an unhandled runtime panic in the client application, leading to an immediate crash of the entire process.

Details
When parsing incoming AMQP frames, the readField function processes byte-array fields (type tag 'x') by reading a 32-bit big-endian integer to determine the length of the data payload.

// read.go:253-263
case 'x':
    var len int32
    if err = binary.Read(r, binary.BigEndian, &len); err != nil {
        return nil, err
    }
    value := make([]byte, len)  // PANICS if len < 0

If a server transmits a length value of 0xFFFFFFFF, it is interpreted by the client as a signed 32-bit integer with a value of -1. Passing a negative integer to Go's built-in make() function for slice allocation triggers an unrecoverable runtime panic (panic: len out of range).

Because the reader goroutine handles network I/O without an explicit recover() wrapper, this panic propagates up to the runtime root, abruptly terminating the host application.

Attack Vector / Exploitation Scenario
An attacker capable of spoofing, compromising, or controlling an AMQP broker can exploit this flaw during two primary phases:

  1. Connection Establishment: Sending a malicious connection.start handshake frame containing server-properties with an 'x' type field assigned a negative length.
  2. Message Delivery: Delivering a message payload where the header table contains a malformed field matching the criteria above.

Impact
Availability: High. A single malformed frame can reliably crash the client process, resulting in a persistent Denial of Service (DoS) if the client automatically reconnects and receives the same payload.

high 8.9: CVE--2026--77410 Memory Allocation with Excessive Size Value

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A flaw in the recvContent function allows a malicious AMQP server to trigger an Out-of-Memory (OOM) error, forcing the host operating system or container runtime to immediately terminate the client process.

Vulnerability Details
When receiving message content payloads, the client processes the expected size from the content header framework. The recvContent function attempts to optimize performance by pre-allocating memory for the message body based on the ch.header.Size field, which is a 64-bit unsigned integer (uint64).

// channel.go:495-496
if cap(ch.body) == 0 {
    ch.body = make([]byte, 0, ch.header.Size)  // unbounded
}

The underlying library fails to validate or cap this requested size against any upper boundary—such as the maximum frame size negotiated during connection establishment (FrameMax). If a server specifies an extreme body size (e.g., 2^62 bytes), the Go runtime attempts to allocate an exabyte-scale slice capacity. This immediately exhausts available system memory, causing the operating system's OOM killer to terminate the application.

Attack Vector / Exploitation Scenario

  • Message Delivery Phase: A malicious or compromised AMQP broker sends a standard basic.deliver frame containing a content header with an intentionally inflated body-size variable.
  • Authentication Requirement: No special privileges or authentication bypasses are required; the crash occurs seamlessly during normal message consumption.

Impact

  • Availability: High. Exploded memory consumption results in an instant process termination, destroying application state and availability for all threads sharing the environment.

high 8.9: CVE--2026--77403 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A Denial of Service (DoS) vulnerability exists in the AMQP client's connection negotiation logic. The AMQP specification explicitly mandates a strict minimum frame size of 4096 bytes to prevent pathological packet fragmentation. While the library defines a frameMinSize = 4096 constant, the connection negotiation loop fails to enforce this boundary, blindly accepting whatever maximum frame size (FrameMax) the server advertises during the handshake.

If a client connects to a malicious or compromised AMQP broker that advertises an extremely low FrameMax (such as 1 byte), the negotiation succeeds. Consequently, every subsequent message transmission is forced to splinter into thousands or millions of single-byte frames, causing massive CPU overhead, thread contention, and a near-instantaneous application freeze.


Vulnerability Details

Mechanism

During the connection establishment phase, the client and server negotiate connection parameters—including maximum channel count, heartbeat intervals, and maximum frame sizes. The vulnerability is located where the client accepts the server's tuning parameters:

// Connection negotiation logic maps server values directly without validation
if serverSettings.FrameMax > 0 {
    // VULNERABILITY: Lacks a floor validation check against frameMinSize (4096)
    c.config.FrameMax = serverSettings.FrameMax 
}

Because there is no conditional check asserting that serverSettings.FrameMax >= frameMinSize, a value below the protocol specification floor is successfully registered. When the application later passes data payloads to the frame writer, the chunking algorithm splits the payload using the negotiated FrameMax value as its chunk window divisor.

Impact

When FrameMax is set to an absurdly low threshold (e.g., 1 to 10 bytes):

  • A standard 10 KiB message payload requires tens of thousands of individual write operations and frame headers.
  • The system's CPU becomes entirely bound by frame serialization, memory allocation for frame structures, and context switching within the network output loops.
  • This results in an application-layer Denial of Service (DoS) affecting not just the specific AMQP connection, but potentially the entire host system due to CPU resource starvation.

Attack Vector

An attacker who compromises an upstream AMQP broker, performs a Man-in-the-Middle (MitM) interception, or tricks an application into connecting to an unauthorized external rogue broker can trigger this vulnerability:

  1. Rogue Handshake: The client application connects to an AMQP endpoint controlled by the attacker.
  2. Malicious Parameter Tuning: During the connection.tune phase, the rogue server returns a FrameMax value of 1.
  3. Resource Exhaustion Trigger: The client completes the handshake successfully. As soon as the client attempts to publish a message or process traffic, the internal loop fragments the data into single-byte frames, spiking the host's CPU usage to 100% and disabling the application thread.

high 8.7: CVE--2026--77404 Improper Encoding or Escaping of Output

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L
EPSS Score 0.098%
EPSS Percentile 1st percentile
Description

Summary

A query parameter injection vulnerability exists in the AMQP client's connection URI formatting logic. When generating or parsing connection URIs, TLS-related filesystem paths (such as certificates or keys) are appended directly to the URI's query string using string concatenation rather than secure URL encoding via functions like url.QueryEscape.

If an application handles a TLS file path containing special character delimiters (such as & or =), these characters are interpreted as parameter separators by the URI parser. If the resulting URI.String() output is subsequently re-parsed via ParseURI, the injected fields can silently overwrite or hijack critical configuration parameters, forcing the client to use arbitrary connection settings or alternate TLS files.


Vulnerability Details

Mechanism

The vulnerability lies within the lack of proper escaping when compiling connection string components into a raw URL format:

// Example of insecure string concatenation during URI building
uri := fmt.Sprintf("amqps://user:pass@<!-- -->host/%s?certfile=%s&keyfile=%s", vhost, certPath, keyPath)

Because certPath and keyPath are not passed through url.QueryEscape, special URL characters preserve their control meanings. For instance, if a user supply a certificate path named:
/tmp/cert=foo&keyfile=/evil/path

The generated string translates into:
...?certfile=/tmp/cert=foo&keyfile=/evil/path&keyfile=/original/path

When this string passes back through ParseURI (common in connection re-dial routines or configuration replication steps), standard URL parsing mechanics treat the string as multiple distinct parameters. Depending on map assignment order inside the parser, the injected keys take precedence over the original parameters.

Impact

By manipulating the file paths used for TLS assets, an attacker or compromised local sub-system can:

  • Inject arbitrary alternative options or override protocol settings.
  • Substitute or switch keyfiles, leading to connection failures or the parsing of unauthorized cryptographic assets.
  • Corrupt connection state variables, triggering application-layer failures during connection setup or recovery.

Attack Vector

An attacker who has partial control over directory naming conventions or environmental variables used to specify local infrastructure paths can execute a parameter injection attack:

  1. Path Creation: An attacker sets up a path containing deliberate URL parameter delimiters (e.g., /var/lib/certs/client.crt?cacertfile=/tmp/fake_ca.crt&).
  2. String Generation: The application serializes the active connection state or passes the paths down to an unescaped URI builder function.
  3. Configuration Hijack: The URI string is generated with the injected parameter embedded into the query structure. When the client attempts to reuse or re-parse this connection string during a connection retry or worker spin-up, it parses the injected cacertfile parameter, loading a different, unverified Certificate Authority string.

high 8.2: CVE--2026--77406 Signed to Unsigned Conversion Error

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.2
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L
EPSS Score 0.412%
EPSS Percentile 33rd percentile
Description

Summary

A logic and resource exhaustion vulnerability exists in the AMQP client's Quality of Service (Qos) configuration method. The Qos function accepts signed integers (int) for the prefetchCount and prefetchSize parameters but casts them directly to unsigned integers (uint16 and uint32, respectively) when formatting the wire-level frame.

If a developer passes a negative integer (such as -1) to these parameters—frequently intended as a sentinel value meaning "no change" or "no limit"—the application performs an implicit signed-to-unsigned conversion. This wraps the values to their absolute maximum limit ($65535$ and $4294967295$). Consequently, a consumer expecting restricted message delivery rates is suddenly flooded with an unlimited volume of messages, potentially exhausting memory resources and crashing the application.


Vulnerability Details

Mechanism

The bug manifests during the structural assignment inside the channel's Qos method:

// channel.go:795-796
PrefetchCount: uint16(prefetchCount),  // -1 wraps to 65535
PrefetchSize:  uint32(prefetchSize),   // -1 wraps to 4294967295

In Go, converting a negative signed integer to an unsigned integer shifts the value via two's complement arithmetic. Because no boundary validation or signedness check occurs prior to the cast:

  • Passing -1 for prefetchCount yields a wire value of 65535.
  • Passing -1 for prefetchSize yields a wire value of 4294967295.

Impact

The AMQP broker interprets a prefetch-count of 65535 as an instruction to dispatch messages to the consumer with virtually no concurrency limits.

If the application is processing heavy payloads or relies on strict rate-limiting to maintain stability, this unexpected flood will cause rapid heap memory growth, unmanageable processing queues, and an eventual Out-Of-Memory (OOM) termination.


Attack Vector

An attacker who can manipulate configuration files, environmental variables, or API inputs that dictate client Qos settings can trigger an application-layer Denial of Service:

  1. Malicious Input: An attacker sets a service's prefetch configuration parameter to -1.
  2. Implicit Overflow: The application initializes the channel, executes Qos(-1, ...), and transmits an unintended maximum-capacity request to the RabbitMQ/AMQP broker.
  3. Consumer Exhaustion: The broker flushes the entire contents of the queue directly into the client consumer's network buffer, bypassing expected application concurrency barriers and inducing a crash.

high 7.0: CVE--2026--77407 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:L/SA:L
EPSS Score 0.128%
EPSS Percentile 2nd percentile
Description

Summary

An information disclosure vulnerability exists in the AMQP client implementation's authentication handling configuration. Following a successful connection handshake, the Connection.Config.SASL field stores the Authentication implementation state used to establish the session.

For standard PLAIN authentication, this state utilizes the PlainAuth struct, which defines both Username and Password as publicly exported, plaintext string fields. Because this sensitive data is retained permanently in-memory within an exported field structure, any peripheral code, internal package, reflective logger, dependency, or automated debugging utility with access to the core *Connection object can read and expose the raw credentials.


Vulnerability Details

Mechanism

The vulnerability stems from the structural design of the configuration storage used during and after the AMQP handshake:

// auth.go:21-23
type PlainAuth struct {
    Username string
    Password string  // exported plaintext
}

When an application initializes a connection, the PlainAuth object is deeply nested inside the configuration structure (Connection.Config). Even after the handshake concludes and authentication is complete, this structure persists natively in-memory for the duration of the network connection's lifecycle.

Because Password is an exported string field, standard automated inspection mechanisms can read its value without restriction.

Affected Code Paths & Integrations

Any sub-component or library that traverses or reads the *Connection object will inadvertently read the plaintext password, including:

  • Reflective Loggers: Structured logging frameworks that serialize nested configuration structs into JSON/Log formats.
  • APM & Performance Agents: Automated telemetry or Application Performance Monitoring tools that capture state snapshots.
  • Debugging & Panic Handlers: Mid-tier software or dump libraries designed to capture goroutine state or print deep struct hierarchies upon program errors or signals.

Impact

The credential remains vulnerable to leak paths into logging pipelines, log aggregators, security information and event management (SIEM) systems, or standard output. Once transmitted to external log infrastructure, these credentials become accessible to unprivileged operators or any actor with access to log archives.


Attack Vector

An attacker does not necessarily need direct remote code execution to exploit this flaw; instead, the vulnerability acts as a credential harvesting vector inside multi-tenant environments or via secondary log exposure:

  1. Configuration Dump: An operator configures a standard reflective logger or third-party APM package to capture system state parameters, including the active AMQP *Connection object.
  2. Reflective Access: The inspection engine uses Go's reflect package to walk the structural hierarchy, pulling the string value from Connection.Config.SASL.(*PlainAuth).Password.
  3. Exfiltration: The plaintext password is written to standard system logs, which are then scraped into shared logging aggregators, exposing production infrastructure credentials to a wider audience.
critical: 2 high: 8 medium: 0 low: 0 stdlib 1.26.8 (golang)

pkg:golang/stdlib@1.26.8

critical : CVE--2026--56857

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.493%
EPSS Percentile 41st percentile
Description

On Windows, when the target of Root.Mkdir or Root.MkdirAll is a junction pointing to an empty location, the operation can create a directory at the junction target even when that target is located outside the root. This only applies to operations where the last path component is a junction (path/to/junction, but not path/junction/target).

critical : CVE--2026--78663

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--97031

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.394%
EPSS Percentile 32nd percentile
Description

Multiple ECH outer extension references are not permitted under RFC 9849; previously, a client could send a well-crafted packet that could trigger memory exhaustion in the server process by specifying multiple references.

We now reject these as malformed and curb the memory amplification vector as a result.

high : CVE--2026--94440

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.404%
EPSS Percentile 33rd percentile
Description

Parsing a multipart form can bypass memory limits and read an arbitrarily long line into memory when the remaining limit at the start of a part is less than 400 bytes.

high : CVE--2026--94439

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.315%
EPSS Percentile 23rd percentile
Description

When an HTTP server handler sends a 2xx response to an HTTP/1 CONNECT request and returns without hijacking the connection, the server improperly continues to read and serve requests from the connection. Since a 2xx response to an HTTP/1 CONNECT converts the connection into a tunnel, the server should not treat the connection as continuing to contain HTTP.

The impact of this misbehavior is mostly limited to potential request smuggling, where an intermediate proxy considers the data on the connection to be tunneled and the server considers it to be HTTP.

high : CVE--2026--78669

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78667

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.379%
EPSS Percentile 30th percentile
Description

When parsing a Range header containing a large number of small ranges, FileServer(FS), ServeContent, and ServeFile(FS) can consume an excessive amount of CPU.

high : CVE--2026--78660

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--56866

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.309%
EPSS Percentile 22nd percentile
Description

When http.Transport sends an HTTP/1 CONNECT request with a non-empty Request.Body, it writes the body directly to the connection without framing after the request headers. If the server rejects the CONNECT request with a non-2xx keep-alive response, Transport returns the connection to the idle pool. Because CONNECT requests do not have a request body, the server may interpret the trailing body bytes as a subsequent pipelined HTTP/1.1 request on the connection, leaving the pooled connection desynchronized and causing the next caller that reuses it to read the response to the injected request. In reverse proxies (including httputil.ReverseProxy) that forward CONNECT requests through a shared Transport, this can lead to cross-user response poisoning.

critical: 2 high: 5 medium: 0 low: 0 golang.org/x/net 0.40.0 (golang)

pkg:golang/golang.org/x/net@0.40.0

critical : CVE--2026--39821

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.692%
EPSS Percentile 51st percentile
Description

The ToASCII and ToUnicode functions incorrectly accept Punycode-encoded labels that decode to an ASCII-only label. For example, ToUnicode("xn--example-.com") incorrectly returns the name "example.com" rather than an error.

This behavior can lead to privilege escalation in programs using the idna package. For example, a program which performs privilege checks on the ASCII hostname may reject "example.com" but permit "xn--example-.com". If that program subsequently converts the ASCII hostname to Unicode, it will inadvertently permits access to the Unicode name "example.com".

critical : CVE--2026--78663

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--78669

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78660

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--46600

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

Parsing an invalid SVCB or HTTPS RR can panic when the size of a parameter value overflows the message buffer.

high : CVE--2026--33814

Affected range <0.53.0
Fixed version 0.53.0
EPSS Score 0.781%
EPSS Percentile 55th percentile
Description

When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a value of 0.

critical: 1 high: 3 medium: 0 low: 0 google.golang.org/grpc 1.71.0 (golang)

pkg:golang/google.golang.org/grpc@1.71.0

critical 9.1: CVE--2026--33186 Improper Authorization

Affected range <1.79.3
Fixed version 1.79.3
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 1.625%
EPSS Percentile 75th percentile
Description

Impact

What kind of vulnerability is it? Who is impacted?

It is an Authorization Bypass resulting from Improper Input Validation of the HTTP/2 :path pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting requests where the :path omitted the mandatory leading slash (e.g., Service/Method instead of /Service/Method). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official grpc/authz package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with /) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present.

Who is impacted?
This affects gRPC-Go servers that meet both of the following criteria:

  1. They use path-based authorization interceptors, such as the official RBAC implementation in google.golang.org/grpc/authz or custom interceptors relying on info.FullMethod or grpc.Method(ctx).
  2. Their security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed :path headers directly to the gRPC server.

Patches

Has the problem been patched? What versions should users upgrade to?

Yes, the issue has been patched. The fix ensures that any request with a :path that does not start with a leading slash is immediately rejected with a codes.Unimplemented error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):

  • v1.79.3
  • The latest master branch.

It is recommended that all users employing path-based authorization (especially grpc/authz) upgrade as soon as the patch is available in a tagged release.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods:

1. Use a Validating Interceptor (Recommended Mitigation)

Add an "outermost" interceptor to your server that validates the path before any other authorization logic runs:

func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)

2. Infrastructure-Level Normalization

If your gRPC server is behind a reverse proxy or load balancer (such as Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to enforce strict HTTP/2 compliance for pseudo-headers and reject or normalize requests where the :path header does not start with a leading slash.

3. Policy Hardening

Switch to a "default deny" posture in your authorization policies (explicitly listing all allowed paths and denying everything else) to reduce the risk of bypasses via malformed inputs.

high 8.8: GHSA--hrxh--6v49--42gf Uncaught Exception

Affected range <1.82.1
Fixed version 1.82.1
CVSS Score 8.8
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Description

Multiple security vulnerabilities have been identified and addressed in grpc-go affecting the xDS RBAC authorization engine (internal/xds/rbac) and the HTTP/2 transport server implementation (internal/transport). These vulnerabilities could result in:

  • Authorization Bypass (Fail-Open) when translating xDS RBAC policies containing Metadata or RequestedServerName fields.
  • Denial of Service (High CPU Consumption) due to an HTTP/2 Rapid Reset mitigation bypass during client-initiated stream resets.
  • Denial of Service (Server Panic) when parsing crafted xDS RBAC policies containing NOT rules around unsupported fields.

Impact

What kind of vulnerability is it? Who is impacted?

xDS RBAC Authorization Bypass via Metadata & RequestedServerName matchers

  • Affected Component: xDS RBAC
  • Impact: When building policy matchers for gRPC RBAC from xDS configurations, unsupported permission and principal rules (specifically Metadata and RequestedServerName) were silently ignored and treated as no-ops.
    • If an authorization policy relied purely on these matchers for access control, treating those rules as no-ops effectively removed the restrictions.
  • If these unsupported rules were nested inside logical NOT rules (Permission_NotRule / Principal_NotId) or multi-condition OR/AND rules, silently dropping them changed the boolean logic flow of the authorization engine.

As a result, policy evaluation decisions could fail open, allowing unauthorized clients to access protected gRPC services or resources.

HTTP/2 Rapid Reset Mitigation Bypass / Denial of Service via Stream Aborts

  • Affected Component: HTTP/2 transport
  • Impact: Earlier mitigations in grpc-go for HTTP/2 Rapid Reset only applied threshold checks to items that directly resulted in control frames being written back to the wire, such as SETTINGS ACKs or server-initiated RST_STREAMs.

When a client initiated a rapid flood of stream creation (HEADERS) immediately followed by stream termination RST_STREAM, items queued up in the control buffer without counting against the transport response frame threshold. An attacker can repeatedly trigger this flood sequence to bypass reader blocking, resulting in high CPU usage, and Denial of Service (DoS).

Denial of Service (Panic) in xDS RBAC Engine via Unsupported Fields inside NOT Rules

  • Affected Component: xDS RBAC
  • Impact: The xDS RBAC policy translators recursively generate matchers for nested rules. When a NOT rule wrapped an unsupported or unhandled field (such as SourcedMetadata), the recursive step returned an empty matcher. This could result in a runtime panic when the RBAC engine attempts to authorize an incoming request.

An attacker or misconfigured/malicious xDS management server delivering an LDS/RDS update containing a NOT rule around an unhandled field causes the gRPC server process to crash immediately (CWE-248 / Denial of Service).

Patches

Has the problem been patched? What versions should users upgrade to?

All three issues have been fixed in master and will be released in 1.82.1 shortly.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

If upgrading grpc-go immediately is not possible, apply the following workarounds based on your deployment architecture:

  • For xDS RBAC Vulnerabilities & Panics: Ensure that upstream xDS management servers do not push RBAC policies containing Metadata, RequestedServerName, or NOT rules wrapping unsupported fields (such as SourcedMetadata) to grpc-go servers.
  • For HTTP/2 Rapid Reset DOS: Configure upstream reverse proxies or load balancers (such as Envoy) with strict HTTP/2 max_concurrent_streams limits and active rate limiting on RST_STREAM frequency per connection.

Severity

Vulnerability Qualitative Severity Approximate CVSS v3.1 Score Primary Impact
xDS RBAC Authorization Bypass High 8.2 Unauthorized Access / Fail-Open
HTTP/2 Rapid Reset DOS Bypass High 7.5 High CPU Consumption / Denial of Service
xDS RBAC Engine Server Panic Medium 5.9 Process Crash / Denial of Service

high 8.7: CVE--2026--84445 Improper Validation of Array Index

Affected range <1.82.2
Fixed version 1.82.2
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.641%
EPSS Percentile 49th percentile
Description

A vulnerability exists in gRPC-Go servers configured with xds.NewGRPCServer() where a crafted request missing both :authority and Host headers can cause a server panic, resulting in a Denial of Service (DoS).

Servers built with xds.NewGRPCServer install an xDS routing interceptor on every RPC. This interceptor looks up the request’s :authority header to pick a virtual host. The HTTP/2 server transport previously accepted requests that had neither :authority nor Host. When this happened, the xDS routing interceptor attempted to access the first element of an empty slice of authorities, leading to an index out of bounds panic. Since the per-RPC goroutine does not recover from panics, the entire server process would terminate.

This panic occurs in the interceptor pipeline, meaning the transport credentials handshake (TLS, mTLS, or ALTS) and HTTP/2 connection establishment must complete successfully before the crafted request can reach this logic.

  • Insecure/Standard TLS: If the server permits insecure (plaintext) connections or standard credentials (where client certs are not checked), any unauthenticated remote attacker can trigger the crash.
  • mTLS / ALTS: If strict transport-level authentication is enforced at the network edge or transport layer (e.g., requiring a valid client certificate), the attacker must possess valid transport credentials to initiate the stream and trigger the panic.

Impact

An attacker can cause a complete outage of the gRPC server by sending a request missing both :authority and Host headers, provided they can successfully establish a transport connection.

Patches

The issue has been addressed in master (and backported to 1.84.0, 1.83.2 and 1.82.2). The fix updates the HTTP/2 transport layer to reject requests missing both :authority and Host headers early, maintaining consistency with and other gRPC language implementations.

high 8.7: CVE--2026--84304 Uncontrolled Resource Consumption

Affected range <=1.83.0
Fixed version 1.83.1
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
EPSS Score 0.609%
EPSS Percentile 48th percentile
Description

Impact

An unauthenticated remote attacker can initiate a gRPC stream and purposefully fragment their payload into millions of tiny (e.g., 1-byte) HTTP/2 DATA frames. Even if the total payload volume falls within the configured connection and stream flow-control windows, each independent fragment incurs memory overhead due to internal tracking structures and queue allocation.

Repeated fragmentation massively inflates the heap space consumed by the stream. An attacker multiplexing multiple concurrent streams can exhaust the memory bounds of the runtime, forcing a runtime panic or OutOfMemory condition and leading to a remote Denial of Service (DoS).

Patches

The change to fix this issue is merged in master and a patch release, 1.83.1, has been published that contains this fix.

Workarounds

This vulnerability is mitigated by implementing receive buffer compaction. Consecutive small data buffers are automatically coalesced into larger buffers from a shared pool once the overhead is perceived to be excessive relative to actual payload data, drastically minimizing per-frame memory overheads.

This behavior is enabled by default. A temporary escape hatch is provided via the environment variable GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION=false to disable the feature if unforeseen issues arise, but it will be removed in a future release.

critical: 0 high: 2 medium: 0 low: 0 expat 2.8.5-r0 (apk)

pkg:apk/alpine/expat@2.8.5-r0?os_name=alpine&os_version=3.24

high : CVE--2026--77214

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

high : CVE--2026--102633

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.348%
EPSS Percentile 26th percentile
Description
critical: 0 high: 1 medium: 0 low: 0 golang.org/x/text 0.25.0 (golang)

pkg:golang/golang.org/x/text@0.25.0

high : CVE--2026--56851

Affected range <0.41.0
Fixed version 0.41.0
EPSS Score 0.335%
EPSS Percentile 25th percentile
Description

The Nickname profile can panic with an out-of-bounds slice error when transforming crafted input into a short destination buffer.

critical: 0 high: 1 medium: 0 low: 0 github.com/antchfx/xpath 1.3.3 (golang)

pkg:golang/github.com/antchfx/xpath@1.3.3

high 7.5: CVE--2026--32287 Uncontrolled Resource Consumption

Affected range <1.3.6
Fixed version 1.3.6
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.695%
EPSS Percentile 52nd percentile
Description

Boolean expressions that evaluate to true can cause an infinite loop in logicalQuery.Select, leading to 100% CPU usage. This can be triggered by top-level selectors such as "1=1" or "true()".

@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digest sha256:d6bc01b21de3110b799dd4d0ad1088eae86d4087d0f106da25e57708e2e99df9
vulnerabilities critical: 15 high: 33 medium: 0 low: 0
platform linux/amd64
size 143 MB
packages 283
📦 Base Image php:8.4-alpine
also known as
  • 8.4-alpine3.24
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.24
  • 8.4.26-alpine
  • 8.4.26-alpine3.24
  • 8.4.26-cli-alpine
  • 8.4.26-cli-alpine3.24
digest sha256:7cbe0a1996d1b77fc8fdc6547f35b8372fd57489c54aac3d634434ed2e851e7a
vulnerabilities critical: 0 high: 2 medium: 8 low: 5 unspecified: 1
critical: 7 high: 6 medium: 0 low: 0 golang.org/x/crypto 0.38.0 (golang)

pkg:golang/golang.org/x/crypto@0.38.0

critical 10.0: CVE--2026--46595 Incorrect Implementation of Authentication Algorithm

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 10
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L
EPSS Score 0.503%
EPSS Percentile 41st percentile
Description

Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped.

critical 9.1: CVE--2026--42508 Improper Certificate Validation

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.654%
EPSS Percentile 50th percentile
Description

Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @Revoked.

critical 9.1: CVE--2026--39834 Integer Overflow or Wraparound

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
EPSS Score 0.637%
EPSS Percentile 49th percentile
Description

When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation.

critical 9.1: CVE--2026--39833 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested.

critical 9.1: CVE--2026--39832 Improper Preservation of Permissions

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.716%
EPSS Percentile 52nd percentile
Description

When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them.

critical 9.1: CVE--2026--39831 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) did not check the User Presence flag. Signatures generated without physical touch were accepted, allowing unattended use of a hardware security key. To restore the previous behavior, return a "no-touch-required" extension in Permissions.Extensions from PublicKeyCallback.

critical 9.1: CVE--2026--39830 Improper Restriction of Operations within the Bounds of a Memory Buffer

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
EPSS Score 0.621%
EPSS Percentile 48th percentile
Description

A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded.

high : CVE--2026--78662

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.431%
EPSS Percentile 35th percentile
Description

Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection.

Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection.

high : CVE--2026--56855

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.500%
EPSS Percentile 41st percentile
Description

Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection.

Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking.

high : CVE--2026--56854

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.437%
EPSS Percentile 36th percentile
Description

The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback.

high 7.5: CVE--2026--46597 Incorrect Type Conversion or Cast

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.620%
EPSS Percentile 48th percentile
Description

An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.

high 7.5: CVE--2026--39829 Improper Validation of Specified Quantity in Input

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2.

high : CVE--2025--47913

Affected range <0.43.0
Fixed version 0.43.0
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

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

critical: 3 high: 7 medium: 0 low: 0 github.com/rabbitmq/amqp091-go 1.10.0 (golang)

pkg:golang/github.com/rabbitmq/amqp091-go@1.10.0

critical 9.5: CVE--2026--77411 Improper Check for Unusual or Exceptional Conditions

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.5
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A critical stream desynchronization vulnerability has been identified in the AMQP wire-protocol parser. When parsing a long string (readLongstr) within a table field, providing a length that exceeds the maximum signed 32-bit integer (2^31 - 1, or roughly 2.1 GiB) triggers an improper error-handling condition. The parser abruptly aborts the read and returns a success status ("",nil) without consuming the specified bytes from the underlying network buffer. This causes all subsequent read operations to become misaligned. The parser interprets arbitrary offsets within the remaining payload bytes as valid AMQP frame headers, leading to potential Remote Code Execution (RCE), data injection, or complete connection hijacking.

Vulnerability Details

The vulnerability exists within the bounds-checking logic of the readLongstr function:

// read.go:113-114 — silent no-op return, bytes left in stream
if length > (^uint32(0) >> 1) {
    return  // returns "", nil, does NOT consume `length` bytes
}

When length evaluates to a value greater than 0x7FFFFFFF:

  1. The function executes a silent return statement.
  2. Because Go utilizes named or zero-value initialization for unassigned return registers, this yields "", nil (indicating a successful read of an empty string).
  3. The Critical Failure: The reader's cursor is not advanced by length bytes. The malformed payload remains sitting in the TCP/buffer stream.

Impact

As readTable continues iterating over the stream under the assumption that the string was successfully parsed, the byte alignment is entirely broken.

  • Parser Desynchronization: Future AMQP frame headers are read from arbitrary offsets inside the attacker-controlled message payload.
  • Payload Reinterpretation: A malicious actor can carefully craft the trailing bytes of the initial payload to perfectly mimic valid AMQP frames (e.g., connection.close, channel.open, or message publishing frames), forcing the client/server to execute unintended actions.

critical 9.4: CVE--2026--77405 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.4
CVSS Vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:L/SA:N
EPSS Score 0.282%
EPSS Percentile 19th percentile
Description

Summary

A structural security weakness exists in the AMQP client's TLS configuration generator (tlsConfigFromURI). When constructing a *tls.Config object from an amqps:// connection URI, the library initializes the structure without explicitly defining the MinVersion field.

While modern versions of the Go compiler toolchain (Go 1.18+) default the implicit minimum version to TLS 1.2, this security posture relies entirely on an implicit toolchain dependency. If the library is compiled using legacy Go toolchains (Go < 1.18), or if a future toolchain introduces fallback behavior, the client could silently negotiate obsolete and insecure TLS 1.0 or TLS 1.1 protocols during connection handshakes with a compromised or malicious AMQP broker.


Vulnerability Details

Mechanism

The vulnerability lies in the lack of an explicit safety floor when assigning configurations inside the URI component:

// Example within uri.go's tlsConfigFromURI
cfg := &tls.Config{
    ServerName: host,
    // MinVersion is left completely unassigned (defaults to 0, or toolchain default)
}

In the Go standard library (crypto/tls), leaving MinVersion: 0 instructs the runtime to choose the toolchain's default minimum. Prior to Go 1.18, this default allowed negotiation down to TLS 1.0. Relying on implicit compiler configurations violates secure coding practices by decoupling the library's security posture from its source code, leaving applications vulnerable based solely on how they are built.

Impact

If a client application is built with a legacy compiler environment or a custom Go runtime, an attacker capable of executing a Man-in-the-Middle (MitM) attack can force the connection to downgrade to TLS 1.0 or 1.1. This exposes the AMQP protocol data stream to well-known cryptographic vulnerabilities (such as BEAST, POODLE, or SWEET32), allowing the attacker to decrypt or alter message payloads, connection parameters, and authentication credentials.


Attack Vector

An attacker performing a network-level downgrade attack can intercept a client connection built under a legacy toolchain:

  1. Interception: A client application compiled on a legacy pipeline attempts to establish an encrypted connection to an AMQP broker.
  2. Protocol Downgrade: The attacker intercepts the TLS Client Hello handshake and forces a downgrade negotiation to TLS 1.0.
  3. Cryptographic Exploitation: Because MinVersion was never explicitly locked to tls.VersionTLS12 by the library, the client accepts the weak cipher suites, allowing the attacker to monitor or manipulate the underlying AMQP session data.

critical 9.1: CVE--2026--77408 Integer Overflow or Wraparound

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.1
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:H/SC:L/SI:H/SA:L
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A data integrity and protocol corruption vulnerability exists in the AMQP client's property serialization logic. When encoding AMQP short string (shortstr) fields—such as identifiers, routing strings, and content metadata—the length of the string is explicitly cast to a fixed-size 8-bit unsigned integer (uint8).

If an application provides a property string exceeding 255 bytes, the length counter silently wraps around (e.g., a length of 300 wraps to 44). As a result, the parser writes only a truncated portion of the string into the outgoing connection buffer without returning an error. This leads to silent data corruption, broken RPC routing, and unpredictable broker-side state behavior.


Vulnerability Details

Mechanism

The vulnerability resides in the wire-level serialization logic for application publishing properties:

// write.go:246
length := uint8(len(b))  // wraps silently when len(b) > 255 (e.g., 300 -> 44)

Because Go allows silent integer truncation during explicit type casting, lengths larger than $2^8 - 1$ lose their most significant bits. The underlying stream writer reads length to determine how many bytes to pull from the buffer. Because no error or boundary check accompanies this truncation, the application believes the full payload was transmitted successfully.

Affected Properties

This truncation behavior affects every standard AMQP field serialized as a shortstr:

  • CorrelationId
  • ReplyTo
  • MessageId
  • Expiration
  • UserId
  • AppId
  • ContentType
  • ContentEncoding
  • Type

Impact

The critical consequence is silent protocol desynchronization at the application layer. The underlying TCP stream remains framed properly (because the shortened length matches the bytes written), but the business logic is corrupted. Distributed transactions, request-reply correlations, and tracing headers are truncated, causing downstream systems to drop messages or route them to incorrect consumers.


Attack Vector

An attacker who can influence metadata fields processed by an upstream application (such as a user-supplied tracking ID or a long content-type header) can exploit this to break system components:

  1. Targeting RPC Routing: A user passes a malicious or overly long CorrelationId of 300 bytes through an application endpoint.
  2. Silent Truncation: The library wraps the length value to 44, transmitting only the first 44 bytes to the rabbitMQ broker.
  3. Broken Correlation: When the service processes the request and responds, the replying consumer attempts to route the message using the full 300-byte identifier. Because the broker only recognizes the truncated 44-byte ID, the reply loop breaks silently, leading to hanging processes or data leaks across transaction boundaries.

high 8.9: CVE--2026--79921 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.550%
EPSS Percentile 44th percentile
Description

Summary
A vulnerability exists in the amqp091-go client library where a compromised or malicious AMQP broker can force the client to allocate resources for and process content body frames that exceed the negotiated frame_max limit. This can lead to unexpected memory consumption or application-layer denial of service (DoS), bypassing the protocol's built-in framing constraints.

Details
During a standard AMQP 0-9-1 connection handshake, the client and the broker negotiate a maximum frame size (frame_max), for example, 4096 bytes.

However, after negotiation, a malicious broker can send a valid basic.deliver sequence containing a content body frame whose header declares a payload size larger than the negotiated frame_max. Instead of enforcing the agreed-upon limit and closing the connection with a frame-error (as mandated by the AMQP 0-9-1 specification), the amqp091-go client:

  1. Accepts the broker-declared oversized frame size.
  2. Allocates memory based on this oversized declaration.
  3. Reads the payload, assembles it into the message, and delivers it to the consumer.

Impact

  • Denial of Service (DoS): If a broker sends extremely large frame sizes, it can trigger significant memory allocations on the client side, potentially leading to Out-Of-Memory (OOM) crashes.
  • Protocol Violation: The client fails to enforce negotiated connection parameters, trusting the broker implicitly even after constraints have been established.

high 8.9: CVE--2026--77412 Incorrect Conversion between Numeric Types

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A vulnerability in the readField function allows a malicious or compromised AMQP server to trigger an unhandled runtime panic in the client application, leading to an immediate crash of the entire process.

Details
When parsing incoming AMQP frames, the readField function processes byte-array fields (type tag 'x') by reading a 32-bit big-endian integer to determine the length of the data payload.

// read.go:253-263
case 'x':
    var len int32
    if err = binary.Read(r, binary.BigEndian, &len); err != nil {
        return nil, err
    }
    value := make([]byte, len)  // PANICS if len < 0

If a server transmits a length value of 0xFFFFFFFF, it is interpreted by the client as a signed 32-bit integer with a value of -1. Passing a negative integer to Go's built-in make() function for slice allocation triggers an unrecoverable runtime panic (panic: len out of range).

Because the reader goroutine handles network I/O without an explicit recover() wrapper, this panic propagates up to the runtime root, abruptly terminating the host application.

Attack Vector / Exploitation Scenario
An attacker capable of spoofing, compromising, or controlling an AMQP broker can exploit this flaw during two primary phases:

  1. Connection Establishment: Sending a malicious connection.start handshake frame containing server-properties with an 'x' type field assigned a negative length.
  2. Message Delivery: Delivering a message payload where the header table contains a malformed field matching the criteria above.

Impact
Availability: High. A single malformed frame can reliably crash the client process, resulting in a persistent Denial of Service (DoS) if the client automatically reconnects and receives the same payload.

high 8.9: CVE--2026--77410 Memory Allocation with Excessive Size Value

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A flaw in the recvContent function allows a malicious AMQP server to trigger an Out-of-Memory (OOM) error, forcing the host operating system or container runtime to immediately terminate the client process.

Vulnerability Details
When receiving message content payloads, the client processes the expected size from the content header framework. The recvContent function attempts to optimize performance by pre-allocating memory for the message body based on the ch.header.Size field, which is a 64-bit unsigned integer (uint64).

// channel.go:495-496
if cap(ch.body) == 0 {
    ch.body = make([]byte, 0, ch.header.Size)  // unbounded
}

The underlying library fails to validate or cap this requested size against any upper boundary—such as the maximum frame size negotiated during connection establishment (FrameMax). If a server specifies an extreme body size (e.g., 2^62 bytes), the Go runtime attempts to allocate an exabyte-scale slice capacity. This immediately exhausts available system memory, causing the operating system's OOM killer to terminate the application.

Attack Vector / Exploitation Scenario

  • Message Delivery Phase: A malicious or compromised AMQP broker sends a standard basic.deliver frame containing a content header with an intentionally inflated body-size variable.
  • Authentication Requirement: No special privileges or authentication bypasses are required; the crash occurs seamlessly during normal message consumption.

Impact

  • Availability: High. Exploded memory consumption results in an instant process termination, destroying application state and availability for all threads sharing the environment.

high 8.9: CVE--2026--77403 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A Denial of Service (DoS) vulnerability exists in the AMQP client's connection negotiation logic. The AMQP specification explicitly mandates a strict minimum frame size of 4096 bytes to prevent pathological packet fragmentation. While the library defines a frameMinSize = 4096 constant, the connection negotiation loop fails to enforce this boundary, blindly accepting whatever maximum frame size (FrameMax) the server advertises during the handshake.

If a client connects to a malicious or compromised AMQP broker that advertises an extremely low FrameMax (such as 1 byte), the negotiation succeeds. Consequently, every subsequent message transmission is forced to splinter into thousands or millions of single-byte frames, causing massive CPU overhead, thread contention, and a near-instantaneous application freeze.


Vulnerability Details

Mechanism

During the connection establishment phase, the client and server negotiate connection parameters—including maximum channel count, heartbeat intervals, and maximum frame sizes. The vulnerability is located where the client accepts the server's tuning parameters:

// Connection negotiation logic maps server values directly without validation
if serverSettings.FrameMax > 0 {
    // VULNERABILITY: Lacks a floor validation check against frameMinSize (4096)
    c.config.FrameMax = serverSettings.FrameMax 
}

Because there is no conditional check asserting that serverSettings.FrameMax >= frameMinSize, a value below the protocol specification floor is successfully registered. When the application later passes data payloads to the frame writer, the chunking algorithm splits the payload using the negotiated FrameMax value as its chunk window divisor.

Impact

When FrameMax is set to an absurdly low threshold (e.g., 1 to 10 bytes):

  • A standard 10 KiB message payload requires tens of thousands of individual write operations and frame headers.
  • The system's CPU becomes entirely bound by frame serialization, memory allocation for frame structures, and context switching within the network output loops.
  • This results in an application-layer Denial of Service (DoS) affecting not just the specific AMQP connection, but potentially the entire host system due to CPU resource starvation.

Attack Vector

An attacker who compromises an upstream AMQP broker, performs a Man-in-the-Middle (MitM) interception, or tricks an application into connecting to an unauthorized external rogue broker can trigger this vulnerability:

  1. Rogue Handshake: The client application connects to an AMQP endpoint controlled by the attacker.
  2. Malicious Parameter Tuning: During the connection.tune phase, the rogue server returns a FrameMax value of 1.
  3. Resource Exhaustion Trigger: The client completes the handshake successfully. As soon as the client attempts to publish a message or process traffic, the internal loop fragments the data into single-byte frames, spiking the host's CPU usage to 100% and disabling the application thread.

high 8.7: CVE--2026--77404 Improper Encoding or Escaping of Output

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L
EPSS Score 0.098%
EPSS Percentile 1st percentile
Description

Summary

A query parameter injection vulnerability exists in the AMQP client's connection URI formatting logic. When generating or parsing connection URIs, TLS-related filesystem paths (such as certificates or keys) are appended directly to the URI's query string using string concatenation rather than secure URL encoding via functions like url.QueryEscape.

If an application handles a TLS file path containing special character delimiters (such as & or =), these characters are interpreted as parameter separators by the URI parser. If the resulting URI.String() output is subsequently re-parsed via ParseURI, the injected fields can silently overwrite or hijack critical configuration parameters, forcing the client to use arbitrary connection settings or alternate TLS files.


Vulnerability Details

Mechanism

The vulnerability lies within the lack of proper escaping when compiling connection string components into a raw URL format:

// Example of insecure string concatenation during URI building
uri := fmt.Sprintf("amqps://user:pass@<!-- -->host/%s?certfile=%s&keyfile=%s", vhost, certPath, keyPath)

Because certPath and keyPath are not passed through url.QueryEscape, special URL characters preserve their control meanings. For instance, if a user supply a certificate path named:
/tmp/cert=foo&keyfile=/evil/path

The generated string translates into:
...?certfile=/tmp/cert=foo&keyfile=/evil/path&keyfile=/original/path

When this string passes back through ParseURI (common in connection re-dial routines or configuration replication steps), standard URL parsing mechanics treat the string as multiple distinct parameters. Depending on map assignment order inside the parser, the injected keys take precedence over the original parameters.

Impact

By manipulating the file paths used for TLS assets, an attacker or compromised local sub-system can:

  • Inject arbitrary alternative options or override protocol settings.
  • Substitute or switch keyfiles, leading to connection failures or the parsing of unauthorized cryptographic assets.
  • Corrupt connection state variables, triggering application-layer failures during connection setup or recovery.

Attack Vector

An attacker who has partial control over directory naming conventions or environmental variables used to specify local infrastructure paths can execute a parameter injection attack:

  1. Path Creation: An attacker sets up a path containing deliberate URL parameter delimiters (e.g., /var/lib/certs/client.crt?cacertfile=/tmp/fake_ca.crt&).
  2. String Generation: The application serializes the active connection state or passes the paths down to an unescaped URI builder function.
  3. Configuration Hijack: The URI string is generated with the injected parameter embedded into the query structure. When the client attempts to reuse or re-parse this connection string during a connection retry or worker spin-up, it parses the injected cacertfile parameter, loading a different, unverified Certificate Authority string.

high 8.2: CVE--2026--77406 Signed to Unsigned Conversion Error

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.2
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L
EPSS Score 0.412%
EPSS Percentile 33rd percentile
Description

Summary

A logic and resource exhaustion vulnerability exists in the AMQP client's Quality of Service (Qos) configuration method. The Qos function accepts signed integers (int) for the prefetchCount and prefetchSize parameters but casts them directly to unsigned integers (uint16 and uint32, respectively) when formatting the wire-level frame.

If a developer passes a negative integer (such as -1) to these parameters—frequently intended as a sentinel value meaning "no change" or "no limit"—the application performs an implicit signed-to-unsigned conversion. This wraps the values to their absolute maximum limit ($65535$ and $4294967295$). Consequently, a consumer expecting restricted message delivery rates is suddenly flooded with an unlimited volume of messages, potentially exhausting memory resources and crashing the application.


Vulnerability Details

Mechanism

The bug manifests during the structural assignment inside the channel's Qos method:

// channel.go:795-796
PrefetchCount: uint16(prefetchCount),  // -1 wraps to 65535
PrefetchSize:  uint32(prefetchSize),   // -1 wraps to 4294967295

In Go, converting a negative signed integer to an unsigned integer shifts the value via two's complement arithmetic. Because no boundary validation or signedness check occurs prior to the cast:

  • Passing -1 for prefetchCount yields a wire value of 65535.
  • Passing -1 for prefetchSize yields a wire value of 4294967295.

Impact

The AMQP broker interprets a prefetch-count of 65535 as an instruction to dispatch messages to the consumer with virtually no concurrency limits.

If the application is processing heavy payloads or relies on strict rate-limiting to maintain stability, this unexpected flood will cause rapid heap memory growth, unmanageable processing queues, and an eventual Out-Of-Memory (OOM) termination.


Attack Vector

An attacker who can manipulate configuration files, environmental variables, or API inputs that dictate client Qos settings can trigger an application-layer Denial of Service:

  1. Malicious Input: An attacker sets a service's prefetch configuration parameter to -1.
  2. Implicit Overflow: The application initializes the channel, executes Qos(-1, ...), and transmits an unintended maximum-capacity request to the RabbitMQ/AMQP broker.
  3. Consumer Exhaustion: The broker flushes the entire contents of the queue directly into the client consumer's network buffer, bypassing expected application concurrency barriers and inducing a crash.

high 7.0: CVE--2026--77407 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:L/SA:L
EPSS Score 0.128%
EPSS Percentile 2nd percentile
Description

Summary

An information disclosure vulnerability exists in the AMQP client implementation's authentication handling configuration. Following a successful connection handshake, the Connection.Config.SASL field stores the Authentication implementation state used to establish the session.

For standard PLAIN authentication, this state utilizes the PlainAuth struct, which defines both Username and Password as publicly exported, plaintext string fields. Because this sensitive data is retained permanently in-memory within an exported field structure, any peripheral code, internal package, reflective logger, dependency, or automated debugging utility with access to the core *Connection object can read and expose the raw credentials.


Vulnerability Details

Mechanism

The vulnerability stems from the structural design of the configuration storage used during and after the AMQP handshake:

// auth.go:21-23
type PlainAuth struct {
    Username string
    Password string  // exported plaintext
}

When an application initializes a connection, the PlainAuth object is deeply nested inside the configuration structure (Connection.Config). Even after the handshake concludes and authentication is complete, this structure persists natively in-memory for the duration of the network connection's lifecycle.

Because Password is an exported string field, standard automated inspection mechanisms can read its value without restriction.

Affected Code Paths & Integrations

Any sub-component or library that traverses or reads the *Connection object will inadvertently read the plaintext password, including:

  • Reflective Loggers: Structured logging frameworks that serialize nested configuration structs into JSON/Log formats.
  • APM & Performance Agents: Automated telemetry or Application Performance Monitoring tools that capture state snapshots.
  • Debugging & Panic Handlers: Mid-tier software or dump libraries designed to capture goroutine state or print deep struct hierarchies upon program errors or signals.

Impact

The credential remains vulnerable to leak paths into logging pipelines, log aggregators, security information and event management (SIEM) systems, or standard output. Once transmitted to external log infrastructure, these credentials become accessible to unprivileged operators or any actor with access to log archives.


Attack Vector

An attacker does not necessarily need direct remote code execution to exploit this flaw; instead, the vulnerability acts as a credential harvesting vector inside multi-tenant environments or via secondary log exposure:

  1. Configuration Dump: An operator configures a standard reflective logger or third-party APM package to capture system state parameters, including the active AMQP *Connection object.
  2. Reflective Access: The inspection engine uses Go's reflect package to walk the structural hierarchy, pulling the string value from Connection.Config.SASL.(*PlainAuth).Password.
  3. Exfiltration: The plaintext password is written to standard system logs, which are then scraped into shared logging aggregators, exposing production infrastructure credentials to a wider audience.
critical: 2 high: 8 medium: 0 low: 0 stdlib 1.26.8 (golang)

pkg:golang/stdlib@1.26.8

critical : CVE--2026--56857

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.493%
EPSS Percentile 41st percentile
Description

On Windows, when the target of Root.Mkdir or Root.MkdirAll is a junction pointing to an empty location, the operation can create a directory at the junction target even when that target is located outside the root. This only applies to operations where the last path component is a junction (path/to/junction, but not path/junction/target).

critical : CVE--2026--78663

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--97031

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.394%
EPSS Percentile 32nd percentile
Description

Multiple ECH outer extension references are not permitted under RFC 9849; previously, a client could send a well-crafted packet that could trigger memory exhaustion in the server process by specifying multiple references.

We now reject these as malformed and curb the memory amplification vector as a result.

high : CVE--2026--94440

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.404%
EPSS Percentile 33rd percentile
Description

Parsing a multipart form can bypass memory limits and read an arbitrarily long line into memory when the remaining limit at the start of a part is less than 400 bytes.

high : CVE--2026--94439

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.315%
EPSS Percentile 23rd percentile
Description

When an HTTP server handler sends a 2xx response to an HTTP/1 CONNECT request and returns without hijacking the connection, the server improperly continues to read and serve requests from the connection. Since a 2xx response to an HTTP/1 CONNECT converts the connection into a tunnel, the server should not treat the connection as continuing to contain HTTP.

The impact of this misbehavior is mostly limited to potential request smuggling, where an intermediate proxy considers the data on the connection to be tunneled and the server considers it to be HTTP.

high : CVE--2026--78669

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78667

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.379%
EPSS Percentile 30th percentile
Description

When parsing a Range header containing a large number of small ranges, FileServer(FS), ServeContent, and ServeFile(FS) can consume an excessive amount of CPU.

high : CVE--2026--78660

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--56866

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.309%
EPSS Percentile 22nd percentile
Description

When http.Transport sends an HTTP/1 CONNECT request with a non-empty Request.Body, it writes the body directly to the connection without framing after the request headers. If the server rejects the CONNECT request with a non-2xx keep-alive response, Transport returns the connection to the idle pool. Because CONNECT requests do not have a request body, the server may interpret the trailing body bytes as a subsequent pipelined HTTP/1.1 request on the connection, leaving the pooled connection desynchronized and causing the next caller that reuses it to read the response to the injected request. In reverse proxies (including httputil.ReverseProxy) that forward CONNECT requests through a shared Transport, this can lead to cross-user response poisoning.

critical: 2 high: 5 medium: 0 low: 0 golang.org/x/net 0.40.0 (golang)

pkg:golang/golang.org/x/net@0.40.0

critical : CVE--2026--39821

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.692%
EPSS Percentile 51st percentile
Description

The ToASCII and ToUnicode functions incorrectly accept Punycode-encoded labels that decode to an ASCII-only label. For example, ToUnicode("xn--example-.com") incorrectly returns the name "example.com" rather than an error.

This behavior can lead to privilege escalation in programs using the idna package. For example, a program which performs privilege checks on the ASCII hostname may reject "example.com" but permit "xn--example-.com". If that program subsequently converts the ASCII hostname to Unicode, it will inadvertently permits access to the Unicode name "example.com".

critical : CVE--2026--78663

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--78669

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78660

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--46600

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

Parsing an invalid SVCB or HTTPS RR can panic when the size of a parameter value overflows the message buffer.

high : CVE--2026--33814

Affected range <0.53.0
Fixed version 0.53.0
EPSS Score 0.781%
EPSS Percentile 55th percentile
Description

When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a value of 0.

critical: 1 high: 3 medium: 0 low: 0 google.golang.org/grpc 1.71.0 (golang)

pkg:golang/google.golang.org/grpc@1.71.0

critical 9.1: CVE--2026--33186 Improper Authorization

Affected range <1.79.3
Fixed version 1.79.3
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 1.625%
EPSS Percentile 75th percentile
Description

Impact

What kind of vulnerability is it? Who is impacted?

It is an Authorization Bypass resulting from Improper Input Validation of the HTTP/2 :path pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting requests where the :path omitted the mandatory leading slash (e.g., Service/Method instead of /Service/Method). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official grpc/authz package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with /) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present.

Who is impacted?
This affects gRPC-Go servers that meet both of the following criteria:

  1. They use path-based authorization interceptors, such as the official RBAC implementation in google.golang.org/grpc/authz or custom interceptors relying on info.FullMethod or grpc.Method(ctx).
  2. Their security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed :path headers directly to the gRPC server.

Patches

Has the problem been patched? What versions should users upgrade to?

Yes, the issue has been patched. The fix ensures that any request with a :path that does not start with a leading slash is immediately rejected with a codes.Unimplemented error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):

  • v1.79.3
  • The latest master branch.

It is recommended that all users employing path-based authorization (especially grpc/authz) upgrade as soon as the patch is available in a tagged release.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods:

1. Use a Validating Interceptor (Recommended Mitigation)

Add an "outermost" interceptor to your server that validates the path before any other authorization logic runs:

func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)

2. Infrastructure-Level Normalization

If your gRPC server is behind a reverse proxy or load balancer (such as Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to enforce strict HTTP/2 compliance for pseudo-headers and reject or normalize requests where the :path header does not start with a leading slash.

3. Policy Hardening

Switch to a "default deny" posture in your authorization policies (explicitly listing all allowed paths and denying everything else) to reduce the risk of bypasses via malformed inputs.

high 8.8: GHSA--hrxh--6v49--42gf Uncaught Exception

Affected range <1.82.1
Fixed version 1.82.1
CVSS Score 8.8
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Description

Multiple security vulnerabilities have been identified and addressed in grpc-go affecting the xDS RBAC authorization engine (internal/xds/rbac) and the HTTP/2 transport server implementation (internal/transport). These vulnerabilities could result in:

  • Authorization Bypass (Fail-Open) when translating xDS RBAC policies containing Metadata or RequestedServerName fields.
  • Denial of Service (High CPU Consumption) due to an HTTP/2 Rapid Reset mitigation bypass during client-initiated stream resets.
  • Denial of Service (Server Panic) when parsing crafted xDS RBAC policies containing NOT rules around unsupported fields.

Impact

What kind of vulnerability is it? Who is impacted?

xDS RBAC Authorization Bypass via Metadata & RequestedServerName matchers

  • Affected Component: xDS RBAC
  • Impact: When building policy matchers for gRPC RBAC from xDS configurations, unsupported permission and principal rules (specifically Metadata and RequestedServerName) were silently ignored and treated as no-ops.
    • If an authorization policy relied purely on these matchers for access control, treating those rules as no-ops effectively removed the restrictions.
  • If these unsupported rules were nested inside logical NOT rules (Permission_NotRule / Principal_NotId) or multi-condition OR/AND rules, silently dropping them changed the boolean logic flow of the authorization engine.

As a result, policy evaluation decisions could fail open, allowing unauthorized clients to access protected gRPC services or resources.

HTTP/2 Rapid Reset Mitigation Bypass / Denial of Service via Stream Aborts

  • Affected Component: HTTP/2 transport
  • Impact: Earlier mitigations in grpc-go for HTTP/2 Rapid Reset only applied threshold checks to items that directly resulted in control frames being written back to the wire, such as SETTINGS ACKs or server-initiated RST_STREAMs.

When a client initiated a rapid flood of stream creation (HEADERS) immediately followed by stream termination RST_STREAM, items queued up in the control buffer without counting against the transport response frame threshold. An attacker can repeatedly trigger this flood sequence to bypass reader blocking, resulting in high CPU usage, and Denial of Service (DoS).

Denial of Service (Panic) in xDS RBAC Engine via Unsupported Fields inside NOT Rules

  • Affected Component: xDS RBAC
  • Impact: The xDS RBAC policy translators recursively generate matchers for nested rules. When a NOT rule wrapped an unsupported or unhandled field (such as SourcedMetadata), the recursive step returned an empty matcher. This could result in a runtime panic when the RBAC engine attempts to authorize an incoming request.

An attacker or misconfigured/malicious xDS management server delivering an LDS/RDS update containing a NOT rule around an unhandled field causes the gRPC server process to crash immediately (CWE-248 / Denial of Service).

Patches

Has the problem been patched? What versions should users upgrade to?

All three issues have been fixed in master and will be released in 1.82.1 shortly.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

If upgrading grpc-go immediately is not possible, apply the following workarounds based on your deployment architecture:

  • For xDS RBAC Vulnerabilities & Panics: Ensure that upstream xDS management servers do not push RBAC policies containing Metadata, RequestedServerName, or NOT rules wrapping unsupported fields (such as SourcedMetadata) to grpc-go servers.
  • For HTTP/2 Rapid Reset DOS: Configure upstream reverse proxies or load balancers (such as Envoy) with strict HTTP/2 max_concurrent_streams limits and active rate limiting on RST_STREAM frequency per connection.

Severity

Vulnerability Qualitative Severity Approximate CVSS v3.1 Score Primary Impact
xDS RBAC Authorization Bypass High 8.2 Unauthorized Access / Fail-Open
HTTP/2 Rapid Reset DOS Bypass High 7.5 High CPU Consumption / Denial of Service
xDS RBAC Engine Server Panic Medium 5.9 Process Crash / Denial of Service

high 8.7: CVE--2026--84445 Improper Validation of Array Index

Affected range <1.82.2
Fixed version 1.82.2
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.641%
EPSS Percentile 49th percentile
Description

A vulnerability exists in gRPC-Go servers configured with xds.NewGRPCServer() where a crafted request missing both :authority and Host headers can cause a server panic, resulting in a Denial of Service (DoS).

Servers built with xds.NewGRPCServer install an xDS routing interceptor on every RPC. This interceptor looks up the request’s :authority header to pick a virtual host. The HTTP/2 server transport previously accepted requests that had neither :authority nor Host. When this happened, the xDS routing interceptor attempted to access the first element of an empty slice of authorities, leading to an index out of bounds panic. Since the per-RPC goroutine does not recover from panics, the entire server process would terminate.

This panic occurs in the interceptor pipeline, meaning the transport credentials handshake (TLS, mTLS, or ALTS) and HTTP/2 connection establishment must complete successfully before the crafted request can reach this logic.

  • Insecure/Standard TLS: If the server permits insecure (plaintext) connections or standard credentials (where client certs are not checked), any unauthenticated remote attacker can trigger the crash.
  • mTLS / ALTS: If strict transport-level authentication is enforced at the network edge or transport layer (e.g., requiring a valid client certificate), the attacker must possess valid transport credentials to initiate the stream and trigger the panic.

Impact

An attacker can cause a complete outage of the gRPC server by sending a request missing both :authority and Host headers, provided they can successfully establish a transport connection.

Patches

The issue has been addressed in master (and backported to 1.84.0, 1.83.2 and 1.82.2). The fix updates the HTTP/2 transport layer to reject requests missing both :authority and Host headers early, maintaining consistency with and other gRPC language implementations.

high 8.7: CVE--2026--84304 Uncontrolled Resource Consumption

Affected range <=1.83.0
Fixed version 1.83.1
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
EPSS Score 0.609%
EPSS Percentile 48th percentile
Description

Impact

An unauthenticated remote attacker can initiate a gRPC stream and purposefully fragment their payload into millions of tiny (e.g., 1-byte) HTTP/2 DATA frames. Even if the total payload volume falls within the configured connection and stream flow-control windows, each independent fragment incurs memory overhead due to internal tracking structures and queue allocation.

Repeated fragmentation massively inflates the heap space consumed by the stream. An attacker multiplexing multiple concurrent streams can exhaust the memory bounds of the runtime, forcing a runtime panic or OutOfMemory condition and leading to a remote Denial of Service (DoS).

Patches

The change to fix this issue is merged in master and a patch release, 1.83.1, has been published that contains this fix.

Workarounds

This vulnerability is mitigated by implementing receive buffer compaction. Consecutive small data buffers are automatically coalesced into larger buffers from a shared pool once the overhead is perceived to be excessive relative to actual payload data, drastically minimizing per-frame memory overheads.

This behavior is enabled by default. A temporary escape hatch is provided via the environment variable GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION=false to disable the feature if unforeseen issues arise, but it will be removed in a future release.

critical: 0 high: 2 medium: 0 low: 0 expat 2.8.5-r0 (apk)

pkg:apk/alpine/expat@2.8.5-r0?os_name=alpine&os_version=3.24

high : CVE--2026--77214

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

high : CVE--2026--102633

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.348%
EPSS Percentile 26th percentile
Description
critical: 0 high: 1 medium: 0 low: 0 github.com/antchfx/xpath 1.3.3 (golang)

pkg:golang/github.com/antchfx/xpath@1.3.3

high 7.5: CVE--2026--32287 Uncontrolled Resource Consumption

Affected range <1.3.6
Fixed version 1.3.6
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.695%
EPSS Percentile 52nd percentile
Description

Boolean expressions that evaluate to true can cause an infinite loop in logicalQuery.Select, leading to 100% CPU usage. This can be triggered by top-level selectors such as "1=1" or "true()".

critical: 0 high: 1 medium: 0 low: 0 golang.org/x/text 0.25.0 (golang)

pkg:golang/golang.org/x/text@0.25.0

high : CVE--2026--56851

Affected range <0.41.0
Fixed version 0.41.0
EPSS Score 0.335%
EPSS Percentile 25th percentile
Description

The Nickname profile can panic with an out-of-bounds slice error when transforming crafted input into a short destination buffer.

@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digest sha256:454a712fdbcbef257f457316edd3cd07cc68319562b3100f6cbde5d59202c261
vulnerabilities critical: 15 high: 33 medium: 0 low: 0
platform linux/amd64
size 138 MB
packages 283
📦 Base Image php:8.3-alpine
also known as
  • 8.3-alpine3.24
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.24
  • 8.3.35-alpine
  • 8.3.35-alpine3.24
  • 8.3.35-cli-alpine
  • 8.3.35-cli-alpine3.24
  • f9fa43ebfe378c1c058426a2a33703b026d84cc30e5d4b7a8ad953fbfe2b450b
digest sha256:683cad5c01894c14b5602645e6df793280c414482b07f0ea447ec68d9e7b821c
vulnerabilities critical: 0 high: 2 medium: 8 low: 5 unspecified: 1
critical: 7 high: 6 medium: 0 low: 0 golang.org/x/crypto 0.38.0 (golang)

pkg:golang/golang.org/x/crypto@0.38.0

critical 10.0: CVE--2026--46595 Incorrect Implementation of Authentication Algorithm

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 10
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L
EPSS Score 0.503%
EPSS Percentile 41st percentile
Description

Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped.

critical 9.1: CVE--2026--42508 Improper Certificate Validation

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.654%
EPSS Percentile 50th percentile
Description

Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @Revoked.

critical 9.1: CVE--2026--39834 Integer Overflow or Wraparound

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
EPSS Score 0.637%
EPSS Percentile 49th percentile
Description

When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation.

critical 9.1: CVE--2026--39833 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested.

critical 9.1: CVE--2026--39832 Improper Preservation of Permissions

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.716%
EPSS Percentile 52nd percentile
Description

When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them.

critical 9.1: CVE--2026--39831 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) did not check the User Presence flag. Signatures generated without physical touch were accepted, allowing unattended use of a hardware security key. To restore the previous behavior, return a "no-touch-required" extension in Permissions.Extensions from PublicKeyCallback.

critical 9.1: CVE--2026--39830 Improper Restriction of Operations within the Bounds of a Memory Buffer

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
EPSS Score 0.621%
EPSS Percentile 48th percentile
Description

A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded.

high : CVE--2026--78662

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.431%
EPSS Percentile 35th percentile
Description

Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection.

Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection.

high : CVE--2026--56855

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.500%
EPSS Percentile 41st percentile
Description

Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection.

Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking.

high : CVE--2026--56854

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.437%
EPSS Percentile 36th percentile
Description

The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback.

high 7.5: CVE--2026--46597 Incorrect Type Conversion or Cast

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.620%
EPSS Percentile 48th percentile
Description

An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.

high 7.5: CVE--2026--39829 Improper Validation of Specified Quantity in Input

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2.

high : CVE--2025--47913

Affected range <0.43.0
Fixed version 0.43.0
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

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

critical: 3 high: 7 medium: 0 low: 0 github.com/rabbitmq/amqp091-go 1.10.0 (golang)

pkg:golang/github.com/rabbitmq/amqp091-go@1.10.0

critical 9.5: CVE--2026--77411 Improper Check for Unusual or Exceptional Conditions

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.5
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A critical stream desynchronization vulnerability has been identified in the AMQP wire-protocol parser. When parsing a long string (readLongstr) within a table field, providing a length that exceeds the maximum signed 32-bit integer (2^31 - 1, or roughly 2.1 GiB) triggers an improper error-handling condition. The parser abruptly aborts the read and returns a success status ("",nil) without consuming the specified bytes from the underlying network buffer. This causes all subsequent read operations to become misaligned. The parser interprets arbitrary offsets within the remaining payload bytes as valid AMQP frame headers, leading to potential Remote Code Execution (RCE), data injection, or complete connection hijacking.

Vulnerability Details

The vulnerability exists within the bounds-checking logic of the readLongstr function:

// read.go:113-114 — silent no-op return, bytes left in stream
if length > (^uint32(0) >> 1) {
    return  // returns "", nil, does NOT consume `length` bytes
}

When length evaluates to a value greater than 0x7FFFFFFF:

  1. The function executes a silent return statement.
  2. Because Go utilizes named or zero-value initialization for unassigned return registers, this yields "", nil (indicating a successful read of an empty string).
  3. The Critical Failure: The reader's cursor is not advanced by length bytes. The malformed payload remains sitting in the TCP/buffer stream.

Impact

As readTable continues iterating over the stream under the assumption that the string was successfully parsed, the byte alignment is entirely broken.

  • Parser Desynchronization: Future AMQP frame headers are read from arbitrary offsets inside the attacker-controlled message payload.
  • Payload Reinterpretation: A malicious actor can carefully craft the trailing bytes of the initial payload to perfectly mimic valid AMQP frames (e.g., connection.close, channel.open, or message publishing frames), forcing the client/server to execute unintended actions.

critical 9.4: CVE--2026--77405 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.4
CVSS Vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:L/SA:N
EPSS Score 0.282%
EPSS Percentile 19th percentile
Description

Summary

A structural security weakness exists in the AMQP client's TLS configuration generator (tlsConfigFromURI). When constructing a *tls.Config object from an amqps:// connection URI, the library initializes the structure without explicitly defining the MinVersion field.

While modern versions of the Go compiler toolchain (Go 1.18+) default the implicit minimum version to TLS 1.2, this security posture relies entirely on an implicit toolchain dependency. If the library is compiled using legacy Go toolchains (Go < 1.18), or if a future toolchain introduces fallback behavior, the client could silently negotiate obsolete and insecure TLS 1.0 or TLS 1.1 protocols during connection handshakes with a compromised or malicious AMQP broker.


Vulnerability Details

Mechanism

The vulnerability lies in the lack of an explicit safety floor when assigning configurations inside the URI component:

// Example within uri.go's tlsConfigFromURI
cfg := &tls.Config{
    ServerName: host,
    // MinVersion is left completely unassigned (defaults to 0, or toolchain default)
}

In the Go standard library (crypto/tls), leaving MinVersion: 0 instructs the runtime to choose the toolchain's default minimum. Prior to Go 1.18, this default allowed negotiation down to TLS 1.0. Relying on implicit compiler configurations violates secure coding practices by decoupling the library's security posture from its source code, leaving applications vulnerable based solely on how they are built.

Impact

If a client application is built with a legacy compiler environment or a custom Go runtime, an attacker capable of executing a Man-in-the-Middle (MitM) attack can force the connection to downgrade to TLS 1.0 or 1.1. This exposes the AMQP protocol data stream to well-known cryptographic vulnerabilities (such as BEAST, POODLE, or SWEET32), allowing the attacker to decrypt or alter message payloads, connection parameters, and authentication credentials.


Attack Vector

An attacker performing a network-level downgrade attack can intercept a client connection built under a legacy toolchain:

  1. Interception: A client application compiled on a legacy pipeline attempts to establish an encrypted connection to an AMQP broker.
  2. Protocol Downgrade: The attacker intercepts the TLS Client Hello handshake and forces a downgrade negotiation to TLS 1.0.
  3. Cryptographic Exploitation: Because MinVersion was never explicitly locked to tls.VersionTLS12 by the library, the client accepts the weak cipher suites, allowing the attacker to monitor or manipulate the underlying AMQP session data.

critical 9.1: CVE--2026--77408 Integer Overflow or Wraparound

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.1
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:H/SC:L/SI:H/SA:L
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A data integrity and protocol corruption vulnerability exists in the AMQP client's property serialization logic. When encoding AMQP short string (shortstr) fields—such as identifiers, routing strings, and content metadata—the length of the string is explicitly cast to a fixed-size 8-bit unsigned integer (uint8).

If an application provides a property string exceeding 255 bytes, the length counter silently wraps around (e.g., a length of 300 wraps to 44). As a result, the parser writes only a truncated portion of the string into the outgoing connection buffer without returning an error. This leads to silent data corruption, broken RPC routing, and unpredictable broker-side state behavior.


Vulnerability Details

Mechanism

The vulnerability resides in the wire-level serialization logic for application publishing properties:

// write.go:246
length := uint8(len(b))  // wraps silently when len(b) > 255 (e.g., 300 -> 44)

Because Go allows silent integer truncation during explicit type casting, lengths larger than $2^8 - 1$ lose their most significant bits. The underlying stream writer reads length to determine how many bytes to pull from the buffer. Because no error or boundary check accompanies this truncation, the application believes the full payload was transmitted successfully.

Affected Properties

This truncation behavior affects every standard AMQP field serialized as a shortstr:

  • CorrelationId
  • ReplyTo
  • MessageId
  • Expiration
  • UserId
  • AppId
  • ContentType
  • ContentEncoding
  • Type

Impact

The critical consequence is silent protocol desynchronization at the application layer. The underlying TCP stream remains framed properly (because the shortened length matches the bytes written), but the business logic is corrupted. Distributed transactions, request-reply correlations, and tracing headers are truncated, causing downstream systems to drop messages or route them to incorrect consumers.


Attack Vector

An attacker who can influence metadata fields processed by an upstream application (such as a user-supplied tracking ID or a long content-type header) can exploit this to break system components:

  1. Targeting RPC Routing: A user passes a malicious or overly long CorrelationId of 300 bytes through an application endpoint.
  2. Silent Truncation: The library wraps the length value to 44, transmitting only the first 44 bytes to the rabbitMQ broker.
  3. Broken Correlation: When the service processes the request and responds, the replying consumer attempts to route the message using the full 300-byte identifier. Because the broker only recognizes the truncated 44-byte ID, the reply loop breaks silently, leading to hanging processes or data leaks across transaction boundaries.

high 8.9: CVE--2026--79921 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.550%
EPSS Percentile 44th percentile
Description

Summary
A vulnerability exists in the amqp091-go client library where a compromised or malicious AMQP broker can force the client to allocate resources for and process content body frames that exceed the negotiated frame_max limit. This can lead to unexpected memory consumption or application-layer denial of service (DoS), bypassing the protocol's built-in framing constraints.

Details
During a standard AMQP 0-9-1 connection handshake, the client and the broker negotiate a maximum frame size (frame_max), for example, 4096 bytes.

However, after negotiation, a malicious broker can send a valid basic.deliver sequence containing a content body frame whose header declares a payload size larger than the negotiated frame_max. Instead of enforcing the agreed-upon limit and closing the connection with a frame-error (as mandated by the AMQP 0-9-1 specification), the amqp091-go client:

  1. Accepts the broker-declared oversized frame size.
  2. Allocates memory based on this oversized declaration.
  3. Reads the payload, assembles it into the message, and delivers it to the consumer.

Impact

  • Denial of Service (DoS): If a broker sends extremely large frame sizes, it can trigger significant memory allocations on the client side, potentially leading to Out-Of-Memory (OOM) crashes.
  • Protocol Violation: The client fails to enforce negotiated connection parameters, trusting the broker implicitly even after constraints have been established.

high 8.9: CVE--2026--77412 Incorrect Conversion between Numeric Types

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A vulnerability in the readField function allows a malicious or compromised AMQP server to trigger an unhandled runtime panic in the client application, leading to an immediate crash of the entire process.

Details
When parsing incoming AMQP frames, the readField function processes byte-array fields (type tag 'x') by reading a 32-bit big-endian integer to determine the length of the data payload.

// read.go:253-263
case 'x':
    var len int32
    if err = binary.Read(r, binary.BigEndian, &len); err != nil {
        return nil, err
    }
    value := make([]byte, len)  // PANICS if len < 0

If a server transmits a length value of 0xFFFFFFFF, it is interpreted by the client as a signed 32-bit integer with a value of -1. Passing a negative integer to Go's built-in make() function for slice allocation triggers an unrecoverable runtime panic (panic: len out of range).

Because the reader goroutine handles network I/O without an explicit recover() wrapper, this panic propagates up to the runtime root, abruptly terminating the host application.

Attack Vector / Exploitation Scenario
An attacker capable of spoofing, compromising, or controlling an AMQP broker can exploit this flaw during two primary phases:

  1. Connection Establishment: Sending a malicious connection.start handshake frame containing server-properties with an 'x' type field assigned a negative length.
  2. Message Delivery: Delivering a message payload where the header table contains a malformed field matching the criteria above.

Impact
Availability: High. A single malformed frame can reliably crash the client process, resulting in a persistent Denial of Service (DoS) if the client automatically reconnects and receives the same payload.

high 8.9: CVE--2026--77410 Memory Allocation with Excessive Size Value

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A flaw in the recvContent function allows a malicious AMQP server to trigger an Out-of-Memory (OOM) error, forcing the host operating system or container runtime to immediately terminate the client process.

Vulnerability Details
When receiving message content payloads, the client processes the expected size from the content header framework. The recvContent function attempts to optimize performance by pre-allocating memory for the message body based on the ch.header.Size field, which is a 64-bit unsigned integer (uint64).

// channel.go:495-496
if cap(ch.body) == 0 {
    ch.body = make([]byte, 0, ch.header.Size)  // unbounded
}

The underlying library fails to validate or cap this requested size against any upper boundary—such as the maximum frame size negotiated during connection establishment (FrameMax). If a server specifies an extreme body size (e.g., 2^62 bytes), the Go runtime attempts to allocate an exabyte-scale slice capacity. This immediately exhausts available system memory, causing the operating system's OOM killer to terminate the application.

Attack Vector / Exploitation Scenario

  • Message Delivery Phase: A malicious or compromised AMQP broker sends a standard basic.deliver frame containing a content header with an intentionally inflated body-size variable.
  • Authentication Requirement: No special privileges or authentication bypasses are required; the crash occurs seamlessly during normal message consumption.

Impact

  • Availability: High. Exploded memory consumption results in an instant process termination, destroying application state and availability for all threads sharing the environment.

high 8.9: CVE--2026--77403 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A Denial of Service (DoS) vulnerability exists in the AMQP client's connection negotiation logic. The AMQP specification explicitly mandates a strict minimum frame size of 4096 bytes to prevent pathological packet fragmentation. While the library defines a frameMinSize = 4096 constant, the connection negotiation loop fails to enforce this boundary, blindly accepting whatever maximum frame size (FrameMax) the server advertises during the handshake.

If a client connects to a malicious or compromised AMQP broker that advertises an extremely low FrameMax (such as 1 byte), the negotiation succeeds. Consequently, every subsequent message transmission is forced to splinter into thousands or millions of single-byte frames, causing massive CPU overhead, thread contention, and a near-instantaneous application freeze.


Vulnerability Details

Mechanism

During the connection establishment phase, the client and server negotiate connection parameters—including maximum channel count, heartbeat intervals, and maximum frame sizes. The vulnerability is located where the client accepts the server's tuning parameters:

// Connection negotiation logic maps server values directly without validation
if serverSettings.FrameMax > 0 {
    // VULNERABILITY: Lacks a floor validation check against frameMinSize (4096)
    c.config.FrameMax = serverSettings.FrameMax 
}

Because there is no conditional check asserting that serverSettings.FrameMax >= frameMinSize, a value below the protocol specification floor is successfully registered. When the application later passes data payloads to the frame writer, the chunking algorithm splits the payload using the negotiated FrameMax value as its chunk window divisor.

Impact

When FrameMax is set to an absurdly low threshold (e.g., 1 to 10 bytes):

  • A standard 10 KiB message payload requires tens of thousands of individual write operations and frame headers.
  • The system's CPU becomes entirely bound by frame serialization, memory allocation for frame structures, and context switching within the network output loops.
  • This results in an application-layer Denial of Service (DoS) affecting not just the specific AMQP connection, but potentially the entire host system due to CPU resource starvation.

Attack Vector

An attacker who compromises an upstream AMQP broker, performs a Man-in-the-Middle (MitM) interception, or tricks an application into connecting to an unauthorized external rogue broker can trigger this vulnerability:

  1. Rogue Handshake: The client application connects to an AMQP endpoint controlled by the attacker.
  2. Malicious Parameter Tuning: During the connection.tune phase, the rogue server returns a FrameMax value of 1.
  3. Resource Exhaustion Trigger: The client completes the handshake successfully. As soon as the client attempts to publish a message or process traffic, the internal loop fragments the data into single-byte frames, spiking the host's CPU usage to 100% and disabling the application thread.

high 8.7: CVE--2026--77404 Improper Encoding or Escaping of Output

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L
EPSS Score 0.098%
EPSS Percentile 1st percentile
Description

Summary

A query parameter injection vulnerability exists in the AMQP client's connection URI formatting logic. When generating or parsing connection URIs, TLS-related filesystem paths (such as certificates or keys) are appended directly to the URI's query string using string concatenation rather than secure URL encoding via functions like url.QueryEscape.

If an application handles a TLS file path containing special character delimiters (such as & or =), these characters are interpreted as parameter separators by the URI parser. If the resulting URI.String() output is subsequently re-parsed via ParseURI, the injected fields can silently overwrite or hijack critical configuration parameters, forcing the client to use arbitrary connection settings or alternate TLS files.


Vulnerability Details

Mechanism

The vulnerability lies within the lack of proper escaping when compiling connection string components into a raw URL format:

// Example of insecure string concatenation during URI building
uri := fmt.Sprintf("amqps://user:pass@<!-- -->host/%s?certfile=%s&keyfile=%s", vhost, certPath, keyPath)

Because certPath and keyPath are not passed through url.QueryEscape, special URL characters preserve their control meanings. For instance, if a user supply a certificate path named:
/tmp/cert=foo&keyfile=/evil/path

The generated string translates into:
...?certfile=/tmp/cert=foo&keyfile=/evil/path&keyfile=/original/path

When this string passes back through ParseURI (common in connection re-dial routines or configuration replication steps), standard URL parsing mechanics treat the string as multiple distinct parameters. Depending on map assignment order inside the parser, the injected keys take precedence over the original parameters.

Impact

By manipulating the file paths used for TLS assets, an attacker or compromised local sub-system can:

  • Inject arbitrary alternative options or override protocol settings.
  • Substitute or switch keyfiles, leading to connection failures or the parsing of unauthorized cryptographic assets.
  • Corrupt connection state variables, triggering application-layer failures during connection setup or recovery.

Attack Vector

An attacker who has partial control over directory naming conventions or environmental variables used to specify local infrastructure paths can execute a parameter injection attack:

  1. Path Creation: An attacker sets up a path containing deliberate URL parameter delimiters (e.g., /var/lib/certs/client.crt?cacertfile=/tmp/fake_ca.crt&).
  2. String Generation: The application serializes the active connection state or passes the paths down to an unescaped URI builder function.
  3. Configuration Hijack: The URI string is generated with the injected parameter embedded into the query structure. When the client attempts to reuse or re-parse this connection string during a connection retry or worker spin-up, it parses the injected cacertfile parameter, loading a different, unverified Certificate Authority string.

high 8.2: CVE--2026--77406 Signed to Unsigned Conversion Error

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.2
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L
EPSS Score 0.412%
EPSS Percentile 33rd percentile
Description

Summary

A logic and resource exhaustion vulnerability exists in the AMQP client's Quality of Service (Qos) configuration method. The Qos function accepts signed integers (int) for the prefetchCount and prefetchSize parameters but casts them directly to unsigned integers (uint16 and uint32, respectively) when formatting the wire-level frame.

If a developer passes a negative integer (such as -1) to these parameters—frequently intended as a sentinel value meaning "no change" or "no limit"—the application performs an implicit signed-to-unsigned conversion. This wraps the values to their absolute maximum limit ($65535$ and $4294967295$). Consequently, a consumer expecting restricted message delivery rates is suddenly flooded with an unlimited volume of messages, potentially exhausting memory resources and crashing the application.


Vulnerability Details

Mechanism

The bug manifests during the structural assignment inside the channel's Qos method:

// channel.go:795-796
PrefetchCount: uint16(prefetchCount),  // -1 wraps to 65535
PrefetchSize:  uint32(prefetchSize),   // -1 wraps to 4294967295

In Go, converting a negative signed integer to an unsigned integer shifts the value via two's complement arithmetic. Because no boundary validation or signedness check occurs prior to the cast:

  • Passing -1 for prefetchCount yields a wire value of 65535.
  • Passing -1 for prefetchSize yields a wire value of 4294967295.

Impact

The AMQP broker interprets a prefetch-count of 65535 as an instruction to dispatch messages to the consumer with virtually no concurrency limits.

If the application is processing heavy payloads or relies on strict rate-limiting to maintain stability, this unexpected flood will cause rapid heap memory growth, unmanageable processing queues, and an eventual Out-Of-Memory (OOM) termination.


Attack Vector

An attacker who can manipulate configuration files, environmental variables, or API inputs that dictate client Qos settings can trigger an application-layer Denial of Service:

  1. Malicious Input: An attacker sets a service's prefetch configuration parameter to -1.
  2. Implicit Overflow: The application initializes the channel, executes Qos(-1, ...), and transmits an unintended maximum-capacity request to the RabbitMQ/AMQP broker.
  3. Consumer Exhaustion: The broker flushes the entire contents of the queue directly into the client consumer's network buffer, bypassing expected application concurrency barriers and inducing a crash.

high 7.0: CVE--2026--77407 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:L/SA:L
EPSS Score 0.128%
EPSS Percentile 2nd percentile
Description

Summary

An information disclosure vulnerability exists in the AMQP client implementation's authentication handling configuration. Following a successful connection handshake, the Connection.Config.SASL field stores the Authentication implementation state used to establish the session.

For standard PLAIN authentication, this state utilizes the PlainAuth struct, which defines both Username and Password as publicly exported, plaintext string fields. Because this sensitive data is retained permanently in-memory within an exported field structure, any peripheral code, internal package, reflective logger, dependency, or automated debugging utility with access to the core *Connection object can read and expose the raw credentials.


Vulnerability Details

Mechanism

The vulnerability stems from the structural design of the configuration storage used during and after the AMQP handshake:

// auth.go:21-23
type PlainAuth struct {
    Username string
    Password string  // exported plaintext
}

When an application initializes a connection, the PlainAuth object is deeply nested inside the configuration structure (Connection.Config). Even after the handshake concludes and authentication is complete, this structure persists natively in-memory for the duration of the network connection's lifecycle.

Because Password is an exported string field, standard automated inspection mechanisms can read its value without restriction.

Affected Code Paths & Integrations

Any sub-component or library that traverses or reads the *Connection object will inadvertently read the plaintext password, including:

  • Reflective Loggers: Structured logging frameworks that serialize nested configuration structs into JSON/Log formats.
  • APM & Performance Agents: Automated telemetry or Application Performance Monitoring tools that capture state snapshots.
  • Debugging & Panic Handlers: Mid-tier software or dump libraries designed to capture goroutine state or print deep struct hierarchies upon program errors or signals.

Impact

The credential remains vulnerable to leak paths into logging pipelines, log aggregators, security information and event management (SIEM) systems, or standard output. Once transmitted to external log infrastructure, these credentials become accessible to unprivileged operators or any actor with access to log archives.


Attack Vector

An attacker does not necessarily need direct remote code execution to exploit this flaw; instead, the vulnerability acts as a credential harvesting vector inside multi-tenant environments or via secondary log exposure:

  1. Configuration Dump: An operator configures a standard reflective logger or third-party APM package to capture system state parameters, including the active AMQP *Connection object.
  2. Reflective Access: The inspection engine uses Go's reflect package to walk the structural hierarchy, pulling the string value from Connection.Config.SASL.(*PlainAuth).Password.
  3. Exfiltration: The plaintext password is written to standard system logs, which are then scraped into shared logging aggregators, exposing production infrastructure credentials to a wider audience.
critical: 2 high: 8 medium: 0 low: 0 stdlib 1.26.8 (golang)

pkg:golang/stdlib@1.26.8

critical : CVE--2026--56857

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.493%
EPSS Percentile 41st percentile
Description

On Windows, when the target of Root.Mkdir or Root.MkdirAll is a junction pointing to an empty location, the operation can create a directory at the junction target even when that target is located outside the root. This only applies to operations where the last path component is a junction (path/to/junction, but not path/junction/target).

critical : CVE--2026--78663

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--97031

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.394%
EPSS Percentile 32nd percentile
Description

Multiple ECH outer extension references are not permitted under RFC 9849; previously, a client could send a well-crafted packet that could trigger memory exhaustion in the server process by specifying multiple references.

We now reject these as malformed and curb the memory amplification vector as a result.

high : CVE--2026--94440

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.404%
EPSS Percentile 33rd percentile
Description

Parsing a multipart form can bypass memory limits and read an arbitrarily long line into memory when the remaining limit at the start of a part is less than 400 bytes.

high : CVE--2026--94439

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.315%
EPSS Percentile 23rd percentile
Description

When an HTTP server handler sends a 2xx response to an HTTP/1 CONNECT request and returns without hijacking the connection, the server improperly continues to read and serve requests from the connection. Since a 2xx response to an HTTP/1 CONNECT converts the connection into a tunnel, the server should not treat the connection as continuing to contain HTTP.

The impact of this misbehavior is mostly limited to potential request smuggling, where an intermediate proxy considers the data on the connection to be tunneled and the server considers it to be HTTP.

high : CVE--2026--78669

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78667

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.379%
EPSS Percentile 30th percentile
Description

When parsing a Range header containing a large number of small ranges, FileServer(FS), ServeContent, and ServeFile(FS) can consume an excessive amount of CPU.

high : CVE--2026--78660

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--56866

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.309%
EPSS Percentile 22nd percentile
Description

When http.Transport sends an HTTP/1 CONNECT request with a non-empty Request.Body, it writes the body directly to the connection without framing after the request headers. If the server rejects the CONNECT request with a non-2xx keep-alive response, Transport returns the connection to the idle pool. Because CONNECT requests do not have a request body, the server may interpret the trailing body bytes as a subsequent pipelined HTTP/1.1 request on the connection, leaving the pooled connection desynchronized and causing the next caller that reuses it to read the response to the injected request. In reverse proxies (including httputil.ReverseProxy) that forward CONNECT requests through a shared Transport, this can lead to cross-user response poisoning.

critical: 2 high: 5 medium: 0 low: 0 golang.org/x/net 0.40.0 (golang)

pkg:golang/golang.org/x/net@0.40.0

critical : CVE--2026--39821

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.692%
EPSS Percentile 51st percentile
Description

The ToASCII and ToUnicode functions incorrectly accept Punycode-encoded labels that decode to an ASCII-only label. For example, ToUnicode("xn--example-.com") incorrectly returns the name "example.com" rather than an error.

This behavior can lead to privilege escalation in programs using the idna package. For example, a program which performs privilege checks on the ASCII hostname may reject "example.com" but permit "xn--example-.com". If that program subsequently converts the ASCII hostname to Unicode, it will inadvertently permits access to the Unicode name "example.com".

critical : CVE--2026--78663

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--78669

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78660

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--46600

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

Parsing an invalid SVCB or HTTPS RR can panic when the size of a parameter value overflows the message buffer.

high : CVE--2026--33814

Affected range <0.53.0
Fixed version 0.53.0
EPSS Score 0.781%
EPSS Percentile 55th percentile
Description

When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a value of 0.

critical: 1 high: 3 medium: 0 low: 0 google.golang.org/grpc 1.71.0 (golang)

pkg:golang/google.golang.org/grpc@1.71.0

critical 9.1: CVE--2026--33186 Improper Authorization

Affected range <1.79.3
Fixed version 1.79.3
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 1.625%
EPSS Percentile 75th percentile
Description

Impact

What kind of vulnerability is it? Who is impacted?

It is an Authorization Bypass resulting from Improper Input Validation of the HTTP/2 :path pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting requests where the :path omitted the mandatory leading slash (e.g., Service/Method instead of /Service/Method). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official grpc/authz package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with /) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present.

Who is impacted?
This affects gRPC-Go servers that meet both of the following criteria:

  1. They use path-based authorization interceptors, such as the official RBAC implementation in google.golang.org/grpc/authz or custom interceptors relying on info.FullMethod or grpc.Method(ctx).
  2. Their security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed :path headers directly to the gRPC server.

Patches

Has the problem been patched? What versions should users upgrade to?

Yes, the issue has been patched. The fix ensures that any request with a :path that does not start with a leading slash is immediately rejected with a codes.Unimplemented error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):

  • v1.79.3
  • The latest master branch.

It is recommended that all users employing path-based authorization (especially grpc/authz) upgrade as soon as the patch is available in a tagged release.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods:

1. Use a Validating Interceptor (Recommended Mitigation)

Add an "outermost" interceptor to your server that validates the path before any other authorization logic runs:

func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)

2. Infrastructure-Level Normalization

If your gRPC server is behind a reverse proxy or load balancer (such as Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to enforce strict HTTP/2 compliance for pseudo-headers and reject or normalize requests where the :path header does not start with a leading slash.

3. Policy Hardening

Switch to a "default deny" posture in your authorization policies (explicitly listing all allowed paths and denying everything else) to reduce the risk of bypasses via malformed inputs.

high 8.8: GHSA--hrxh--6v49--42gf Uncaught Exception

Affected range <1.82.1
Fixed version 1.82.1
CVSS Score 8.8
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Description

Multiple security vulnerabilities have been identified and addressed in grpc-go affecting the xDS RBAC authorization engine (internal/xds/rbac) and the HTTP/2 transport server implementation (internal/transport). These vulnerabilities could result in:

  • Authorization Bypass (Fail-Open) when translating xDS RBAC policies containing Metadata or RequestedServerName fields.
  • Denial of Service (High CPU Consumption) due to an HTTP/2 Rapid Reset mitigation bypass during client-initiated stream resets.
  • Denial of Service (Server Panic) when parsing crafted xDS RBAC policies containing NOT rules around unsupported fields.

Impact

What kind of vulnerability is it? Who is impacted?

xDS RBAC Authorization Bypass via Metadata & RequestedServerName matchers

  • Affected Component: xDS RBAC
  • Impact: When building policy matchers for gRPC RBAC from xDS configurations, unsupported permission and principal rules (specifically Metadata and RequestedServerName) were silently ignored and treated as no-ops.
    • If an authorization policy relied purely on these matchers for access control, treating those rules as no-ops effectively removed the restrictions.
  • If these unsupported rules were nested inside logical NOT rules (Permission_NotRule / Principal_NotId) or multi-condition OR/AND rules, silently dropping them changed the boolean logic flow of the authorization engine.

As a result, policy evaluation decisions could fail open, allowing unauthorized clients to access protected gRPC services or resources.

HTTP/2 Rapid Reset Mitigation Bypass / Denial of Service via Stream Aborts

  • Affected Component: HTTP/2 transport
  • Impact: Earlier mitigations in grpc-go for HTTP/2 Rapid Reset only applied threshold checks to items that directly resulted in control frames being written back to the wire, such as SETTINGS ACKs or server-initiated RST_STREAMs.

When a client initiated a rapid flood of stream creation (HEADERS) immediately followed by stream termination RST_STREAM, items queued up in the control buffer without counting against the transport response frame threshold. An attacker can repeatedly trigger this flood sequence to bypass reader blocking, resulting in high CPU usage, and Denial of Service (DoS).

Denial of Service (Panic) in xDS RBAC Engine via Unsupported Fields inside NOT Rules

  • Affected Component: xDS RBAC
  • Impact: The xDS RBAC policy translators recursively generate matchers for nested rules. When a NOT rule wrapped an unsupported or unhandled field (such as SourcedMetadata), the recursive step returned an empty matcher. This could result in a runtime panic when the RBAC engine attempts to authorize an incoming request.

An attacker or misconfigured/malicious xDS management server delivering an LDS/RDS update containing a NOT rule around an unhandled field causes the gRPC server process to crash immediately (CWE-248 / Denial of Service).

Patches

Has the problem been patched? What versions should users upgrade to?

All three issues have been fixed in master and will be released in 1.82.1 shortly.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

If upgrading grpc-go immediately is not possible, apply the following workarounds based on your deployment architecture:

  • For xDS RBAC Vulnerabilities & Panics: Ensure that upstream xDS management servers do not push RBAC policies containing Metadata, RequestedServerName, or NOT rules wrapping unsupported fields (such as SourcedMetadata) to grpc-go servers.
  • For HTTP/2 Rapid Reset DOS: Configure upstream reverse proxies or load balancers (such as Envoy) with strict HTTP/2 max_concurrent_streams limits and active rate limiting on RST_STREAM frequency per connection.

Severity

Vulnerability Qualitative Severity Approximate CVSS v3.1 Score Primary Impact
xDS RBAC Authorization Bypass High 8.2 Unauthorized Access / Fail-Open
HTTP/2 Rapid Reset DOS Bypass High 7.5 High CPU Consumption / Denial of Service
xDS RBAC Engine Server Panic Medium 5.9 Process Crash / Denial of Service

high 8.7: CVE--2026--84445 Improper Validation of Array Index

Affected range <1.82.2
Fixed version 1.82.2
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.641%
EPSS Percentile 49th percentile
Description

A vulnerability exists in gRPC-Go servers configured with xds.NewGRPCServer() where a crafted request missing both :authority and Host headers can cause a server panic, resulting in a Denial of Service (DoS).

Servers built with xds.NewGRPCServer install an xDS routing interceptor on every RPC. This interceptor looks up the request’s :authority header to pick a virtual host. The HTTP/2 server transport previously accepted requests that had neither :authority nor Host. When this happened, the xDS routing interceptor attempted to access the first element of an empty slice of authorities, leading to an index out of bounds panic. Since the per-RPC goroutine does not recover from panics, the entire server process would terminate.

This panic occurs in the interceptor pipeline, meaning the transport credentials handshake (TLS, mTLS, or ALTS) and HTTP/2 connection establishment must complete successfully before the crafted request can reach this logic.

  • Insecure/Standard TLS: If the server permits insecure (plaintext) connections or standard credentials (where client certs are not checked), any unauthenticated remote attacker can trigger the crash.
  • mTLS / ALTS: If strict transport-level authentication is enforced at the network edge or transport layer (e.g., requiring a valid client certificate), the attacker must possess valid transport credentials to initiate the stream and trigger the panic.

Impact

An attacker can cause a complete outage of the gRPC server by sending a request missing both :authority and Host headers, provided they can successfully establish a transport connection.

Patches

The issue has been addressed in master (and backported to 1.84.0, 1.83.2 and 1.82.2). The fix updates the HTTP/2 transport layer to reject requests missing both :authority and Host headers early, maintaining consistency with and other gRPC language implementations.

high 8.7: CVE--2026--84304 Uncontrolled Resource Consumption

Affected range <=1.83.0
Fixed version 1.83.1
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
EPSS Score 0.609%
EPSS Percentile 48th percentile
Description

Impact

An unauthenticated remote attacker can initiate a gRPC stream and purposefully fragment their payload into millions of tiny (e.g., 1-byte) HTTP/2 DATA frames. Even if the total payload volume falls within the configured connection and stream flow-control windows, each independent fragment incurs memory overhead due to internal tracking structures and queue allocation.

Repeated fragmentation massively inflates the heap space consumed by the stream. An attacker multiplexing multiple concurrent streams can exhaust the memory bounds of the runtime, forcing a runtime panic or OutOfMemory condition and leading to a remote Denial of Service (DoS).

Patches

The change to fix this issue is merged in master and a patch release, 1.83.1, has been published that contains this fix.

Workarounds

This vulnerability is mitigated by implementing receive buffer compaction. Consecutive small data buffers are automatically coalesced into larger buffers from a shared pool once the overhead is perceived to be excessive relative to actual payload data, drastically minimizing per-frame memory overheads.

This behavior is enabled by default. A temporary escape hatch is provided via the environment variable GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION=false to disable the feature if unforeseen issues arise, but it will be removed in a future release.

critical: 0 high: 2 medium: 0 low: 0 expat 2.8.5-r0 (apk)

pkg:apk/alpine/expat@2.8.5-r0?os_name=alpine&os_version=3.24

high : CVE--2026--77214

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

high : CVE--2026--102633

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.348%
EPSS Percentile 26th percentile
Description
critical: 0 high: 1 medium: 0 low: 0 github.com/antchfx/xpath 1.3.3 (golang)

pkg:golang/github.com/antchfx/xpath@1.3.3

high 7.5: CVE--2026--32287 Uncontrolled Resource Consumption

Affected range <1.3.6
Fixed version 1.3.6
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.695%
EPSS Percentile 52nd percentile
Description

Boolean expressions that evaluate to true can cause an infinite loop in logicalQuery.Select, leading to 100% CPU usage. This can be triggered by top-level selectors such as "1=1" or "true()".

critical: 0 high: 1 medium: 0 low: 0 golang.org/x/text 0.25.0 (golang)

pkg:golang/golang.org/x/text@0.25.0

high : CVE--2026--56851

Affected range <0.41.0
Fixed version 0.41.0
EPSS Score 0.335%
EPSS Percentile 25th percentile
Description

The Nickname profile can panic with an out-of-bounds slice error when transforming crafted input into a short destination buffer.

@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.2-alpine

Name8.2.34-alpine3.24
Digestsha256:4203d470e6d27ccf2cbfe64a2ea4448d76a28d2325e6db55d76c076de6c1b02b
Vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
Pushed2 weeks ago
Size37 MB
Packages60
Flavoralpine
OS3.24
Runtime8.2.34
The base image is also available under the supported tag(s): 8.2-alpine3.24, 8.2-cli-alpine, 8.2-cli-alpine3.24, 8.2.34-alpine, 8.2.34-alpine3.24, 8.2.34-cli-alpine, 8.2.34-cli-alpine3.24

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.3-alpine
Minor runtime version update
Also known as:
  • 8.3.35-cli-alpine
  • 8.3.35-cli-alpine3.24
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.24
  • 8.3.35-alpine
  • 8.3.35-alpine3.24
  • 8.3-alpine3.24
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.24
  • Runtime: 8.3.35
2 weeks ago



8.4-alpine
Minor runtime version update
Also known as:
  • 8.4.26-cli-alpine
  • 8.4.26-cli-alpine3.24
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.24
  • 8.4.26-alpine
  • 8.4.26-alpine3.24
  • 8.4-alpine3.24
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: 42 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.4.26
2 weeks ago



8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.11-cli-alpine
  • 8.5.11-cli-alpine3.24
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.24
  • 8-cli-alpine
  • 8-cli-alpine3.24
  • cli-alpine
  • cli-alpine3.24
  • alpine
  • alpine3.24
  • 8.5.11-alpine
  • 8.5.11-alpine3.24
  • 8.5-alpine3.24
  • 8-alpine
  • 8-alpine3.24
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image contains 1 fewer package
  • Image has same number of vulnerabilities
Image details:
  • Size: 45 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.5.11
2 weeks ago



@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Outdated

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digest sha256:cf39ea6ae92872fcd421d820dbf2ac2b5ba77fc3675c81cfa1b4277c4bb8d957
vulnerabilities critical: 15 high: 33 medium: 0 low: 0
platform linux/amd64
size 118 MB
packages 254
📦 Base Image php:8.4-fpm-alpine
also known as
  • 8.4-fpm-alpine3.24
  • 8.4.26-fpm-alpine
  • 8.4.26-fpm-alpine3.24
digest sha256:a8091f6d2623b0b23a78a81c71b10e71545e72ba37176030445f347cd5b1bdee
vulnerabilities critical: 0 high: 2 medium: 8 low: 5 unspecified: 1
critical: 7 high: 6 medium: 0 low: 0 golang.org/x/crypto 0.38.0 (golang)

pkg:golang/golang.org/x/crypto@0.38.0

critical 10.0: CVE--2026--46595 Incorrect Implementation of Authentication Algorithm

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 10
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L
EPSS Score 0.503%
EPSS Percentile 41st percentile
Description

Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped.

critical 9.1: CVE--2026--42508 Improper Certificate Validation

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.654%
EPSS Percentile 50th percentile
Description

Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @Revoked.

critical 9.1: CVE--2026--39834 Integer Overflow or Wraparound

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
EPSS Score 0.637%
EPSS Percentile 49th percentile
Description

When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation.

critical 9.1: CVE--2026--39833 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested.

critical 9.1: CVE--2026--39832 Improper Preservation of Permissions

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.716%
EPSS Percentile 52nd percentile
Description

When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them.

critical 9.1: CVE--2026--39831 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) did not check the User Presence flag. Signatures generated without physical touch were accepted, allowing unattended use of a hardware security key. To restore the previous behavior, return a "no-touch-required" extension in Permissions.Extensions from PublicKeyCallback.

critical 9.1: CVE--2026--39830 Improper Restriction of Operations within the Bounds of a Memory Buffer

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
EPSS Score 0.621%
EPSS Percentile 48th percentile
Description

A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded.

high : CVE--2026--78662

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.431%
EPSS Percentile 35th percentile
Description

Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection.

Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection.

high : CVE--2026--56855

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.500%
EPSS Percentile 41st percentile
Description

Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection.

Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking.

high : CVE--2026--56854

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.437%
EPSS Percentile 36th percentile
Description

The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback.

high 7.5: CVE--2026--46597 Incorrect Type Conversion or Cast

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.620%
EPSS Percentile 48th percentile
Description

An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.

high 7.5: CVE--2026--39829 Improper Validation of Specified Quantity in Input

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2.

high : CVE--2025--47913

Affected range <0.43.0
Fixed version 0.43.0
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

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

critical: 3 high: 7 medium: 0 low: 0 github.com/rabbitmq/amqp091-go 1.10.0 (golang)

pkg:golang/github.com/rabbitmq/amqp091-go@1.10.0

critical 9.5: CVE--2026--77411 Improper Check for Unusual or Exceptional Conditions

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.5
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A critical stream desynchronization vulnerability has been identified in the AMQP wire-protocol parser. When parsing a long string (readLongstr) within a table field, providing a length that exceeds the maximum signed 32-bit integer (2^31 - 1, or roughly 2.1 GiB) triggers an improper error-handling condition. The parser abruptly aborts the read and returns a success status ("",nil) without consuming the specified bytes from the underlying network buffer. This causes all subsequent read operations to become misaligned. The parser interprets arbitrary offsets within the remaining payload bytes as valid AMQP frame headers, leading to potential Remote Code Execution (RCE), data injection, or complete connection hijacking.

Vulnerability Details

The vulnerability exists within the bounds-checking logic of the readLongstr function:

// read.go:113-114 — silent no-op return, bytes left in stream
if length > (^uint32(0) >> 1) {
    return  // returns "", nil, does NOT consume `length` bytes
}

When length evaluates to a value greater than 0x7FFFFFFF:

  1. The function executes a silent return statement.
  2. Because Go utilizes named or zero-value initialization for unassigned return registers, this yields "", nil (indicating a successful read of an empty string).
  3. The Critical Failure: The reader's cursor is not advanced by length bytes. The malformed payload remains sitting in the TCP/buffer stream.

Impact

As readTable continues iterating over the stream under the assumption that the string was successfully parsed, the byte alignment is entirely broken.

  • Parser Desynchronization: Future AMQP frame headers are read from arbitrary offsets inside the attacker-controlled message payload.
  • Payload Reinterpretation: A malicious actor can carefully craft the trailing bytes of the initial payload to perfectly mimic valid AMQP frames (e.g., connection.close, channel.open, or message publishing frames), forcing the client/server to execute unintended actions.

critical 9.4: CVE--2026--77405 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.4
CVSS Vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:L/SA:N
EPSS Score 0.282%
EPSS Percentile 19th percentile
Description

Summary

A structural security weakness exists in the AMQP client's TLS configuration generator (tlsConfigFromURI). When constructing a *tls.Config object from an amqps:// connection URI, the library initializes the structure without explicitly defining the MinVersion field.

While modern versions of the Go compiler toolchain (Go 1.18+) default the implicit minimum version to TLS 1.2, this security posture relies entirely on an implicit toolchain dependency. If the library is compiled using legacy Go toolchains (Go < 1.18), or if a future toolchain introduces fallback behavior, the client could silently negotiate obsolete and insecure TLS 1.0 or TLS 1.1 protocols during connection handshakes with a compromised or malicious AMQP broker.


Vulnerability Details

Mechanism

The vulnerability lies in the lack of an explicit safety floor when assigning configurations inside the URI component:

// Example within uri.go's tlsConfigFromURI
cfg := &tls.Config{
    ServerName: host,
    // MinVersion is left completely unassigned (defaults to 0, or toolchain default)
}

In the Go standard library (crypto/tls), leaving MinVersion: 0 instructs the runtime to choose the toolchain's default minimum. Prior to Go 1.18, this default allowed negotiation down to TLS 1.0. Relying on implicit compiler configurations violates secure coding practices by decoupling the library's security posture from its source code, leaving applications vulnerable based solely on how they are built.

Impact

If a client application is built with a legacy compiler environment or a custom Go runtime, an attacker capable of executing a Man-in-the-Middle (MitM) attack can force the connection to downgrade to TLS 1.0 or 1.1. This exposes the AMQP protocol data stream to well-known cryptographic vulnerabilities (such as BEAST, POODLE, or SWEET32), allowing the attacker to decrypt or alter message payloads, connection parameters, and authentication credentials.


Attack Vector

An attacker performing a network-level downgrade attack can intercept a client connection built under a legacy toolchain:

  1. Interception: A client application compiled on a legacy pipeline attempts to establish an encrypted connection to an AMQP broker.
  2. Protocol Downgrade: The attacker intercepts the TLS Client Hello handshake and forces a downgrade negotiation to TLS 1.0.
  3. Cryptographic Exploitation: Because MinVersion was never explicitly locked to tls.VersionTLS12 by the library, the client accepts the weak cipher suites, allowing the attacker to monitor or manipulate the underlying AMQP session data.

critical 9.1: CVE--2026--77408 Integer Overflow or Wraparound

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.1
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:H/SC:L/SI:H/SA:L
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A data integrity and protocol corruption vulnerability exists in the AMQP client's property serialization logic. When encoding AMQP short string (shortstr) fields—such as identifiers, routing strings, and content metadata—the length of the string is explicitly cast to a fixed-size 8-bit unsigned integer (uint8).

If an application provides a property string exceeding 255 bytes, the length counter silently wraps around (e.g., a length of 300 wraps to 44). As a result, the parser writes only a truncated portion of the string into the outgoing connection buffer without returning an error. This leads to silent data corruption, broken RPC routing, and unpredictable broker-side state behavior.


Vulnerability Details

Mechanism

The vulnerability resides in the wire-level serialization logic for application publishing properties:

// write.go:246
length := uint8(len(b))  // wraps silently when len(b) > 255 (e.g., 300 -> 44)

Because Go allows silent integer truncation during explicit type casting, lengths larger than $2^8 - 1$ lose their most significant bits. The underlying stream writer reads length to determine how many bytes to pull from the buffer. Because no error or boundary check accompanies this truncation, the application believes the full payload was transmitted successfully.

Affected Properties

This truncation behavior affects every standard AMQP field serialized as a shortstr:

  • CorrelationId
  • ReplyTo
  • MessageId
  • Expiration
  • UserId
  • AppId
  • ContentType
  • ContentEncoding
  • Type

Impact

The critical consequence is silent protocol desynchronization at the application layer. The underlying TCP stream remains framed properly (because the shortened length matches the bytes written), but the business logic is corrupted. Distributed transactions, request-reply correlations, and tracing headers are truncated, causing downstream systems to drop messages or route them to incorrect consumers.


Attack Vector

An attacker who can influence metadata fields processed by an upstream application (such as a user-supplied tracking ID or a long content-type header) can exploit this to break system components:

  1. Targeting RPC Routing: A user passes a malicious or overly long CorrelationId of 300 bytes through an application endpoint.
  2. Silent Truncation: The library wraps the length value to 44, transmitting only the first 44 bytes to the rabbitMQ broker.
  3. Broken Correlation: When the service processes the request and responds, the replying consumer attempts to route the message using the full 300-byte identifier. Because the broker only recognizes the truncated 44-byte ID, the reply loop breaks silently, leading to hanging processes or data leaks across transaction boundaries.

high 8.9: CVE--2026--79921 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.550%
EPSS Percentile 44th percentile
Description

Summary
A vulnerability exists in the amqp091-go client library where a compromised or malicious AMQP broker can force the client to allocate resources for and process content body frames that exceed the negotiated frame_max limit. This can lead to unexpected memory consumption or application-layer denial of service (DoS), bypassing the protocol's built-in framing constraints.

Details
During a standard AMQP 0-9-1 connection handshake, the client and the broker negotiate a maximum frame size (frame_max), for example, 4096 bytes.

However, after negotiation, a malicious broker can send a valid basic.deliver sequence containing a content body frame whose header declares a payload size larger than the negotiated frame_max. Instead of enforcing the agreed-upon limit and closing the connection with a frame-error (as mandated by the AMQP 0-9-1 specification), the amqp091-go client:

  1. Accepts the broker-declared oversized frame size.
  2. Allocates memory based on this oversized declaration.
  3. Reads the payload, assembles it into the message, and delivers it to the consumer.

Impact

  • Denial of Service (DoS): If a broker sends extremely large frame sizes, it can trigger significant memory allocations on the client side, potentially leading to Out-Of-Memory (OOM) crashes.
  • Protocol Violation: The client fails to enforce negotiated connection parameters, trusting the broker implicitly even after constraints have been established.

high 8.9: CVE--2026--77412 Incorrect Conversion between Numeric Types

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A vulnerability in the readField function allows a malicious or compromised AMQP server to trigger an unhandled runtime panic in the client application, leading to an immediate crash of the entire process.

Details
When parsing incoming AMQP frames, the readField function processes byte-array fields (type tag 'x') by reading a 32-bit big-endian integer to determine the length of the data payload.

// read.go:253-263
case 'x':
    var len int32
    if err = binary.Read(r, binary.BigEndian, &len); err != nil {
        return nil, err
    }
    value := make([]byte, len)  // PANICS if len < 0

If a server transmits a length value of 0xFFFFFFFF, it is interpreted by the client as a signed 32-bit integer with a value of -1. Passing a negative integer to Go's built-in make() function for slice allocation triggers an unrecoverable runtime panic (panic: len out of range).

Because the reader goroutine handles network I/O without an explicit recover() wrapper, this panic propagates up to the runtime root, abruptly terminating the host application.

Attack Vector / Exploitation Scenario
An attacker capable of spoofing, compromising, or controlling an AMQP broker can exploit this flaw during two primary phases:

  1. Connection Establishment: Sending a malicious connection.start handshake frame containing server-properties with an 'x' type field assigned a negative length.
  2. Message Delivery: Delivering a message payload where the header table contains a malformed field matching the criteria above.

Impact
Availability: High. A single malformed frame can reliably crash the client process, resulting in a persistent Denial of Service (DoS) if the client automatically reconnects and receives the same payload.

high 8.9: CVE--2026--77410 Memory Allocation with Excessive Size Value

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A flaw in the recvContent function allows a malicious AMQP server to trigger an Out-of-Memory (OOM) error, forcing the host operating system or container runtime to immediately terminate the client process.

Vulnerability Details
When receiving message content payloads, the client processes the expected size from the content header framework. The recvContent function attempts to optimize performance by pre-allocating memory for the message body based on the ch.header.Size field, which is a 64-bit unsigned integer (uint64).

// channel.go:495-496
if cap(ch.body) == 0 {
    ch.body = make([]byte, 0, ch.header.Size)  // unbounded
}

The underlying library fails to validate or cap this requested size against any upper boundary—such as the maximum frame size negotiated during connection establishment (FrameMax). If a server specifies an extreme body size (e.g., 2^62 bytes), the Go runtime attempts to allocate an exabyte-scale slice capacity. This immediately exhausts available system memory, causing the operating system's OOM killer to terminate the application.

Attack Vector / Exploitation Scenario

  • Message Delivery Phase: A malicious or compromised AMQP broker sends a standard basic.deliver frame containing a content header with an intentionally inflated body-size variable.
  • Authentication Requirement: No special privileges or authentication bypasses are required; the crash occurs seamlessly during normal message consumption.

Impact

  • Availability: High. Exploded memory consumption results in an instant process termination, destroying application state and availability for all threads sharing the environment.

high 8.9: CVE--2026--77403 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A Denial of Service (DoS) vulnerability exists in the AMQP client's connection negotiation logic. The AMQP specification explicitly mandates a strict minimum frame size of 4096 bytes to prevent pathological packet fragmentation. While the library defines a frameMinSize = 4096 constant, the connection negotiation loop fails to enforce this boundary, blindly accepting whatever maximum frame size (FrameMax) the server advertises during the handshake.

If a client connects to a malicious or compromised AMQP broker that advertises an extremely low FrameMax (such as 1 byte), the negotiation succeeds. Consequently, every subsequent message transmission is forced to splinter into thousands or millions of single-byte frames, causing massive CPU overhead, thread contention, and a near-instantaneous application freeze.


Vulnerability Details

Mechanism

During the connection establishment phase, the client and server negotiate connection parameters—including maximum channel count, heartbeat intervals, and maximum frame sizes. The vulnerability is located where the client accepts the server's tuning parameters:

// Connection negotiation logic maps server values directly without validation
if serverSettings.FrameMax > 0 {
    // VULNERABILITY: Lacks a floor validation check against frameMinSize (4096)
    c.config.FrameMax = serverSettings.FrameMax 
}

Because there is no conditional check asserting that serverSettings.FrameMax >= frameMinSize, a value below the protocol specification floor is successfully registered. When the application later passes data payloads to the frame writer, the chunking algorithm splits the payload using the negotiated FrameMax value as its chunk window divisor.

Impact

When FrameMax is set to an absurdly low threshold (e.g., 1 to 10 bytes):

  • A standard 10 KiB message payload requires tens of thousands of individual write operations and frame headers.
  • The system's CPU becomes entirely bound by frame serialization, memory allocation for frame structures, and context switching within the network output loops.
  • This results in an application-layer Denial of Service (DoS) affecting not just the specific AMQP connection, but potentially the entire host system due to CPU resource starvation.

Attack Vector

An attacker who compromises an upstream AMQP broker, performs a Man-in-the-Middle (MitM) interception, or tricks an application into connecting to an unauthorized external rogue broker can trigger this vulnerability:

  1. Rogue Handshake: The client application connects to an AMQP endpoint controlled by the attacker.
  2. Malicious Parameter Tuning: During the connection.tune phase, the rogue server returns a FrameMax value of 1.
  3. Resource Exhaustion Trigger: The client completes the handshake successfully. As soon as the client attempts to publish a message or process traffic, the internal loop fragments the data into single-byte frames, spiking the host's CPU usage to 100% and disabling the application thread.

high 8.7: CVE--2026--77404 Improper Encoding or Escaping of Output

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L
EPSS Score 0.098%
EPSS Percentile 1st percentile
Description

Summary

A query parameter injection vulnerability exists in the AMQP client's connection URI formatting logic. When generating or parsing connection URIs, TLS-related filesystem paths (such as certificates or keys) are appended directly to the URI's query string using string concatenation rather than secure URL encoding via functions like url.QueryEscape.

If an application handles a TLS file path containing special character delimiters (such as & or =), these characters are interpreted as parameter separators by the URI parser. If the resulting URI.String() output is subsequently re-parsed via ParseURI, the injected fields can silently overwrite or hijack critical configuration parameters, forcing the client to use arbitrary connection settings or alternate TLS files.


Vulnerability Details

Mechanism

The vulnerability lies within the lack of proper escaping when compiling connection string components into a raw URL format:

// Example of insecure string concatenation during URI building
uri := fmt.Sprintf("amqps://user:pass@<!-- -->host/%s?certfile=%s&keyfile=%s", vhost, certPath, keyPath)

Because certPath and keyPath are not passed through url.QueryEscape, special URL characters preserve their control meanings. For instance, if a user supply a certificate path named:
/tmp/cert=foo&keyfile=/evil/path

The generated string translates into:
...?certfile=/tmp/cert=foo&keyfile=/evil/path&keyfile=/original/path

When this string passes back through ParseURI (common in connection re-dial routines or configuration replication steps), standard URL parsing mechanics treat the string as multiple distinct parameters. Depending on map assignment order inside the parser, the injected keys take precedence over the original parameters.

Impact

By manipulating the file paths used for TLS assets, an attacker or compromised local sub-system can:

  • Inject arbitrary alternative options or override protocol settings.
  • Substitute or switch keyfiles, leading to connection failures or the parsing of unauthorized cryptographic assets.
  • Corrupt connection state variables, triggering application-layer failures during connection setup or recovery.

Attack Vector

An attacker who has partial control over directory naming conventions or environmental variables used to specify local infrastructure paths can execute a parameter injection attack:

  1. Path Creation: An attacker sets up a path containing deliberate URL parameter delimiters (e.g., /var/lib/certs/client.crt?cacertfile=/tmp/fake_ca.crt&).
  2. String Generation: The application serializes the active connection state or passes the paths down to an unescaped URI builder function.
  3. Configuration Hijack: The URI string is generated with the injected parameter embedded into the query structure. When the client attempts to reuse or re-parse this connection string during a connection retry or worker spin-up, it parses the injected cacertfile parameter, loading a different, unverified Certificate Authority string.

high 8.2: CVE--2026--77406 Signed to Unsigned Conversion Error

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.2
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L
EPSS Score 0.412%
EPSS Percentile 33rd percentile
Description

Summary

A logic and resource exhaustion vulnerability exists in the AMQP client's Quality of Service (Qos) configuration method. The Qos function accepts signed integers (int) for the prefetchCount and prefetchSize parameters but casts them directly to unsigned integers (uint16 and uint32, respectively) when formatting the wire-level frame.

If a developer passes a negative integer (such as -1) to these parameters—frequently intended as a sentinel value meaning "no change" or "no limit"—the application performs an implicit signed-to-unsigned conversion. This wraps the values to their absolute maximum limit ($65535$ and $4294967295$). Consequently, a consumer expecting restricted message delivery rates is suddenly flooded with an unlimited volume of messages, potentially exhausting memory resources and crashing the application.


Vulnerability Details

Mechanism

The bug manifests during the structural assignment inside the channel's Qos method:

// channel.go:795-796
PrefetchCount: uint16(prefetchCount),  // -1 wraps to 65535
PrefetchSize:  uint32(prefetchSize),   // -1 wraps to 4294967295

In Go, converting a negative signed integer to an unsigned integer shifts the value via two's complement arithmetic. Because no boundary validation or signedness check occurs prior to the cast:

  • Passing -1 for prefetchCount yields a wire value of 65535.
  • Passing -1 for prefetchSize yields a wire value of 4294967295.

Impact

The AMQP broker interprets a prefetch-count of 65535 as an instruction to dispatch messages to the consumer with virtually no concurrency limits.

If the application is processing heavy payloads or relies on strict rate-limiting to maintain stability, this unexpected flood will cause rapid heap memory growth, unmanageable processing queues, and an eventual Out-Of-Memory (OOM) termination.


Attack Vector

An attacker who can manipulate configuration files, environmental variables, or API inputs that dictate client Qos settings can trigger an application-layer Denial of Service:

  1. Malicious Input: An attacker sets a service's prefetch configuration parameter to -1.
  2. Implicit Overflow: The application initializes the channel, executes Qos(-1, ...), and transmits an unintended maximum-capacity request to the RabbitMQ/AMQP broker.
  3. Consumer Exhaustion: The broker flushes the entire contents of the queue directly into the client consumer's network buffer, bypassing expected application concurrency barriers and inducing a crash.

high 7.0: CVE--2026--77407 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:L/SA:L
EPSS Score 0.128%
EPSS Percentile 2nd percentile
Description

Summary

An information disclosure vulnerability exists in the AMQP client implementation's authentication handling configuration. Following a successful connection handshake, the Connection.Config.SASL field stores the Authentication implementation state used to establish the session.

For standard PLAIN authentication, this state utilizes the PlainAuth struct, which defines both Username and Password as publicly exported, plaintext string fields. Because this sensitive data is retained permanently in-memory within an exported field structure, any peripheral code, internal package, reflective logger, dependency, or automated debugging utility with access to the core *Connection object can read and expose the raw credentials.


Vulnerability Details

Mechanism

The vulnerability stems from the structural design of the configuration storage used during and after the AMQP handshake:

// auth.go:21-23
type PlainAuth struct {
    Username string
    Password string  // exported plaintext
}

When an application initializes a connection, the PlainAuth object is deeply nested inside the configuration structure (Connection.Config). Even after the handshake concludes and authentication is complete, this structure persists natively in-memory for the duration of the network connection's lifecycle.

Because Password is an exported string field, standard automated inspection mechanisms can read its value without restriction.

Affected Code Paths & Integrations

Any sub-component or library that traverses or reads the *Connection object will inadvertently read the plaintext password, including:

  • Reflective Loggers: Structured logging frameworks that serialize nested configuration structs into JSON/Log formats.
  • APM & Performance Agents: Automated telemetry or Application Performance Monitoring tools that capture state snapshots.
  • Debugging & Panic Handlers: Mid-tier software or dump libraries designed to capture goroutine state or print deep struct hierarchies upon program errors or signals.

Impact

The credential remains vulnerable to leak paths into logging pipelines, log aggregators, security information and event management (SIEM) systems, or standard output. Once transmitted to external log infrastructure, these credentials become accessible to unprivileged operators or any actor with access to log archives.


Attack Vector

An attacker does not necessarily need direct remote code execution to exploit this flaw; instead, the vulnerability acts as a credential harvesting vector inside multi-tenant environments or via secondary log exposure:

  1. Configuration Dump: An operator configures a standard reflective logger or third-party APM package to capture system state parameters, including the active AMQP *Connection object.
  2. Reflective Access: The inspection engine uses Go's reflect package to walk the structural hierarchy, pulling the string value from Connection.Config.SASL.(*PlainAuth).Password.
  3. Exfiltration: The plaintext password is written to standard system logs, which are then scraped into shared logging aggregators, exposing production infrastructure credentials to a wider audience.
critical: 2 high: 8 medium: 0 low: 0 stdlib 1.26.8 (golang)

pkg:golang/stdlib@1.26.8

critical : CVE--2026--56857

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.493%
EPSS Percentile 41st percentile
Description

On Windows, when the target of Root.Mkdir or Root.MkdirAll is a junction pointing to an empty location, the operation can create a directory at the junction target even when that target is located outside the root. This only applies to operations where the last path component is a junction (path/to/junction, but not path/junction/target).

critical : CVE--2026--78663

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--97031

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.394%
EPSS Percentile 32nd percentile
Description

Multiple ECH outer extension references are not permitted under RFC 9849; previously, a client could send a well-crafted packet that could trigger memory exhaustion in the server process by specifying multiple references.

We now reject these as malformed and curb the memory amplification vector as a result.

high : CVE--2026--94440

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.404%
EPSS Percentile 33rd percentile
Description

Parsing a multipart form can bypass memory limits and read an arbitrarily long line into memory when the remaining limit at the start of a part is less than 400 bytes.

high : CVE--2026--94439

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.315%
EPSS Percentile 23rd percentile
Description

When an HTTP server handler sends a 2xx response to an HTTP/1 CONNECT request and returns without hijacking the connection, the server improperly continues to read and serve requests from the connection. Since a 2xx response to an HTTP/1 CONNECT converts the connection into a tunnel, the server should not treat the connection as continuing to contain HTTP.

The impact of this misbehavior is mostly limited to potential request smuggling, where an intermediate proxy considers the data on the connection to be tunneled and the server considers it to be HTTP.

high : CVE--2026--78669

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78667

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.379%
EPSS Percentile 30th percentile
Description

When parsing a Range header containing a large number of small ranges, FileServer(FS), ServeContent, and ServeFile(FS) can consume an excessive amount of CPU.

high : CVE--2026--78660

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--56866

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.309%
EPSS Percentile 22nd percentile
Description

When http.Transport sends an HTTP/1 CONNECT request with a non-empty Request.Body, it writes the body directly to the connection without framing after the request headers. If the server rejects the CONNECT request with a non-2xx keep-alive response, Transport returns the connection to the idle pool. Because CONNECT requests do not have a request body, the server may interpret the trailing body bytes as a subsequent pipelined HTTP/1.1 request on the connection, leaving the pooled connection desynchronized and causing the next caller that reuses it to read the response to the injected request. In reverse proxies (including httputil.ReverseProxy) that forward CONNECT requests through a shared Transport, this can lead to cross-user response poisoning.

critical: 2 high: 5 medium: 0 low: 0 golang.org/x/net 0.40.0 (golang)

pkg:golang/golang.org/x/net@0.40.0

critical : CVE--2026--39821

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.692%
EPSS Percentile 51st percentile
Description

The ToASCII and ToUnicode functions incorrectly accept Punycode-encoded labels that decode to an ASCII-only label. For example, ToUnicode("xn--example-.com") incorrectly returns the name "example.com" rather than an error.

This behavior can lead to privilege escalation in programs using the idna package. For example, a program which performs privilege checks on the ASCII hostname may reject "example.com" but permit "xn--example-.com". If that program subsequently converts the ASCII hostname to Unicode, it will inadvertently permits access to the Unicode name "example.com".

critical : CVE--2026--78663

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--78669

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78660

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--46600

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

Parsing an invalid SVCB or HTTPS RR can panic when the size of a parameter value overflows the message buffer.

high : CVE--2026--33814

Affected range <0.53.0
Fixed version 0.53.0
EPSS Score 0.781%
EPSS Percentile 55th percentile
Description

When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a value of 0.

critical: 1 high: 3 medium: 0 low: 0 google.golang.org/grpc 1.71.0 (golang)

pkg:golang/google.golang.org/grpc@1.71.0

critical 9.1: CVE--2026--33186 Improper Authorization

Affected range <1.79.3
Fixed version 1.79.3
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 1.625%
EPSS Percentile 75th percentile
Description

Impact

What kind of vulnerability is it? Who is impacted?

It is an Authorization Bypass resulting from Improper Input Validation of the HTTP/2 :path pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting requests where the :path omitted the mandatory leading slash (e.g., Service/Method instead of /Service/Method). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official grpc/authz package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with /) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present.

Who is impacted?
This affects gRPC-Go servers that meet both of the following criteria:

  1. They use path-based authorization interceptors, such as the official RBAC implementation in google.golang.org/grpc/authz or custom interceptors relying on info.FullMethod or grpc.Method(ctx).
  2. Their security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed :path headers directly to the gRPC server.

Patches

Has the problem been patched? What versions should users upgrade to?

Yes, the issue has been patched. The fix ensures that any request with a :path that does not start with a leading slash is immediately rejected with a codes.Unimplemented error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):

  • v1.79.3
  • The latest master branch.

It is recommended that all users employing path-based authorization (especially grpc/authz) upgrade as soon as the patch is available in a tagged release.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods:

1. Use a Validating Interceptor (Recommended Mitigation)

Add an "outermost" interceptor to your server that validates the path before any other authorization logic runs:

func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)

2. Infrastructure-Level Normalization

If your gRPC server is behind a reverse proxy or load balancer (such as Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to enforce strict HTTP/2 compliance for pseudo-headers and reject or normalize requests where the :path header does not start with a leading slash.

3. Policy Hardening

Switch to a "default deny" posture in your authorization policies (explicitly listing all allowed paths and denying everything else) to reduce the risk of bypasses via malformed inputs.

high 8.8: GHSA--hrxh--6v49--42gf Uncaught Exception

Affected range <1.82.1
Fixed version 1.82.1
CVSS Score 8.8
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Description

Multiple security vulnerabilities have been identified and addressed in grpc-go affecting the xDS RBAC authorization engine (internal/xds/rbac) and the HTTP/2 transport server implementation (internal/transport). These vulnerabilities could result in:

  • Authorization Bypass (Fail-Open) when translating xDS RBAC policies containing Metadata or RequestedServerName fields.
  • Denial of Service (High CPU Consumption) due to an HTTP/2 Rapid Reset mitigation bypass during client-initiated stream resets.
  • Denial of Service (Server Panic) when parsing crafted xDS RBAC policies containing NOT rules around unsupported fields.

Impact

What kind of vulnerability is it? Who is impacted?

xDS RBAC Authorization Bypass via Metadata & RequestedServerName matchers

  • Affected Component: xDS RBAC
  • Impact: When building policy matchers for gRPC RBAC from xDS configurations, unsupported permission and principal rules (specifically Metadata and RequestedServerName) were silently ignored and treated as no-ops.
    • If an authorization policy relied purely on these matchers for access control, treating those rules as no-ops effectively removed the restrictions.
  • If these unsupported rules were nested inside logical NOT rules (Permission_NotRule / Principal_NotId) or multi-condition OR/AND rules, silently dropping them changed the boolean logic flow of the authorization engine.

As a result, policy evaluation decisions could fail open, allowing unauthorized clients to access protected gRPC services or resources.

HTTP/2 Rapid Reset Mitigation Bypass / Denial of Service via Stream Aborts

  • Affected Component: HTTP/2 transport
  • Impact: Earlier mitigations in grpc-go for HTTP/2 Rapid Reset only applied threshold checks to items that directly resulted in control frames being written back to the wire, such as SETTINGS ACKs or server-initiated RST_STREAMs.

When a client initiated a rapid flood of stream creation (HEADERS) immediately followed by stream termination RST_STREAM, items queued up in the control buffer without counting against the transport response frame threshold. An attacker can repeatedly trigger this flood sequence to bypass reader blocking, resulting in high CPU usage, and Denial of Service (DoS).

Denial of Service (Panic) in xDS RBAC Engine via Unsupported Fields inside NOT Rules

  • Affected Component: xDS RBAC
  • Impact: The xDS RBAC policy translators recursively generate matchers for nested rules. When a NOT rule wrapped an unsupported or unhandled field (such as SourcedMetadata), the recursive step returned an empty matcher. This could result in a runtime panic when the RBAC engine attempts to authorize an incoming request.

An attacker or misconfigured/malicious xDS management server delivering an LDS/RDS update containing a NOT rule around an unhandled field causes the gRPC server process to crash immediately (CWE-248 / Denial of Service).

Patches

Has the problem been patched? What versions should users upgrade to?

All three issues have been fixed in master and will be released in 1.82.1 shortly.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

If upgrading grpc-go immediately is not possible, apply the following workarounds based on your deployment architecture:

  • For xDS RBAC Vulnerabilities & Panics: Ensure that upstream xDS management servers do not push RBAC policies containing Metadata, RequestedServerName, or NOT rules wrapping unsupported fields (such as SourcedMetadata) to grpc-go servers.
  • For HTTP/2 Rapid Reset DOS: Configure upstream reverse proxies or load balancers (such as Envoy) with strict HTTP/2 max_concurrent_streams limits and active rate limiting on RST_STREAM frequency per connection.

Severity

Vulnerability Qualitative Severity Approximate CVSS v3.1 Score Primary Impact
xDS RBAC Authorization Bypass High 8.2 Unauthorized Access / Fail-Open
HTTP/2 Rapid Reset DOS Bypass High 7.5 High CPU Consumption / Denial of Service
xDS RBAC Engine Server Panic Medium 5.9 Process Crash / Denial of Service

high 8.7: CVE--2026--84445 Improper Validation of Array Index

Affected range <1.82.2
Fixed version 1.82.2
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.641%
EPSS Percentile 49th percentile
Description

A vulnerability exists in gRPC-Go servers configured with xds.NewGRPCServer() where a crafted request missing both :authority and Host headers can cause a server panic, resulting in a Denial of Service (DoS).

Servers built with xds.NewGRPCServer install an xDS routing interceptor on every RPC. This interceptor looks up the request’s :authority header to pick a virtual host. The HTTP/2 server transport previously accepted requests that had neither :authority nor Host. When this happened, the xDS routing interceptor attempted to access the first element of an empty slice of authorities, leading to an index out of bounds panic. Since the per-RPC goroutine does not recover from panics, the entire server process would terminate.

This panic occurs in the interceptor pipeline, meaning the transport credentials handshake (TLS, mTLS, or ALTS) and HTTP/2 connection establishment must complete successfully before the crafted request can reach this logic.

  • Insecure/Standard TLS: If the server permits insecure (plaintext) connections or standard credentials (where client certs are not checked), any unauthenticated remote attacker can trigger the crash.
  • mTLS / ALTS: If strict transport-level authentication is enforced at the network edge or transport layer (e.g., requiring a valid client certificate), the attacker must possess valid transport credentials to initiate the stream and trigger the panic.

Impact

An attacker can cause a complete outage of the gRPC server by sending a request missing both :authority and Host headers, provided they can successfully establish a transport connection.

Patches

The issue has been addressed in master (and backported to 1.84.0, 1.83.2 and 1.82.2). The fix updates the HTTP/2 transport layer to reject requests missing both :authority and Host headers early, maintaining consistency with and other gRPC language implementations.

high 8.7: CVE--2026--84304 Uncontrolled Resource Consumption

Affected range <=1.83.0
Fixed version 1.83.1
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
EPSS Score 0.609%
EPSS Percentile 48th percentile
Description

Impact

An unauthenticated remote attacker can initiate a gRPC stream and purposefully fragment their payload into millions of tiny (e.g., 1-byte) HTTP/2 DATA frames. Even if the total payload volume falls within the configured connection and stream flow-control windows, each independent fragment incurs memory overhead due to internal tracking structures and queue allocation.

Repeated fragmentation massively inflates the heap space consumed by the stream. An attacker multiplexing multiple concurrent streams can exhaust the memory bounds of the runtime, forcing a runtime panic or OutOfMemory condition and leading to a remote Denial of Service (DoS).

Patches

The change to fix this issue is merged in master and a patch release, 1.83.1, has been published that contains this fix.

Workarounds

This vulnerability is mitigated by implementing receive buffer compaction. Consecutive small data buffers are automatically coalesced into larger buffers from a shared pool once the overhead is perceived to be excessive relative to actual payload data, drastically minimizing per-frame memory overheads.

This behavior is enabled by default. A temporary escape hatch is provided via the environment variable GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION=false to disable the feature if unforeseen issues arise, but it will be removed in a future release.

critical: 0 high: 2 medium: 0 low: 0 expat 2.8.5-r0 (apk)

pkg:apk/alpine/expat@2.8.5-r0?os_name=alpine&os_version=3.24

high : CVE--2026--77214

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

high : CVE--2026--102633

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.348%
EPSS Percentile 26th percentile
Description
critical: 0 high: 1 medium: 0 low: 0 golang.org/x/text 0.25.0 (golang)

pkg:golang/golang.org/x/text@0.25.0

high : CVE--2026--56851

Affected range <0.41.0
Fixed version 0.41.0
EPSS Score 0.335%
EPSS Percentile 25th percentile
Description

The Nickname profile can panic with an out-of-bounds slice error when transforming crafted input into a short destination buffer.

critical: 0 high: 1 medium: 0 low: 0 github.com/antchfx/xpath 1.3.3 (golang)

pkg:golang/github.com/antchfx/xpath@1.3.3

high 7.5: CVE--2026--32287 Uncontrolled Resource Consumption

Affected range <1.3.6
Fixed version 1.3.6
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.695%
EPSS Percentile 52nd percentile
Description

Boolean expressions that evaluate to true can cause an infinite loop in logicalQuery.Select, leading to 100% CPU usage. This can be triggered by top-level selectors such as "1=1" or "true()".

@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.4-alpine

Name8.4.26-alpine3.24
Digestsha256:7cbe0a1996d1b77fc8fdc6547f35b8372fd57489c54aac3d634434ed2e851e7a
Vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
Pushed2 weeks ago
Size42 MB
Packages60
Flavoralpine
OS3.24
Runtime8.4.26
The base image is also available under the supported tag(s): 8.4-alpine3.24, 8.4-cli-alpine, 8.4-cli-alpine3.24, 8.4.26-alpine, 8.4.26-alpine3.24, 8.4.26-cli-alpine, 8.4.26-cli-alpine3.24

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.11-cli-alpine
  • 8.5.11-cli-alpine3.24
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.24
  • 8-cli-alpine
  • 8-cli-alpine3.24
  • cli-alpine
  • cli-alpine3.24
  • alpine
  • alpine3.24
  • 8.5.11-alpine
  • 8.5.11-alpine3.24
  • 8.5-alpine3.24
  • 8-alpine
  • 8-alpine3.24
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: 45 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.5.11
2 weeks ago



@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.3-alpine

Name8.3.35-alpine3.24
Digestsha256:683cad5c01894c14b5602645e6df793280c414482b07f0ea447ec68d9e7b821c
Vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
Pushed2 weeks ago
Size38 MB
Packages60
Flavoralpine
OS3.24
Runtime8.3.35
The base image is also available under the supported tag(s): 8.3-alpine3.24, 8.3-cli-alpine, 8.3-cli-alpine3.24, 8.3.35-alpine, 8.3.35-alpine3.24, 8.3.35-cli-alpine, 8.3.35-cli-alpine3.24

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.11-cli-alpine
  • 8.5.11-cli-alpine3.24
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.24
  • 8-cli-alpine
  • 8-cli-alpine3.24
  • cli-alpine
  • cli-alpine3.24
  • alpine
  • alpine3.24
  • 8.5.11-alpine
  • 8.5.11-alpine3.24
  • 8.5-alpine3.24
  • 8-alpine
  • 8-alpine3.24
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: 45 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.5.11
2 weeks ago



8.4-alpine
Minor runtime version update
Also known as:
  • 8.4.26-cli-alpine
  • 8.4.26-cli-alpine3.24
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.24
  • 8.4.26-alpine
  • 8.4.26-alpine3.24
  • 8.4-alpine3.24
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: 42 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.4.26
2 weeks ago



@github-actions

Copy link
Copy Markdown

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:cbc1ad12995e45c880817838f5e9f7aec21c3232e5c3671b010ee3919b5ef060
vulnerabilitiescritical: 15 high: 33 medium: 0 low: 0
platformlinux/amd64
size114 MB
packages254
📦 Base Image php:8.2-fpm-alpine
also known as
  • 8.2-fpm-alpine3.24
  • 8.2.34-fpm-alpine
  • 8.2.34-fpm-alpine3.24
digestsha256:bfc19025aa85d59566ca49a32bba6e49f8f828d7c75902dff21860ab458e34f9
vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
critical: 7 high: 6 medium: 0 low: 0 golang.org/x/crypto 0.38.0 (golang)

pkg:golang/golang.org/x/crypto@0.38.0

critical 10.0: CVE--2026--46595 Incorrect Implementation of Authentication Algorithm

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 10
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L
EPSS Score 0.503%
EPSS Percentile 41st percentile
Description

Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped.

critical 9.1: CVE--2026--42508 Improper Certificate Validation

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.654%
EPSS Percentile 50th percentile
Description

Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @Revoked.

critical 9.1: CVE--2026--39834 Integer Overflow or Wraparound

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
EPSS Score 0.637%
EPSS Percentile 49th percentile
Description

When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation.

critical 9.1: CVE--2026--39833 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested.

critical 9.1: CVE--2026--39832 Improper Preservation of Permissions

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.716%
EPSS Percentile 52nd percentile
Description

When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them.

critical 9.1: CVE--2026--39831 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) did not check the User Presence flag. Signatures generated without physical touch were accepted, allowing unattended use of a hardware security key. To restore the previous behavior, return a "no-touch-required" extension in Permissions.Extensions from PublicKeyCallback.

critical 9.1: CVE--2026--39830 Improper Restriction of Operations within the Bounds of a Memory Buffer

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
EPSS Score 0.621%
EPSS Percentile 48th percentile
Description

A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded.

high : CVE--2026--78662

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.431%
EPSS Percentile 35th percentile
Description

Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection.

Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection.

high : CVE--2026--56855

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.500%
EPSS Percentile 41st percentile
Description

Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection.

Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking.

high : CVE--2026--56854

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.437%
EPSS Percentile 36th percentile
Description

The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback.

high 7.5: CVE--2026--46597 Incorrect Type Conversion or Cast

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.620%
EPSS Percentile 48th percentile
Description

An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.

high 7.5: CVE--2026--39829 Improper Validation of Specified Quantity in Input

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2.

high : CVE--2025--47913

Affected range <0.43.0
Fixed version 0.43.0
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

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

critical: 3 high: 7 medium: 0 low: 0 github.com/rabbitmq/amqp091-go 1.10.0 (golang)

pkg:golang/github.com/rabbitmq/amqp091-go@1.10.0

critical 9.5: CVE--2026--77411 Improper Check for Unusual or Exceptional Conditions

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.5
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A critical stream desynchronization vulnerability has been identified in the AMQP wire-protocol parser. When parsing a long string (readLongstr) within a table field, providing a length that exceeds the maximum signed 32-bit integer (2^31 - 1, or roughly 2.1 GiB) triggers an improper error-handling condition. The parser abruptly aborts the read and returns a success status ("",nil) without consuming the specified bytes from the underlying network buffer. This causes all subsequent read operations to become misaligned. The parser interprets arbitrary offsets within the remaining payload bytes as valid AMQP frame headers, leading to potential Remote Code Execution (RCE), data injection, or complete connection hijacking.

Vulnerability Details

The vulnerability exists within the bounds-checking logic of the readLongstr function:

// read.go:113-114 — silent no-op return, bytes left in stream
if length > (^uint32(0) >> 1) {
    return  // returns "", nil, does NOT consume `length` bytes
}

When length evaluates to a value greater than 0x7FFFFFFF:

  1. The function executes a silent return statement.
  2. Because Go utilizes named or zero-value initialization for unassigned return registers, this yields "", nil (indicating a successful read of an empty string).
  3. The Critical Failure: The reader's cursor is not advanced by length bytes. The malformed payload remains sitting in the TCP/buffer stream.

Impact

As readTable continues iterating over the stream under the assumption that the string was successfully parsed, the byte alignment is entirely broken.

  • Parser Desynchronization: Future AMQP frame headers are read from arbitrary offsets inside the attacker-controlled message payload.
  • Payload Reinterpretation: A malicious actor can carefully craft the trailing bytes of the initial payload to perfectly mimic valid AMQP frames (e.g., connection.close, channel.open, or message publishing frames), forcing the client/server to execute unintended actions.

critical 9.4: CVE--2026--77405 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.4
CVSS Vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:L/SA:N
EPSS Score 0.282%
EPSS Percentile 19th percentile
Description

Summary

A structural security weakness exists in the AMQP client's TLS configuration generator (tlsConfigFromURI). When constructing a *tls.Config object from an amqps:// connection URI, the library initializes the structure without explicitly defining the MinVersion field.

While modern versions of the Go compiler toolchain (Go 1.18+) default the implicit minimum version to TLS 1.2, this security posture relies entirely on an implicit toolchain dependency. If the library is compiled using legacy Go toolchains (Go < 1.18), or if a future toolchain introduces fallback behavior, the client could silently negotiate obsolete and insecure TLS 1.0 or TLS 1.1 protocols during connection handshakes with a compromised or malicious AMQP broker.


Vulnerability Details

Mechanism

The vulnerability lies in the lack of an explicit safety floor when assigning configurations inside the URI component:

// Example within uri.go's tlsConfigFromURI
cfg := &tls.Config{
    ServerName: host,
    // MinVersion is left completely unassigned (defaults to 0, or toolchain default)
}

In the Go standard library (crypto/tls), leaving MinVersion: 0 instructs the runtime to choose the toolchain's default minimum. Prior to Go 1.18, this default allowed negotiation down to TLS 1.0. Relying on implicit compiler configurations violates secure coding practices by decoupling the library's security posture from its source code, leaving applications vulnerable based solely on how they are built.

Impact

If a client application is built with a legacy compiler environment or a custom Go runtime, an attacker capable of executing a Man-in-the-Middle (MitM) attack can force the connection to downgrade to TLS 1.0 or 1.1. This exposes the AMQP protocol data stream to well-known cryptographic vulnerabilities (such as BEAST, POODLE, or SWEET32), allowing the attacker to decrypt or alter message payloads, connection parameters, and authentication credentials.


Attack Vector

An attacker performing a network-level downgrade attack can intercept a client connection built under a legacy toolchain:

  1. Interception: A client application compiled on a legacy pipeline attempts to establish an encrypted connection to an AMQP broker.
  2. Protocol Downgrade: The attacker intercepts the TLS Client Hello handshake and forces a downgrade negotiation to TLS 1.0.
  3. Cryptographic Exploitation: Because MinVersion was never explicitly locked to tls.VersionTLS12 by the library, the client accepts the weak cipher suites, allowing the attacker to monitor or manipulate the underlying AMQP session data.

critical 9.1: CVE--2026--77408 Integer Overflow or Wraparound

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.1
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:H/SC:L/SI:H/SA:L
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A data integrity and protocol corruption vulnerability exists in the AMQP client's property serialization logic. When encoding AMQP short string (shortstr) fields—such as identifiers, routing strings, and content metadata—the length of the string is explicitly cast to a fixed-size 8-bit unsigned integer (uint8).

If an application provides a property string exceeding 255 bytes, the length counter silently wraps around (e.g., a length of 300 wraps to 44). As a result, the parser writes only a truncated portion of the string into the outgoing connection buffer without returning an error. This leads to silent data corruption, broken RPC routing, and unpredictable broker-side state behavior.


Vulnerability Details

Mechanism

The vulnerability resides in the wire-level serialization logic for application publishing properties:

// write.go:246
length := uint8(len(b))  // wraps silently when len(b) > 255 (e.g., 300 -> 44)

Because Go allows silent integer truncation during explicit type casting, lengths larger than $2^8 - 1$ lose their most significant bits. The underlying stream writer reads length to determine how many bytes to pull from the buffer. Because no error or boundary check accompanies this truncation, the application believes the full payload was transmitted successfully.

Affected Properties

This truncation behavior affects every standard AMQP field serialized as a shortstr:

  • CorrelationId
  • ReplyTo
  • MessageId
  • Expiration
  • UserId
  • AppId
  • ContentType
  • ContentEncoding
  • Type

Impact

The critical consequence is silent protocol desynchronization at the application layer. The underlying TCP stream remains framed properly (because the shortened length matches the bytes written), but the business logic is corrupted. Distributed transactions, request-reply correlations, and tracing headers are truncated, causing downstream systems to drop messages or route them to incorrect consumers.


Attack Vector

An attacker who can influence metadata fields processed by an upstream application (such as a user-supplied tracking ID or a long content-type header) can exploit this to break system components:

  1. Targeting RPC Routing: A user passes a malicious or overly long CorrelationId of 300 bytes through an application endpoint.
  2. Silent Truncation: The library wraps the length value to 44, transmitting only the first 44 bytes to the rabbitMQ broker.
  3. Broken Correlation: When the service processes the request and responds, the replying consumer attempts to route the message using the full 300-byte identifier. Because the broker only recognizes the truncated 44-byte ID, the reply loop breaks silently, leading to hanging processes or data leaks across transaction boundaries.

high 8.9: CVE--2026--79921 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.550%
EPSS Percentile 44th percentile
Description

Summary
A vulnerability exists in the amqp091-go client library where a compromised or malicious AMQP broker can force the client to allocate resources for and process content body frames that exceed the negotiated frame_max limit. This can lead to unexpected memory consumption or application-layer denial of service (DoS), bypassing the protocol's built-in framing constraints.

Details
During a standard AMQP 0-9-1 connection handshake, the client and the broker negotiate a maximum frame size (frame_max), for example, 4096 bytes.

However, after negotiation, a malicious broker can send a valid basic.deliver sequence containing a content body frame whose header declares a payload size larger than the negotiated frame_max. Instead of enforcing the agreed-upon limit and closing the connection with a frame-error (as mandated by the AMQP 0-9-1 specification), the amqp091-go client:

  1. Accepts the broker-declared oversized frame size.
  2. Allocates memory based on this oversized declaration.
  3. Reads the payload, assembles it into the message, and delivers it to the consumer.

Impact

  • Denial of Service (DoS): If a broker sends extremely large frame sizes, it can trigger significant memory allocations on the client side, potentially leading to Out-Of-Memory (OOM) crashes.
  • Protocol Violation: The client fails to enforce negotiated connection parameters, trusting the broker implicitly even after constraints have been established.

high 8.9: CVE--2026--77412 Incorrect Conversion between Numeric Types

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A vulnerability in the readField function allows a malicious or compromised AMQP server to trigger an unhandled runtime panic in the client application, leading to an immediate crash of the entire process.

Details
When parsing incoming AMQP frames, the readField function processes byte-array fields (type tag 'x') by reading a 32-bit big-endian integer to determine the length of the data payload.

// read.go:253-263
case 'x':
    var len int32
    if err = binary.Read(r, binary.BigEndian, &len); err != nil {
        return nil, err
    }
    value := make([]byte, len)  // PANICS if len < 0

If a server transmits a length value of 0xFFFFFFFF, it is interpreted by the client as a signed 32-bit integer with a value of -1. Passing a negative integer to Go's built-in make() function for slice allocation triggers an unrecoverable runtime panic (panic: len out of range).

Because the reader goroutine handles network I/O without an explicit recover() wrapper, this panic propagates up to the runtime root, abruptly terminating the host application.

Attack Vector / Exploitation Scenario
An attacker capable of spoofing, compromising, or controlling an AMQP broker can exploit this flaw during two primary phases:

  1. Connection Establishment: Sending a malicious connection.start handshake frame containing server-properties with an 'x' type field assigned a negative length.
  2. Message Delivery: Delivering a message payload where the header table contains a malformed field matching the criteria above.

Impact
Availability: High. A single malformed frame can reliably crash the client process, resulting in a persistent Denial of Service (DoS) if the client automatically reconnects and receives the same payload.

high 8.9: CVE--2026--77410 Memory Allocation with Excessive Size Value

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A flaw in the recvContent function allows a malicious AMQP server to trigger an Out-of-Memory (OOM) error, forcing the host operating system or container runtime to immediately terminate the client process.

Vulnerability Details
When receiving message content payloads, the client processes the expected size from the content header framework. The recvContent function attempts to optimize performance by pre-allocating memory for the message body based on the ch.header.Size field, which is a 64-bit unsigned integer (uint64).

// channel.go:495-496
if cap(ch.body) == 0 {
    ch.body = make([]byte, 0, ch.header.Size)  // unbounded
}

The underlying library fails to validate or cap this requested size against any upper boundary—such as the maximum frame size negotiated during connection establishment (FrameMax). If a server specifies an extreme body size (e.g., 2^62 bytes), the Go runtime attempts to allocate an exabyte-scale slice capacity. This immediately exhausts available system memory, causing the operating system's OOM killer to terminate the application.

Attack Vector / Exploitation Scenario

  • Message Delivery Phase: A malicious or compromised AMQP broker sends a standard basic.deliver frame containing a content header with an intentionally inflated body-size variable.
  • Authentication Requirement: No special privileges or authentication bypasses are required; the crash occurs seamlessly during normal message consumption.

Impact

  • Availability: High. Exploded memory consumption results in an instant process termination, destroying application state and availability for all threads sharing the environment.

high 8.9: CVE--2026--77403 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A Denial of Service (DoS) vulnerability exists in the AMQP client's connection negotiation logic. The AMQP specification explicitly mandates a strict minimum frame size of 4096 bytes to prevent pathological packet fragmentation. While the library defines a frameMinSize = 4096 constant, the connection negotiation loop fails to enforce this boundary, blindly accepting whatever maximum frame size (FrameMax) the server advertises during the handshake.

If a client connects to a malicious or compromised AMQP broker that advertises an extremely low FrameMax (such as 1 byte), the negotiation succeeds. Consequently, every subsequent message transmission is forced to splinter into thousands or millions of single-byte frames, causing massive CPU overhead, thread contention, and a near-instantaneous application freeze.


Vulnerability Details

Mechanism

During the connection establishment phase, the client and server negotiate connection parameters—including maximum channel count, heartbeat intervals, and maximum frame sizes. The vulnerability is located where the client accepts the server's tuning parameters:

// Connection negotiation logic maps server values directly without validation
if serverSettings.FrameMax > 0 {
    // VULNERABILITY: Lacks a floor validation check against frameMinSize (4096)
    c.config.FrameMax = serverSettings.FrameMax 
}

Because there is no conditional check asserting that serverSettings.FrameMax >= frameMinSize, a value below the protocol specification floor is successfully registered. When the application later passes data payloads to the frame writer, the chunking algorithm splits the payload using the negotiated FrameMax value as its chunk window divisor.

Impact

When FrameMax is set to an absurdly low threshold (e.g., 1 to 10 bytes):

  • A standard 10 KiB message payload requires tens of thousands of individual write operations and frame headers.
  • The system's CPU becomes entirely bound by frame serialization, memory allocation for frame structures, and context switching within the network output loops.
  • This results in an application-layer Denial of Service (DoS) affecting not just the specific AMQP connection, but potentially the entire host system due to CPU resource starvation.

Attack Vector

An attacker who compromises an upstream AMQP broker, performs a Man-in-the-Middle (MitM) interception, or tricks an application into connecting to an unauthorized external rogue broker can trigger this vulnerability:

  1. Rogue Handshake: The client application connects to an AMQP endpoint controlled by the attacker.
  2. Malicious Parameter Tuning: During the connection.tune phase, the rogue server returns a FrameMax value of 1.
  3. Resource Exhaustion Trigger: The client completes the handshake successfully. As soon as the client attempts to publish a message or process traffic, the internal loop fragments the data into single-byte frames, spiking the host's CPU usage to 100% and disabling the application thread.

high 8.7: CVE--2026--77404 Improper Encoding or Escaping of Output

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L
EPSS Score 0.098%
EPSS Percentile 1st percentile
Description

Summary

A query parameter injection vulnerability exists in the AMQP client's connection URI formatting logic. When generating or parsing connection URIs, TLS-related filesystem paths (such as certificates or keys) are appended directly to the URI's query string using string concatenation rather than secure URL encoding via functions like url.QueryEscape.

If an application handles a TLS file path containing special character delimiters (such as & or =), these characters are interpreted as parameter separators by the URI parser. If the resulting URI.String() output is subsequently re-parsed via ParseURI, the injected fields can silently overwrite or hijack critical configuration parameters, forcing the client to use arbitrary connection settings or alternate TLS files.


Vulnerability Details

Mechanism

The vulnerability lies within the lack of proper escaping when compiling connection string components into a raw URL format:

// Example of insecure string concatenation during URI building
uri := fmt.Sprintf("amqps://user:pass@<!-- -->host/%s?certfile=%s&keyfile=%s", vhost, certPath, keyPath)

Because certPath and keyPath are not passed through url.QueryEscape, special URL characters preserve their control meanings. For instance, if a user supply a certificate path named:
/tmp/cert=foo&keyfile=/evil/path

The generated string translates into:
...?certfile=/tmp/cert=foo&keyfile=/evil/path&keyfile=/original/path

When this string passes back through ParseURI (common in connection re-dial routines or configuration replication steps), standard URL parsing mechanics treat the string as multiple distinct parameters. Depending on map assignment order inside the parser, the injected keys take precedence over the original parameters.

Impact

By manipulating the file paths used for TLS assets, an attacker or compromised local sub-system can:

  • Inject arbitrary alternative options or override protocol settings.
  • Substitute or switch keyfiles, leading to connection failures or the parsing of unauthorized cryptographic assets.
  • Corrupt connection state variables, triggering application-layer failures during connection setup or recovery.

Attack Vector

An attacker who has partial control over directory naming conventions or environmental variables used to specify local infrastructure paths can execute a parameter injection attack:

  1. Path Creation: An attacker sets up a path containing deliberate URL parameter delimiters (e.g., /var/lib/certs/client.crt?cacertfile=/tmp/fake_ca.crt&).
  2. String Generation: The application serializes the active connection state or passes the paths down to an unescaped URI builder function.
  3. Configuration Hijack: The URI string is generated with the injected parameter embedded into the query structure. When the client attempts to reuse or re-parse this connection string during a connection retry or worker spin-up, it parses the injected cacertfile parameter, loading a different, unverified Certificate Authority string.

high 8.2: CVE--2026--77406 Signed to Unsigned Conversion Error

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.2
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L
EPSS Score 0.412%
EPSS Percentile 33rd percentile
Description

Summary

A logic and resource exhaustion vulnerability exists in the AMQP client's Quality of Service (Qos) configuration method. The Qos function accepts signed integers (int) for the prefetchCount and prefetchSize parameters but casts them directly to unsigned integers (uint16 and uint32, respectively) when formatting the wire-level frame.

If a developer passes a negative integer (such as -1) to these parameters—frequently intended as a sentinel value meaning "no change" or "no limit"—the application performs an implicit signed-to-unsigned conversion. This wraps the values to their absolute maximum limit ($65535$ and $4294967295$). Consequently, a consumer expecting restricted message delivery rates is suddenly flooded with an unlimited volume of messages, potentially exhausting memory resources and crashing the application.


Vulnerability Details

Mechanism

The bug manifests during the structural assignment inside the channel's Qos method:

// channel.go:795-796
PrefetchCount: uint16(prefetchCount),  // -1 wraps to 65535
PrefetchSize:  uint32(prefetchSize),   // -1 wraps to 4294967295

In Go, converting a negative signed integer to an unsigned integer shifts the value via two's complement arithmetic. Because no boundary validation or signedness check occurs prior to the cast:

  • Passing -1 for prefetchCount yields a wire value of 65535.
  • Passing -1 for prefetchSize yields a wire value of 4294967295.

Impact

The AMQP broker interprets a prefetch-count of 65535 as an instruction to dispatch messages to the consumer with virtually no concurrency limits.

If the application is processing heavy payloads or relies on strict rate-limiting to maintain stability, this unexpected flood will cause rapid heap memory growth, unmanageable processing queues, and an eventual Out-Of-Memory (OOM) termination.


Attack Vector

An attacker who can manipulate configuration files, environmental variables, or API inputs that dictate client Qos settings can trigger an application-layer Denial of Service:

  1. Malicious Input: An attacker sets a service's prefetch configuration parameter to -1.
  2. Implicit Overflow: The application initializes the channel, executes Qos(-1, ...), and transmits an unintended maximum-capacity request to the RabbitMQ/AMQP broker.
  3. Consumer Exhaustion: The broker flushes the entire contents of the queue directly into the client consumer's network buffer, bypassing expected application concurrency barriers and inducing a crash.

high 7.0: CVE--2026--77407 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:L/SA:L
EPSS Score 0.128%
EPSS Percentile 2nd percentile
Description

Summary

An information disclosure vulnerability exists in the AMQP client implementation's authentication handling configuration. Following a successful connection handshake, the Connection.Config.SASL field stores the Authentication implementation state used to establish the session.

For standard PLAIN authentication, this state utilizes the PlainAuth struct, which defines both Username and Password as publicly exported, plaintext string fields. Because this sensitive data is retained permanently in-memory within an exported field structure, any peripheral code, internal package, reflective logger, dependency, or automated debugging utility with access to the core *Connection object can read and expose the raw credentials.


Vulnerability Details

Mechanism

The vulnerability stems from the structural design of the configuration storage used during and after the AMQP handshake:

// auth.go:21-23
type PlainAuth struct {
    Username string
    Password string  // exported plaintext
}

When an application initializes a connection, the PlainAuth object is deeply nested inside the configuration structure (Connection.Config). Even after the handshake concludes and authentication is complete, this structure persists natively in-memory for the duration of the network connection's lifecycle.

Because Password is an exported string field, standard automated inspection mechanisms can read its value without restriction.

Affected Code Paths & Integrations

Any sub-component or library that traverses or reads the *Connection object will inadvertently read the plaintext password, including:

  • Reflective Loggers: Structured logging frameworks that serialize nested configuration structs into JSON/Log formats.
  • APM & Performance Agents: Automated telemetry or Application Performance Monitoring tools that capture state snapshots.
  • Debugging & Panic Handlers: Mid-tier software or dump libraries designed to capture goroutine state or print deep struct hierarchies upon program errors or signals.

Impact

The credential remains vulnerable to leak paths into logging pipelines, log aggregators, security information and event management (SIEM) systems, or standard output. Once transmitted to external log infrastructure, these credentials become accessible to unprivileged operators or any actor with access to log archives.


Attack Vector

An attacker does not necessarily need direct remote code execution to exploit this flaw; instead, the vulnerability acts as a credential harvesting vector inside multi-tenant environments or via secondary log exposure:

  1. Configuration Dump: An operator configures a standard reflective logger or third-party APM package to capture system state parameters, including the active AMQP *Connection object.
  2. Reflective Access: The inspection engine uses Go's reflect package to walk the structural hierarchy, pulling the string value from Connection.Config.SASL.(*PlainAuth).Password.
  3. Exfiltration: The plaintext password is written to standard system logs, which are then scraped into shared logging aggregators, exposing production infrastructure credentials to a wider audience.
critical: 2 high: 8 medium: 0 low: 0 stdlib 1.26.8 (golang)

pkg:golang/stdlib@1.26.8

critical : CVE--2026--56857

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.493%
EPSS Percentile 41st percentile
Description

On Windows, when the target of Root.Mkdir or Root.MkdirAll is a junction pointing to an empty location, the operation can create a directory at the junction target even when that target is located outside the root. This only applies to operations where the last path component is a junction (path/to/junction, but not path/junction/target).

critical : CVE--2026--78663

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--97031

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.394%
EPSS Percentile 32nd percentile
Description

Multiple ECH outer extension references are not permitted under RFC 9849; previously, a client could send a well-crafted packet that could trigger memory exhaustion in the server process by specifying multiple references.

We now reject these as malformed and curb the memory amplification vector as a result.

high : CVE--2026--94440

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.404%
EPSS Percentile 33rd percentile
Description

Parsing a multipart form can bypass memory limits and read an arbitrarily long line into memory when the remaining limit at the start of a part is less than 400 bytes.

high : CVE--2026--94439

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.315%
EPSS Percentile 23rd percentile
Description

When an HTTP server handler sends a 2xx response to an HTTP/1 CONNECT request and returns without hijacking the connection, the server improperly continues to read and serve requests from the connection. Since a 2xx response to an HTTP/1 CONNECT converts the connection into a tunnel, the server should not treat the connection as continuing to contain HTTP.

The impact of this misbehavior is mostly limited to potential request smuggling, where an intermediate proxy considers the data on the connection to be tunneled and the server considers it to be HTTP.

high : CVE--2026--78669

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78667

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.379%
EPSS Percentile 30th percentile
Description

When parsing a Range header containing a large number of small ranges, FileServer(FS), ServeContent, and ServeFile(FS) can consume an excessive amount of CPU.

high : CVE--2026--78660

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--56866

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.309%
EPSS Percentile 22nd percentile
Description

When http.Transport sends an HTTP/1 CONNECT request with a non-empty Request.Body, it writes the body directly to the connection without framing after the request headers. If the server rejects the CONNECT request with a non-2xx keep-alive response, Transport returns the connection to the idle pool. Because CONNECT requests do not have a request body, the server may interpret the trailing body bytes as a subsequent pipelined HTTP/1.1 request on the connection, leaving the pooled connection desynchronized and causing the next caller that reuses it to read the response to the injected request. In reverse proxies (including httputil.ReverseProxy) that forward CONNECT requests through a shared Transport, this can lead to cross-user response poisoning.

critical: 2 high: 5 medium: 0 low: 0 golang.org/x/net 0.40.0 (golang)

pkg:golang/golang.org/x/net@0.40.0

critical : CVE--2026--39821

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.692%
EPSS Percentile 51st percentile
Description

The ToASCII and ToUnicode functions incorrectly accept Punycode-encoded labels that decode to an ASCII-only label. For example, ToUnicode("xn--example-.com") incorrectly returns the name "example.com" rather than an error.

This behavior can lead to privilege escalation in programs using the idna package. For example, a program which performs privilege checks on the ASCII hostname may reject "example.com" but permit "xn--example-.com". If that program subsequently converts the ASCII hostname to Unicode, it will inadvertently permits access to the Unicode name "example.com".

critical : CVE--2026--78663

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--78669

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78660

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--46600

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

Parsing an invalid SVCB or HTTPS RR can panic when the size of a parameter value overflows the message buffer.

high : CVE--2026--33814

Affected range <0.53.0
Fixed version 0.53.0
EPSS Score 0.781%
EPSS Percentile 55th percentile
Description

When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a value of 0.

critical: 1 high: 3 medium: 0 low: 0 google.golang.org/grpc 1.71.0 (golang)

pkg:golang/google.golang.org/grpc@1.71.0

critical 9.1: CVE--2026--33186 Improper Authorization

Affected range <1.79.3
Fixed version 1.79.3
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 1.625%
EPSS Percentile 75th percentile
Description

Impact

What kind of vulnerability is it? Who is impacted?

It is an Authorization Bypass resulting from Improper Input Validation of the HTTP/2 :path pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting requests where the :path omitted the mandatory leading slash (e.g., Service/Method instead of /Service/Method). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official grpc/authz package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with /) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present.

Who is impacted?
This affects gRPC-Go servers that meet both of the following criteria:

  1. They use path-based authorization interceptors, such as the official RBAC implementation in google.golang.org/grpc/authz or custom interceptors relying on info.FullMethod or grpc.Method(ctx).
  2. Their security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed :path headers directly to the gRPC server.

Patches

Has the problem been patched? What versions should users upgrade to?

Yes, the issue has been patched. The fix ensures that any request with a :path that does not start with a leading slash is immediately rejected with a codes.Unimplemented error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):

  • v1.79.3
  • The latest master branch.

It is recommended that all users employing path-based authorization (especially grpc/authz) upgrade as soon as the patch is available in a tagged release.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods:

1. Use a Validating Interceptor (Recommended Mitigation)

Add an "outermost" interceptor to your server that validates the path before any other authorization logic runs:

func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)

2. Infrastructure-Level Normalization

If your gRPC server is behind a reverse proxy or load balancer (such as Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to enforce strict HTTP/2 compliance for pseudo-headers and reject or normalize requests where the :path header does not start with a leading slash.

3. Policy Hardening

Switch to a "default deny" posture in your authorization policies (explicitly listing all allowed paths and denying everything else) to reduce the risk of bypasses via malformed inputs.

high 8.8: GHSA--hrxh--6v49--42gf Uncaught Exception

Affected range <1.82.1
Fixed version 1.82.1
CVSS Score 8.8
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Description

Multiple security vulnerabilities have been identified and addressed in grpc-go affecting the xDS RBAC authorization engine (internal/xds/rbac) and the HTTP/2 transport server implementation (internal/transport). These vulnerabilities could result in:

  • Authorization Bypass (Fail-Open) when translating xDS RBAC policies containing Metadata or RequestedServerName fields.
  • Denial of Service (High CPU Consumption) due to an HTTP/2 Rapid Reset mitigation bypass during client-initiated stream resets.
  • Denial of Service (Server Panic) when parsing crafted xDS RBAC policies containing NOT rules around unsupported fields.

Impact

What kind of vulnerability is it? Who is impacted?

xDS RBAC Authorization Bypass via Metadata & RequestedServerName matchers

  • Affected Component: xDS RBAC
  • Impact: When building policy matchers for gRPC RBAC from xDS configurations, unsupported permission and principal rules (specifically Metadata and RequestedServerName) were silently ignored and treated as no-ops.
    • If an authorization policy relied purely on these matchers for access control, treating those rules as no-ops effectively removed the restrictions.
  • If these unsupported rules were nested inside logical NOT rules (Permission_NotRule / Principal_NotId) or multi-condition OR/AND rules, silently dropping them changed the boolean logic flow of the authorization engine.

As a result, policy evaluation decisions could fail open, allowing unauthorized clients to access protected gRPC services or resources.

HTTP/2 Rapid Reset Mitigation Bypass / Denial of Service via Stream Aborts

  • Affected Component: HTTP/2 transport
  • Impact: Earlier mitigations in grpc-go for HTTP/2 Rapid Reset only applied threshold checks to items that directly resulted in control frames being written back to the wire, such as SETTINGS ACKs or server-initiated RST_STREAMs.

When a client initiated a rapid flood of stream creation (HEADERS) immediately followed by stream termination RST_STREAM, items queued up in the control buffer without counting against the transport response frame threshold. An attacker can repeatedly trigger this flood sequence to bypass reader blocking, resulting in high CPU usage, and Denial of Service (DoS).

Denial of Service (Panic) in xDS RBAC Engine via Unsupported Fields inside NOT Rules

  • Affected Component: xDS RBAC
  • Impact: The xDS RBAC policy translators recursively generate matchers for nested rules. When a NOT rule wrapped an unsupported or unhandled field (such as SourcedMetadata), the recursive step returned an empty matcher. This could result in a runtime panic when the RBAC engine attempts to authorize an incoming request.

An attacker or misconfigured/malicious xDS management server delivering an LDS/RDS update containing a NOT rule around an unhandled field causes the gRPC server process to crash immediately (CWE-248 / Denial of Service).

Patches

Has the problem been patched? What versions should users upgrade to?

All three issues have been fixed in master and will be released in 1.82.1 shortly.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

If upgrading grpc-go immediately is not possible, apply the following workarounds based on your deployment architecture:

  • For xDS RBAC Vulnerabilities & Panics: Ensure that upstream xDS management servers do not push RBAC policies containing Metadata, RequestedServerName, or NOT rules wrapping unsupported fields (such as SourcedMetadata) to grpc-go servers.
  • For HTTP/2 Rapid Reset DOS: Configure upstream reverse proxies or load balancers (such as Envoy) with strict HTTP/2 max_concurrent_streams limits and active rate limiting on RST_STREAM frequency per connection.

Severity

Vulnerability Qualitative Severity Approximate CVSS v3.1 Score Primary Impact
xDS RBAC Authorization Bypass High 8.2 Unauthorized Access / Fail-Open
HTTP/2 Rapid Reset DOS Bypass High 7.5 High CPU Consumption / Denial of Service
xDS RBAC Engine Server Panic Medium 5.9 Process Crash / Denial of Service

high 8.7: CVE--2026--84445 Improper Validation of Array Index

Affected range <1.82.2
Fixed version 1.82.2
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.641%
EPSS Percentile 49th percentile
Description

A vulnerability exists in gRPC-Go servers configured with xds.NewGRPCServer() where a crafted request missing both :authority and Host headers can cause a server panic, resulting in a Denial of Service (DoS).

Servers built with xds.NewGRPCServer install an xDS routing interceptor on every RPC. This interceptor looks up the request’s :authority header to pick a virtual host. The HTTP/2 server transport previously accepted requests that had neither :authority nor Host. When this happened, the xDS routing interceptor attempted to access the first element of an empty slice of authorities, leading to an index out of bounds panic. Since the per-RPC goroutine does not recover from panics, the entire server process would terminate.

This panic occurs in the interceptor pipeline, meaning the transport credentials handshake (TLS, mTLS, or ALTS) and HTTP/2 connection establishment must complete successfully before the crafted request can reach this logic.

  • Insecure/Standard TLS: If the server permits insecure (plaintext) connections or standard credentials (where client certs are not checked), any unauthenticated remote attacker can trigger the crash.
  • mTLS / ALTS: If strict transport-level authentication is enforced at the network edge or transport layer (e.g., requiring a valid client certificate), the attacker must possess valid transport credentials to initiate the stream and trigger the panic.

Impact

An attacker can cause a complete outage of the gRPC server by sending a request missing both :authority and Host headers, provided they can successfully establish a transport connection.

Patches

The issue has been addressed in master (and backported to 1.84.0, 1.83.2 and 1.82.2). The fix updates the HTTP/2 transport layer to reject requests missing both :authority and Host headers early, maintaining consistency with and other gRPC language implementations.

high 8.7: CVE--2026--84304 Uncontrolled Resource Consumption

Affected range <=1.83.0
Fixed version 1.83.1
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
EPSS Score 0.609%
EPSS Percentile 48th percentile
Description

Impact

An unauthenticated remote attacker can initiate a gRPC stream and purposefully fragment their payload into millions of tiny (e.g., 1-byte) HTTP/2 DATA frames. Even if the total payload volume falls within the configured connection and stream flow-control windows, each independent fragment incurs memory overhead due to internal tracking structures and queue allocation.

Repeated fragmentation massively inflates the heap space consumed by the stream. An attacker multiplexing multiple concurrent streams can exhaust the memory bounds of the runtime, forcing a runtime panic or OutOfMemory condition and leading to a remote Denial of Service (DoS).

Patches

The change to fix this issue is merged in master and a patch release, 1.83.1, has been published that contains this fix.

Workarounds

This vulnerability is mitigated by implementing receive buffer compaction. Consecutive small data buffers are automatically coalesced into larger buffers from a shared pool once the overhead is perceived to be excessive relative to actual payload data, drastically minimizing per-frame memory overheads.

This behavior is enabled by default. A temporary escape hatch is provided via the environment variable GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION=false to disable the feature if unforeseen issues arise, but it will be removed in a future release.

critical: 0 high: 2 medium: 0 low: 0 expat 2.8.5-r0 (apk)

pkg:apk/alpine/expat@2.8.5-r0?os_name=alpine&os_version=3.24

high : CVE--2026--77214

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

high : CVE--2026--102633

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.348%
EPSS Percentile 26th percentile
Description
critical: 0 high: 1 medium: 0 low: 0 github.com/antchfx/xpath 1.3.3 (golang)

pkg:golang/github.com/antchfx/xpath@1.3.3

high 7.5: CVE--2026--32287 Uncontrolled Resource Consumption

Affected range <1.3.6
Fixed version 1.3.6
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.695%
EPSS Percentile 52nd percentile
Description

Boolean expressions that evaluate to true can cause an infinite loop in logicalQuery.Select, leading to 100% CPU usage. This can be triggered by top-level selectors such as "1=1" or "true()".

critical: 0 high: 1 medium: 0 low: 0 golang.org/x/text 0.25.0 (golang)

pkg:golang/golang.org/x/text@0.25.0

high : CVE--2026--56851

Affected range <0.41.0
Fixed version 0.41.0
EPSS Score 0.335%
EPSS Percentile 25th percentile
Description

The Nickname profile can panic with an out-of-bounds slice error when transforming crafted input into a short destination buffer.

@github-actions

Copy link
Copy Markdown

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:abb2af111c9f93d822d03cba49894ab4eb25aa1207af39b777ee7ddc17194229
vulnerabilitiescritical: 15 high: 33 medium: 0 low: 0
platformlinux/amd64
size123 MB
packages253
📦 Base Image php:8.4-alpine
also known as
  • 8.4-alpine3.24
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.24
  • 8.4.26-alpine
  • 8.4.26-alpine3.24
  • 8.4.26-cli-alpine
  • 8.4.26-cli-alpine3.24
digestsha256:7cbe0a1996d1b77fc8fdc6547f35b8372fd57489c54aac3d634434ed2e851e7a
vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
critical: 7 high: 6 medium: 0 low: 0 golang.org/x/crypto 0.38.0 (golang)

pkg:golang/golang.org/x/crypto@0.38.0

critical 10.0: CVE--2026--46595 Incorrect Implementation of Authentication Algorithm

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 10
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L
EPSS Score 0.503%
EPSS Percentile 41st percentile
Description

Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped.

critical 9.1: CVE--2026--42508 Improper Certificate Validation

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.654%
EPSS Percentile 50th percentile
Description

Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @Revoked.

critical 9.1: CVE--2026--39834 Integer Overflow or Wraparound

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
EPSS Score 0.637%
EPSS Percentile 49th percentile
Description

When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation.

critical 9.1: CVE--2026--39833 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested.

critical 9.1: CVE--2026--39832 Improper Preservation of Permissions

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.716%
EPSS Percentile 52nd percentile
Description

When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them.

critical 9.1: CVE--2026--39831 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) did not check the User Presence flag. Signatures generated without physical touch were accepted, allowing unattended use of a hardware security key. To restore the previous behavior, return a "no-touch-required" extension in Permissions.Extensions from PublicKeyCallback.

critical 9.1: CVE--2026--39830 Improper Restriction of Operations within the Bounds of a Memory Buffer

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
EPSS Score 0.621%
EPSS Percentile 48th percentile
Description

A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded.

high : CVE--2026--78662

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.431%
EPSS Percentile 35th percentile
Description

Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection.

Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection.

high : CVE--2026--56855

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.500%
EPSS Percentile 41st percentile
Description

Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection.

Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking.

high : CVE--2026--56854

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.437%
EPSS Percentile 36th percentile
Description

The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback.

high 7.5: CVE--2026--46597 Incorrect Type Conversion or Cast

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.620%
EPSS Percentile 48th percentile
Description

An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.

high 7.5: CVE--2026--39829 Improper Validation of Specified Quantity in Input

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2.

high : CVE--2025--47913

Affected range <0.43.0
Fixed version 0.43.0
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

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

critical: 3 high: 7 medium: 0 low: 0 github.com/rabbitmq/amqp091-go 1.10.0 (golang)

pkg:golang/github.com/rabbitmq/amqp091-go@1.10.0

critical 9.5: CVE--2026--77411 Improper Check for Unusual or Exceptional Conditions

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.5
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A critical stream desynchronization vulnerability has been identified in the AMQP wire-protocol parser. When parsing a long string (readLongstr) within a table field, providing a length that exceeds the maximum signed 32-bit integer (2^31 - 1, or roughly 2.1 GiB) triggers an improper error-handling condition. The parser abruptly aborts the read and returns a success status ("",nil) without consuming the specified bytes from the underlying network buffer. This causes all subsequent read operations to become misaligned. The parser interprets arbitrary offsets within the remaining payload bytes as valid AMQP frame headers, leading to potential Remote Code Execution (RCE), data injection, or complete connection hijacking.

Vulnerability Details

The vulnerability exists within the bounds-checking logic of the readLongstr function:

// read.go:113-114 — silent no-op return, bytes left in stream
if length > (^uint32(0) >> 1) {
    return  // returns "", nil, does NOT consume `length` bytes
}

When length evaluates to a value greater than 0x7FFFFFFF:

  1. The function executes a silent return statement.
  2. Because Go utilizes named or zero-value initialization for unassigned return registers, this yields "", nil (indicating a successful read of an empty string).
  3. The Critical Failure: The reader's cursor is not advanced by length bytes. The malformed payload remains sitting in the TCP/buffer stream.

Impact

As readTable continues iterating over the stream under the assumption that the string was successfully parsed, the byte alignment is entirely broken.

  • Parser Desynchronization: Future AMQP frame headers are read from arbitrary offsets inside the attacker-controlled message payload.
  • Payload Reinterpretation: A malicious actor can carefully craft the trailing bytes of the initial payload to perfectly mimic valid AMQP frames (e.g., connection.close, channel.open, or message publishing frames), forcing the client/server to execute unintended actions.

critical 9.4: CVE--2026--77405 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.4
CVSS Vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:L/SA:N
EPSS Score 0.282%
EPSS Percentile 19th percentile
Description

Summary

A structural security weakness exists in the AMQP client's TLS configuration generator (tlsConfigFromURI). When constructing a *tls.Config object from an amqps:// connection URI, the library initializes the structure without explicitly defining the MinVersion field.

While modern versions of the Go compiler toolchain (Go 1.18+) default the implicit minimum version to TLS 1.2, this security posture relies entirely on an implicit toolchain dependency. If the library is compiled using legacy Go toolchains (Go < 1.18), or if a future toolchain introduces fallback behavior, the client could silently negotiate obsolete and insecure TLS 1.0 or TLS 1.1 protocols during connection handshakes with a compromised or malicious AMQP broker.


Vulnerability Details

Mechanism

The vulnerability lies in the lack of an explicit safety floor when assigning configurations inside the URI component:

// Example within uri.go's tlsConfigFromURI
cfg := &tls.Config{
    ServerName: host,
    // MinVersion is left completely unassigned (defaults to 0, or toolchain default)
}

In the Go standard library (crypto/tls), leaving MinVersion: 0 instructs the runtime to choose the toolchain's default minimum. Prior to Go 1.18, this default allowed negotiation down to TLS 1.0. Relying on implicit compiler configurations violates secure coding practices by decoupling the library's security posture from its source code, leaving applications vulnerable based solely on how they are built.

Impact

If a client application is built with a legacy compiler environment or a custom Go runtime, an attacker capable of executing a Man-in-the-Middle (MitM) attack can force the connection to downgrade to TLS 1.0 or 1.1. This exposes the AMQP protocol data stream to well-known cryptographic vulnerabilities (such as BEAST, POODLE, or SWEET32), allowing the attacker to decrypt or alter message payloads, connection parameters, and authentication credentials.


Attack Vector

An attacker performing a network-level downgrade attack can intercept a client connection built under a legacy toolchain:

  1. Interception: A client application compiled on a legacy pipeline attempts to establish an encrypted connection to an AMQP broker.
  2. Protocol Downgrade: The attacker intercepts the TLS Client Hello handshake and forces a downgrade negotiation to TLS 1.0.
  3. Cryptographic Exploitation: Because MinVersion was never explicitly locked to tls.VersionTLS12 by the library, the client accepts the weak cipher suites, allowing the attacker to monitor or manipulate the underlying AMQP session data.

critical 9.1: CVE--2026--77408 Integer Overflow or Wraparound

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.1
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:H/SC:L/SI:H/SA:L
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A data integrity and protocol corruption vulnerability exists in the AMQP client's property serialization logic. When encoding AMQP short string (shortstr) fields—such as identifiers, routing strings, and content metadata—the length of the string is explicitly cast to a fixed-size 8-bit unsigned integer (uint8).

If an application provides a property string exceeding 255 bytes, the length counter silently wraps around (e.g., a length of 300 wraps to 44). As a result, the parser writes only a truncated portion of the string into the outgoing connection buffer without returning an error. This leads to silent data corruption, broken RPC routing, and unpredictable broker-side state behavior.


Vulnerability Details

Mechanism

The vulnerability resides in the wire-level serialization logic for application publishing properties:

// write.go:246
length := uint8(len(b))  // wraps silently when len(b) > 255 (e.g., 300 -> 44)

Because Go allows silent integer truncation during explicit type casting, lengths larger than $2^8 - 1$ lose their most significant bits. The underlying stream writer reads length to determine how many bytes to pull from the buffer. Because no error or boundary check accompanies this truncation, the application believes the full payload was transmitted successfully.

Affected Properties

This truncation behavior affects every standard AMQP field serialized as a shortstr:

  • CorrelationId
  • ReplyTo
  • MessageId
  • Expiration
  • UserId
  • AppId
  • ContentType
  • ContentEncoding
  • Type

Impact

The critical consequence is silent protocol desynchronization at the application layer. The underlying TCP stream remains framed properly (because the shortened length matches the bytes written), but the business logic is corrupted. Distributed transactions, request-reply correlations, and tracing headers are truncated, causing downstream systems to drop messages or route them to incorrect consumers.


Attack Vector

An attacker who can influence metadata fields processed by an upstream application (such as a user-supplied tracking ID or a long content-type header) can exploit this to break system components:

  1. Targeting RPC Routing: A user passes a malicious or overly long CorrelationId of 300 bytes through an application endpoint.
  2. Silent Truncation: The library wraps the length value to 44, transmitting only the first 44 bytes to the rabbitMQ broker.
  3. Broken Correlation: When the service processes the request and responds, the replying consumer attempts to route the message using the full 300-byte identifier. Because the broker only recognizes the truncated 44-byte ID, the reply loop breaks silently, leading to hanging processes or data leaks across transaction boundaries.

high 8.9: CVE--2026--79921 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.550%
EPSS Percentile 44th percentile
Description

Summary
A vulnerability exists in the amqp091-go client library where a compromised or malicious AMQP broker can force the client to allocate resources for and process content body frames that exceed the negotiated frame_max limit. This can lead to unexpected memory consumption or application-layer denial of service (DoS), bypassing the protocol's built-in framing constraints.

Details
During a standard AMQP 0-9-1 connection handshake, the client and the broker negotiate a maximum frame size (frame_max), for example, 4096 bytes.

However, after negotiation, a malicious broker can send a valid basic.deliver sequence containing a content body frame whose header declares a payload size larger than the negotiated frame_max. Instead of enforcing the agreed-upon limit and closing the connection with a frame-error (as mandated by the AMQP 0-9-1 specification), the amqp091-go client:

  1. Accepts the broker-declared oversized frame size.
  2. Allocates memory based on this oversized declaration.
  3. Reads the payload, assembles it into the message, and delivers it to the consumer.

Impact

  • Denial of Service (DoS): If a broker sends extremely large frame sizes, it can trigger significant memory allocations on the client side, potentially leading to Out-Of-Memory (OOM) crashes.
  • Protocol Violation: The client fails to enforce negotiated connection parameters, trusting the broker implicitly even after constraints have been established.

high 8.9: CVE--2026--77412 Incorrect Conversion between Numeric Types

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A vulnerability in the readField function allows a malicious or compromised AMQP server to trigger an unhandled runtime panic in the client application, leading to an immediate crash of the entire process.

Details
When parsing incoming AMQP frames, the readField function processes byte-array fields (type tag 'x') by reading a 32-bit big-endian integer to determine the length of the data payload.

// read.go:253-263
case 'x':
    var len int32
    if err = binary.Read(r, binary.BigEndian, &len); err != nil {
        return nil, err
    }
    value := make([]byte, len)  // PANICS if len < 0

If a server transmits a length value of 0xFFFFFFFF, it is interpreted by the client as a signed 32-bit integer with a value of -1. Passing a negative integer to Go's built-in make() function for slice allocation triggers an unrecoverable runtime panic (panic: len out of range).

Because the reader goroutine handles network I/O without an explicit recover() wrapper, this panic propagates up to the runtime root, abruptly terminating the host application.

Attack Vector / Exploitation Scenario
An attacker capable of spoofing, compromising, or controlling an AMQP broker can exploit this flaw during two primary phases:

  1. Connection Establishment: Sending a malicious connection.start handshake frame containing server-properties with an 'x' type field assigned a negative length.
  2. Message Delivery: Delivering a message payload where the header table contains a malformed field matching the criteria above.

Impact
Availability: High. A single malformed frame can reliably crash the client process, resulting in a persistent Denial of Service (DoS) if the client automatically reconnects and receives the same payload.

high 8.9: CVE--2026--77410 Memory Allocation with Excessive Size Value

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A flaw in the recvContent function allows a malicious AMQP server to trigger an Out-of-Memory (OOM) error, forcing the host operating system or container runtime to immediately terminate the client process.

Vulnerability Details
When receiving message content payloads, the client processes the expected size from the content header framework. The recvContent function attempts to optimize performance by pre-allocating memory for the message body based on the ch.header.Size field, which is a 64-bit unsigned integer (uint64).

// channel.go:495-496
if cap(ch.body) == 0 {
    ch.body = make([]byte, 0, ch.header.Size)  // unbounded
}

The underlying library fails to validate or cap this requested size against any upper boundary—such as the maximum frame size negotiated during connection establishment (FrameMax). If a server specifies an extreme body size (e.g., 2^62 bytes), the Go runtime attempts to allocate an exabyte-scale slice capacity. This immediately exhausts available system memory, causing the operating system's OOM killer to terminate the application.

Attack Vector / Exploitation Scenario

  • Message Delivery Phase: A malicious or compromised AMQP broker sends a standard basic.deliver frame containing a content header with an intentionally inflated body-size variable.
  • Authentication Requirement: No special privileges or authentication bypasses are required; the crash occurs seamlessly during normal message consumption.

Impact

  • Availability: High. Exploded memory consumption results in an instant process termination, destroying application state and availability for all threads sharing the environment.

high 8.9: CVE--2026--77403 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A Denial of Service (DoS) vulnerability exists in the AMQP client's connection negotiation logic. The AMQP specification explicitly mandates a strict minimum frame size of 4096 bytes to prevent pathological packet fragmentation. While the library defines a frameMinSize = 4096 constant, the connection negotiation loop fails to enforce this boundary, blindly accepting whatever maximum frame size (FrameMax) the server advertises during the handshake.

If a client connects to a malicious or compromised AMQP broker that advertises an extremely low FrameMax (such as 1 byte), the negotiation succeeds. Consequently, every subsequent message transmission is forced to splinter into thousands or millions of single-byte frames, causing massive CPU overhead, thread contention, and a near-instantaneous application freeze.


Vulnerability Details

Mechanism

During the connection establishment phase, the client and server negotiate connection parameters—including maximum channel count, heartbeat intervals, and maximum frame sizes. The vulnerability is located where the client accepts the server's tuning parameters:

// Connection negotiation logic maps server values directly without validation
if serverSettings.FrameMax > 0 {
    // VULNERABILITY: Lacks a floor validation check against frameMinSize (4096)
    c.config.FrameMax = serverSettings.FrameMax 
}

Because there is no conditional check asserting that serverSettings.FrameMax >= frameMinSize, a value below the protocol specification floor is successfully registered. When the application later passes data payloads to the frame writer, the chunking algorithm splits the payload using the negotiated FrameMax value as its chunk window divisor.

Impact

When FrameMax is set to an absurdly low threshold (e.g., 1 to 10 bytes):

  • A standard 10 KiB message payload requires tens of thousands of individual write operations and frame headers.
  • The system's CPU becomes entirely bound by frame serialization, memory allocation for frame structures, and context switching within the network output loops.
  • This results in an application-layer Denial of Service (DoS) affecting not just the specific AMQP connection, but potentially the entire host system due to CPU resource starvation.

Attack Vector

An attacker who compromises an upstream AMQP broker, performs a Man-in-the-Middle (MitM) interception, or tricks an application into connecting to an unauthorized external rogue broker can trigger this vulnerability:

  1. Rogue Handshake: The client application connects to an AMQP endpoint controlled by the attacker.
  2. Malicious Parameter Tuning: During the connection.tune phase, the rogue server returns a FrameMax value of 1.
  3. Resource Exhaustion Trigger: The client completes the handshake successfully. As soon as the client attempts to publish a message or process traffic, the internal loop fragments the data into single-byte frames, spiking the host's CPU usage to 100% and disabling the application thread.

high 8.7: CVE--2026--77404 Improper Encoding or Escaping of Output

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L
EPSS Score 0.098%
EPSS Percentile 1st percentile
Description

Summary

A query parameter injection vulnerability exists in the AMQP client's connection URI formatting logic. When generating or parsing connection URIs, TLS-related filesystem paths (such as certificates or keys) are appended directly to the URI's query string using string concatenation rather than secure URL encoding via functions like url.QueryEscape.

If an application handles a TLS file path containing special character delimiters (such as & or =), these characters are interpreted as parameter separators by the URI parser. If the resulting URI.String() output is subsequently re-parsed via ParseURI, the injected fields can silently overwrite or hijack critical configuration parameters, forcing the client to use arbitrary connection settings or alternate TLS files.


Vulnerability Details

Mechanism

The vulnerability lies within the lack of proper escaping when compiling connection string components into a raw URL format:

// Example of insecure string concatenation during URI building
uri := fmt.Sprintf("amqps://user:pass@<!-- -->host/%s?certfile=%s&keyfile=%s", vhost, certPath, keyPath)

Because certPath and keyPath are not passed through url.QueryEscape, special URL characters preserve their control meanings. For instance, if a user supply a certificate path named:
/tmp/cert=foo&keyfile=/evil/path

The generated string translates into:
...?certfile=/tmp/cert=foo&keyfile=/evil/path&keyfile=/original/path

When this string passes back through ParseURI (common in connection re-dial routines or configuration replication steps), standard URL parsing mechanics treat the string as multiple distinct parameters. Depending on map assignment order inside the parser, the injected keys take precedence over the original parameters.

Impact

By manipulating the file paths used for TLS assets, an attacker or compromised local sub-system can:

  • Inject arbitrary alternative options or override protocol settings.
  • Substitute or switch keyfiles, leading to connection failures or the parsing of unauthorized cryptographic assets.
  • Corrupt connection state variables, triggering application-layer failures during connection setup or recovery.

Attack Vector

An attacker who has partial control over directory naming conventions or environmental variables used to specify local infrastructure paths can execute a parameter injection attack:

  1. Path Creation: An attacker sets up a path containing deliberate URL parameter delimiters (e.g., /var/lib/certs/client.crt?cacertfile=/tmp/fake_ca.crt&).
  2. String Generation: The application serializes the active connection state or passes the paths down to an unescaped URI builder function.
  3. Configuration Hijack: The URI string is generated with the injected parameter embedded into the query structure. When the client attempts to reuse or re-parse this connection string during a connection retry or worker spin-up, it parses the injected cacertfile parameter, loading a different, unverified Certificate Authority string.

high 8.2: CVE--2026--77406 Signed to Unsigned Conversion Error

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.2
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L
EPSS Score 0.412%
EPSS Percentile 33rd percentile
Description

Summary

A logic and resource exhaustion vulnerability exists in the AMQP client's Quality of Service (Qos) configuration method. The Qos function accepts signed integers (int) for the prefetchCount and prefetchSize parameters but casts them directly to unsigned integers (uint16 and uint32, respectively) when formatting the wire-level frame.

If a developer passes a negative integer (such as -1) to these parameters—frequently intended as a sentinel value meaning "no change" or "no limit"—the application performs an implicit signed-to-unsigned conversion. This wraps the values to their absolute maximum limit ($65535$ and $4294967295$). Consequently, a consumer expecting restricted message delivery rates is suddenly flooded with an unlimited volume of messages, potentially exhausting memory resources and crashing the application.


Vulnerability Details

Mechanism

The bug manifests during the structural assignment inside the channel's Qos method:

// channel.go:795-796
PrefetchCount: uint16(prefetchCount),  // -1 wraps to 65535
PrefetchSize:  uint32(prefetchSize),   // -1 wraps to 4294967295

In Go, converting a negative signed integer to an unsigned integer shifts the value via two's complement arithmetic. Because no boundary validation or signedness check occurs prior to the cast:

  • Passing -1 for prefetchCount yields a wire value of 65535.
  • Passing -1 for prefetchSize yields a wire value of 4294967295.

Impact

The AMQP broker interprets a prefetch-count of 65535 as an instruction to dispatch messages to the consumer with virtually no concurrency limits.

If the application is processing heavy payloads or relies on strict rate-limiting to maintain stability, this unexpected flood will cause rapid heap memory growth, unmanageable processing queues, and an eventual Out-Of-Memory (OOM) termination.


Attack Vector

An attacker who can manipulate configuration files, environmental variables, or API inputs that dictate client Qos settings can trigger an application-layer Denial of Service:

  1. Malicious Input: An attacker sets a service's prefetch configuration parameter to -1.
  2. Implicit Overflow: The application initializes the channel, executes Qos(-1, ...), and transmits an unintended maximum-capacity request to the RabbitMQ/AMQP broker.
  3. Consumer Exhaustion: The broker flushes the entire contents of the queue directly into the client consumer's network buffer, bypassing expected application concurrency barriers and inducing a crash.

high 7.0: CVE--2026--77407 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:L/SA:L
EPSS Score 0.128%
EPSS Percentile 2nd percentile
Description

Summary

An information disclosure vulnerability exists in the AMQP client implementation's authentication handling configuration. Following a successful connection handshake, the Connection.Config.SASL field stores the Authentication implementation state used to establish the session.

For standard PLAIN authentication, this state utilizes the PlainAuth struct, which defines both Username and Password as publicly exported, plaintext string fields. Because this sensitive data is retained permanently in-memory within an exported field structure, any peripheral code, internal package, reflective logger, dependency, or automated debugging utility with access to the core *Connection object can read and expose the raw credentials.


Vulnerability Details

Mechanism

The vulnerability stems from the structural design of the configuration storage used during and after the AMQP handshake:

// auth.go:21-23
type PlainAuth struct {
    Username string
    Password string  // exported plaintext
}

When an application initializes a connection, the PlainAuth object is deeply nested inside the configuration structure (Connection.Config). Even after the handshake concludes and authentication is complete, this structure persists natively in-memory for the duration of the network connection's lifecycle.

Because Password is an exported string field, standard automated inspection mechanisms can read its value without restriction.

Affected Code Paths & Integrations

Any sub-component or library that traverses or reads the *Connection object will inadvertently read the plaintext password, including:

  • Reflective Loggers: Structured logging frameworks that serialize nested configuration structs into JSON/Log formats.
  • APM & Performance Agents: Automated telemetry or Application Performance Monitoring tools that capture state snapshots.
  • Debugging & Panic Handlers: Mid-tier software or dump libraries designed to capture goroutine state or print deep struct hierarchies upon program errors or signals.

Impact

The credential remains vulnerable to leak paths into logging pipelines, log aggregators, security information and event management (SIEM) systems, or standard output. Once transmitted to external log infrastructure, these credentials become accessible to unprivileged operators or any actor with access to log archives.


Attack Vector

An attacker does not necessarily need direct remote code execution to exploit this flaw; instead, the vulnerability acts as a credential harvesting vector inside multi-tenant environments or via secondary log exposure:

  1. Configuration Dump: An operator configures a standard reflective logger or third-party APM package to capture system state parameters, including the active AMQP *Connection object.
  2. Reflective Access: The inspection engine uses Go's reflect package to walk the structural hierarchy, pulling the string value from Connection.Config.SASL.(*PlainAuth).Password.
  3. Exfiltration: The plaintext password is written to standard system logs, which are then scraped into shared logging aggregators, exposing production infrastructure credentials to a wider audience.
critical: 2 high: 8 medium: 0 low: 0 stdlib 1.26.8 (golang)

pkg:golang/stdlib@1.26.8

critical : CVE--2026--56857

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.493%
EPSS Percentile 41st percentile
Description

On Windows, when the target of Root.Mkdir or Root.MkdirAll is a junction pointing to an empty location, the operation can create a directory at the junction target even when that target is located outside the root. This only applies to operations where the last path component is a junction (path/to/junction, but not path/junction/target).

critical : CVE--2026--78663

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--97031

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.394%
EPSS Percentile 32nd percentile
Description

Multiple ECH outer extension references are not permitted under RFC 9849; previously, a client could send a well-crafted packet that could trigger memory exhaustion in the server process by specifying multiple references.

We now reject these as malformed and curb the memory amplification vector as a result.

high : CVE--2026--94440

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.404%
EPSS Percentile 33rd percentile
Description

Parsing a multipart form can bypass memory limits and read an arbitrarily long line into memory when the remaining limit at the start of a part is less than 400 bytes.

high : CVE--2026--94439

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.315%
EPSS Percentile 23rd percentile
Description

When an HTTP server handler sends a 2xx response to an HTTP/1 CONNECT request and returns without hijacking the connection, the server improperly continues to read and serve requests from the connection. Since a 2xx response to an HTTP/1 CONNECT converts the connection into a tunnel, the server should not treat the connection as continuing to contain HTTP.

The impact of this misbehavior is mostly limited to potential request smuggling, where an intermediate proxy considers the data on the connection to be tunneled and the server considers it to be HTTP.

high : CVE--2026--78669

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78667

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.379%
EPSS Percentile 30th percentile
Description

When parsing a Range header containing a large number of small ranges, FileServer(FS), ServeContent, and ServeFile(FS) can consume an excessive amount of CPU.

high : CVE--2026--78660

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--56866

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.309%
EPSS Percentile 22nd percentile
Description

When http.Transport sends an HTTP/1 CONNECT request with a non-empty Request.Body, it writes the body directly to the connection without framing after the request headers. If the server rejects the CONNECT request with a non-2xx keep-alive response, Transport returns the connection to the idle pool. Because CONNECT requests do not have a request body, the server may interpret the trailing body bytes as a subsequent pipelined HTTP/1.1 request on the connection, leaving the pooled connection desynchronized and causing the next caller that reuses it to read the response to the injected request. In reverse proxies (including httputil.ReverseProxy) that forward CONNECT requests through a shared Transport, this can lead to cross-user response poisoning.

critical: 2 high: 5 medium: 0 low: 0 golang.org/x/net 0.40.0 (golang)

pkg:golang/golang.org/x/net@0.40.0

critical : CVE--2026--39821

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.692%
EPSS Percentile 51st percentile
Description

The ToASCII and ToUnicode functions incorrectly accept Punycode-encoded labels that decode to an ASCII-only label. For example, ToUnicode("xn--example-.com") incorrectly returns the name "example.com" rather than an error.

This behavior can lead to privilege escalation in programs using the idna package. For example, a program which performs privilege checks on the ASCII hostname may reject "example.com" but permit "xn--example-.com". If that program subsequently converts the ASCII hostname to Unicode, it will inadvertently permits access to the Unicode name "example.com".

critical : CVE--2026--78663

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--78669

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78660

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--46600

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

Parsing an invalid SVCB or HTTPS RR can panic when the size of a parameter value overflows the message buffer.

high : CVE--2026--33814

Affected range <0.53.0
Fixed version 0.53.0
EPSS Score 0.781%
EPSS Percentile 55th percentile
Description

When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a value of 0.

critical: 1 high: 3 medium: 0 low: 0 google.golang.org/grpc 1.71.0 (golang)

pkg:golang/google.golang.org/grpc@1.71.0

critical 9.1: CVE--2026--33186 Improper Authorization

Affected range <1.79.3
Fixed version 1.79.3
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 1.625%
EPSS Percentile 75th percentile
Description

Impact

What kind of vulnerability is it? Who is impacted?

It is an Authorization Bypass resulting from Improper Input Validation of the HTTP/2 :path pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting requests where the :path omitted the mandatory leading slash (e.g., Service/Method instead of /Service/Method). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official grpc/authz package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with /) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present.

Who is impacted?
This affects gRPC-Go servers that meet both of the following criteria:

  1. They use path-based authorization interceptors, such as the official RBAC implementation in google.golang.org/grpc/authz or custom interceptors relying on info.FullMethod or grpc.Method(ctx).
  2. Their security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed :path headers directly to the gRPC server.

Patches

Has the problem been patched? What versions should users upgrade to?

Yes, the issue has been patched. The fix ensures that any request with a :path that does not start with a leading slash is immediately rejected with a codes.Unimplemented error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):

  • v1.79.3
  • The latest master branch.

It is recommended that all users employing path-based authorization (especially grpc/authz) upgrade as soon as the patch is available in a tagged release.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods:

1. Use a Validating Interceptor (Recommended Mitigation)

Add an "outermost" interceptor to your server that validates the path before any other authorization logic runs:

func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)

2. Infrastructure-Level Normalization

If your gRPC server is behind a reverse proxy or load balancer (such as Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to enforce strict HTTP/2 compliance for pseudo-headers and reject or normalize requests where the :path header does not start with a leading slash.

3. Policy Hardening

Switch to a "default deny" posture in your authorization policies (explicitly listing all allowed paths and denying everything else) to reduce the risk of bypasses via malformed inputs.

high 8.8: GHSA--hrxh--6v49--42gf Uncaught Exception

Affected range <1.82.1
Fixed version 1.82.1
CVSS Score 8.8
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Description

Multiple security vulnerabilities have been identified and addressed in grpc-go affecting the xDS RBAC authorization engine (internal/xds/rbac) and the HTTP/2 transport server implementation (internal/transport). These vulnerabilities could result in:

  • Authorization Bypass (Fail-Open) when translating xDS RBAC policies containing Metadata or RequestedServerName fields.
  • Denial of Service (High CPU Consumption) due to an HTTP/2 Rapid Reset mitigation bypass during client-initiated stream resets.
  • Denial of Service (Server Panic) when parsing crafted xDS RBAC policies containing NOT rules around unsupported fields.

Impact

What kind of vulnerability is it? Who is impacted?

xDS RBAC Authorization Bypass via Metadata & RequestedServerName matchers

  • Affected Component: xDS RBAC
  • Impact: When building policy matchers for gRPC RBAC from xDS configurations, unsupported permission and principal rules (specifically Metadata and RequestedServerName) were silently ignored and treated as no-ops.
    • If an authorization policy relied purely on these matchers for access control, treating those rules as no-ops effectively removed the restrictions.
  • If these unsupported rules were nested inside logical NOT rules (Permission_NotRule / Principal_NotId) or multi-condition OR/AND rules, silently dropping them changed the boolean logic flow of the authorization engine.

As a result, policy evaluation decisions could fail open, allowing unauthorized clients to access protected gRPC services or resources.

HTTP/2 Rapid Reset Mitigation Bypass / Denial of Service via Stream Aborts

  • Affected Component: HTTP/2 transport
  • Impact: Earlier mitigations in grpc-go for HTTP/2 Rapid Reset only applied threshold checks to items that directly resulted in control frames being written back to the wire, such as SETTINGS ACKs or server-initiated RST_STREAMs.

When a client initiated a rapid flood of stream creation (HEADERS) immediately followed by stream termination RST_STREAM, items queued up in the control buffer without counting against the transport response frame threshold. An attacker can repeatedly trigger this flood sequence to bypass reader blocking, resulting in high CPU usage, and Denial of Service (DoS).

Denial of Service (Panic) in xDS RBAC Engine via Unsupported Fields inside NOT Rules

  • Affected Component: xDS RBAC
  • Impact: The xDS RBAC policy translators recursively generate matchers for nested rules. When a NOT rule wrapped an unsupported or unhandled field (such as SourcedMetadata), the recursive step returned an empty matcher. This could result in a runtime panic when the RBAC engine attempts to authorize an incoming request.

An attacker or misconfigured/malicious xDS management server delivering an LDS/RDS update containing a NOT rule around an unhandled field causes the gRPC server process to crash immediately (CWE-248 / Denial of Service).

Patches

Has the problem been patched? What versions should users upgrade to?

All three issues have been fixed in master and will be released in 1.82.1 shortly.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

If upgrading grpc-go immediately is not possible, apply the following workarounds based on your deployment architecture:

  • For xDS RBAC Vulnerabilities & Panics: Ensure that upstream xDS management servers do not push RBAC policies containing Metadata, RequestedServerName, or NOT rules wrapping unsupported fields (such as SourcedMetadata) to grpc-go servers.
  • For HTTP/2 Rapid Reset DOS: Configure upstream reverse proxies or load balancers (such as Envoy) with strict HTTP/2 max_concurrent_streams limits and active rate limiting on RST_STREAM frequency per connection.

Severity

Vulnerability Qualitative Severity Approximate CVSS v3.1 Score Primary Impact
xDS RBAC Authorization Bypass High 8.2 Unauthorized Access / Fail-Open
HTTP/2 Rapid Reset DOS Bypass High 7.5 High CPU Consumption / Denial of Service
xDS RBAC Engine Server Panic Medium 5.9 Process Crash / Denial of Service

high 8.7: CVE--2026--84445 Improper Validation of Array Index

Affected range <1.82.2
Fixed version 1.82.2
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.641%
EPSS Percentile 49th percentile
Description

A vulnerability exists in gRPC-Go servers configured with xds.NewGRPCServer() where a crafted request missing both :authority and Host headers can cause a server panic, resulting in a Denial of Service (DoS).

Servers built with xds.NewGRPCServer install an xDS routing interceptor on every RPC. This interceptor looks up the request’s :authority header to pick a virtual host. The HTTP/2 server transport previously accepted requests that had neither :authority nor Host. When this happened, the xDS routing interceptor attempted to access the first element of an empty slice of authorities, leading to an index out of bounds panic. Since the per-RPC goroutine does not recover from panics, the entire server process would terminate.

This panic occurs in the interceptor pipeline, meaning the transport credentials handshake (TLS, mTLS, or ALTS) and HTTP/2 connection establishment must complete successfully before the crafted request can reach this logic.

  • Insecure/Standard TLS: If the server permits insecure (plaintext) connections or standard credentials (where client certs are not checked), any unauthenticated remote attacker can trigger the crash.
  • mTLS / ALTS: If strict transport-level authentication is enforced at the network edge or transport layer (e.g., requiring a valid client certificate), the attacker must possess valid transport credentials to initiate the stream and trigger the panic.

Impact

An attacker can cause a complete outage of the gRPC server by sending a request missing both :authority and Host headers, provided they can successfully establish a transport connection.

Patches

The issue has been addressed in master (and backported to 1.84.0, 1.83.2 and 1.82.2). The fix updates the HTTP/2 transport layer to reject requests missing both :authority and Host headers early, maintaining consistency with and other gRPC language implementations.

high 8.7: CVE--2026--84304 Uncontrolled Resource Consumption

Affected range <=1.83.0
Fixed version 1.83.1
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
EPSS Score 0.609%
EPSS Percentile 48th percentile
Description

Impact

An unauthenticated remote attacker can initiate a gRPC stream and purposefully fragment their payload into millions of tiny (e.g., 1-byte) HTTP/2 DATA frames. Even if the total payload volume falls within the configured connection and stream flow-control windows, each independent fragment incurs memory overhead due to internal tracking structures and queue allocation.

Repeated fragmentation massively inflates the heap space consumed by the stream. An attacker multiplexing multiple concurrent streams can exhaust the memory bounds of the runtime, forcing a runtime panic or OutOfMemory condition and leading to a remote Denial of Service (DoS).

Patches

The change to fix this issue is merged in master and a patch release, 1.83.1, has been published that contains this fix.

Workarounds

This vulnerability is mitigated by implementing receive buffer compaction. Consecutive small data buffers are automatically coalesced into larger buffers from a shared pool once the overhead is perceived to be excessive relative to actual payload data, drastically minimizing per-frame memory overheads.

This behavior is enabled by default. A temporary escape hatch is provided via the environment variable GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION=false to disable the feature if unforeseen issues arise, but it will be removed in a future release.

critical: 0 high: 2 medium: 0 low: 0 expat 2.8.5-r0 (apk)

pkg:apk/alpine/expat@2.8.5-r0?os_name=alpine&os_version=3.24

high : CVE--2026--77214

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

high : CVE--2026--102633

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.348%
EPSS Percentile 26th percentile
Description
critical: 0 high: 1 medium: 0 low: 0 github.com/antchfx/xpath 1.3.3 (golang)

pkg:golang/github.com/antchfx/xpath@1.3.3

high 7.5: CVE--2026--32287 Uncontrolled Resource Consumption

Affected range <1.3.6
Fixed version 1.3.6
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.695%
EPSS Percentile 52nd percentile
Description

Boolean expressions that evaluate to true can cause an infinite loop in logicalQuery.Select, leading to 100% CPU usage. This can be triggered by top-level selectors such as "1=1" or "true()".

critical: 0 high: 1 medium: 0 low: 0 golang.org/x/text 0.25.0 (golang)

pkg:golang/golang.org/x/text@0.25.0

high : CVE--2026--56851

Affected range <0.41.0
Fixed version 0.41.0
EPSS Score 0.335%
EPSS Percentile 25th percentile
Description

The Nickname profile can panic with an out-of-bounds slice error when transforming crafted input into a short destination buffer.

@github-actions

Copy link
Copy Markdown

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:978dd59df61d77f0841b838bac42c8fbc332d819f8d9d2d87c0f4ab1c7c221ce
vulnerabilitiescritical: 15 high: 33 medium: 0 low: 0
platformlinux/amd64
size138 MB
packages283
📦 Base Image php:8.2-alpine
also known as
  • 8.2-alpine3.24
  • 8.2-cli-alpine
  • 8.2-cli-alpine3.24
  • 8.2.34-alpine
  • 8.2.34-alpine3.24
  • 8.2.34-cli-alpine
  • 8.2.34-cli-alpine3.24
digestsha256:4203d470e6d27ccf2cbfe64a2ea4448d76a28d2325e6db55d76c076de6c1b02b
vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
critical: 7 high: 6 medium: 0 low: 0 golang.org/x/crypto 0.38.0 (golang)

pkg:golang/golang.org/x/crypto@0.38.0

critical 10.0: CVE--2026--46595 Incorrect Implementation of Authentication Algorithm

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 10
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L
EPSS Score 0.503%
EPSS Percentile 41st percentile
Description

Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped.

critical 9.1: CVE--2026--42508 Improper Certificate Validation

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.654%
EPSS Percentile 50th percentile
Description

Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @Revoked.

critical 9.1: CVE--2026--39834 Integer Overflow or Wraparound

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
EPSS Score 0.637%
EPSS Percentile 49th percentile
Description

When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation.

critical 9.1: CVE--2026--39833 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested.

critical 9.1: CVE--2026--39832 Improper Preservation of Permissions

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.716%
EPSS Percentile 52nd percentile
Description

When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them.

critical 9.1: CVE--2026--39831 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) did not check the User Presence flag. Signatures generated without physical touch were accepted, allowing unattended use of a hardware security key. To restore the previous behavior, return a "no-touch-required" extension in Permissions.Extensions from PublicKeyCallback.

critical 9.1: CVE--2026--39830 Improper Restriction of Operations within the Bounds of a Memory Buffer

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
EPSS Score 0.621%
EPSS Percentile 48th percentile
Description

A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded.

high : CVE--2026--78662

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.431%
EPSS Percentile 35th percentile
Description

Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection.

Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection.

high : CVE--2026--56855

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.500%
EPSS Percentile 41st percentile
Description

Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection.

Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking.

high : CVE--2026--56854

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.437%
EPSS Percentile 36th percentile
Description

The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback.

high 7.5: CVE--2026--46597 Incorrect Type Conversion or Cast

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.620%
EPSS Percentile 48th percentile
Description

An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.

high 7.5: CVE--2026--39829 Improper Validation of Specified Quantity in Input

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2.

high : CVE--2025--47913

Affected range <0.43.0
Fixed version 0.43.0
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

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

critical: 3 high: 7 medium: 0 low: 0 github.com/rabbitmq/amqp091-go 1.10.0 (golang)

pkg:golang/github.com/rabbitmq/amqp091-go@1.10.0

critical 9.5: CVE--2026--77411 Improper Check for Unusual or Exceptional Conditions

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.5
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A critical stream desynchronization vulnerability has been identified in the AMQP wire-protocol parser. When parsing a long string (readLongstr) within a table field, providing a length that exceeds the maximum signed 32-bit integer (2^31 - 1, or roughly 2.1 GiB) triggers an improper error-handling condition. The parser abruptly aborts the read and returns a success status ("",nil) without consuming the specified bytes from the underlying network buffer. This causes all subsequent read operations to become misaligned. The parser interprets arbitrary offsets within the remaining payload bytes as valid AMQP frame headers, leading to potential Remote Code Execution (RCE), data injection, or complete connection hijacking.

Vulnerability Details

The vulnerability exists within the bounds-checking logic of the readLongstr function:

// read.go:113-114 — silent no-op return, bytes left in stream
if length > (^uint32(0) >> 1) {
    return  // returns "", nil, does NOT consume `length` bytes
}

When length evaluates to a value greater than 0x7FFFFFFF:

  1. The function executes a silent return statement.
  2. Because Go utilizes named or zero-value initialization for unassigned return registers, this yields "", nil (indicating a successful read of an empty string).
  3. The Critical Failure: The reader's cursor is not advanced by length bytes. The malformed payload remains sitting in the TCP/buffer stream.

Impact

As readTable continues iterating over the stream under the assumption that the string was successfully parsed, the byte alignment is entirely broken.

  • Parser Desynchronization: Future AMQP frame headers are read from arbitrary offsets inside the attacker-controlled message payload.
  • Payload Reinterpretation: A malicious actor can carefully craft the trailing bytes of the initial payload to perfectly mimic valid AMQP frames (e.g., connection.close, channel.open, or message publishing frames), forcing the client/server to execute unintended actions.

critical 9.4: CVE--2026--77405 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.4
CVSS Vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:L/SA:N
EPSS Score 0.282%
EPSS Percentile 19th percentile
Description

Summary

A structural security weakness exists in the AMQP client's TLS configuration generator (tlsConfigFromURI). When constructing a *tls.Config object from an amqps:// connection URI, the library initializes the structure without explicitly defining the MinVersion field.

While modern versions of the Go compiler toolchain (Go 1.18+) default the implicit minimum version to TLS 1.2, this security posture relies entirely on an implicit toolchain dependency. If the library is compiled using legacy Go toolchains (Go < 1.18), or if a future toolchain introduces fallback behavior, the client could silently negotiate obsolete and insecure TLS 1.0 or TLS 1.1 protocols during connection handshakes with a compromised or malicious AMQP broker.


Vulnerability Details

Mechanism

The vulnerability lies in the lack of an explicit safety floor when assigning configurations inside the URI component:

// Example within uri.go's tlsConfigFromURI
cfg := &tls.Config{
    ServerName: host,
    // MinVersion is left completely unassigned (defaults to 0, or toolchain default)
}

In the Go standard library (crypto/tls), leaving MinVersion: 0 instructs the runtime to choose the toolchain's default minimum. Prior to Go 1.18, this default allowed negotiation down to TLS 1.0. Relying on implicit compiler configurations violates secure coding practices by decoupling the library's security posture from its source code, leaving applications vulnerable based solely on how they are built.

Impact

If a client application is built with a legacy compiler environment or a custom Go runtime, an attacker capable of executing a Man-in-the-Middle (MitM) attack can force the connection to downgrade to TLS 1.0 or 1.1. This exposes the AMQP protocol data stream to well-known cryptographic vulnerabilities (such as BEAST, POODLE, or SWEET32), allowing the attacker to decrypt or alter message payloads, connection parameters, and authentication credentials.


Attack Vector

An attacker performing a network-level downgrade attack can intercept a client connection built under a legacy toolchain:

  1. Interception: A client application compiled on a legacy pipeline attempts to establish an encrypted connection to an AMQP broker.
  2. Protocol Downgrade: The attacker intercepts the TLS Client Hello handshake and forces a downgrade negotiation to TLS 1.0.
  3. Cryptographic Exploitation: Because MinVersion was never explicitly locked to tls.VersionTLS12 by the library, the client accepts the weak cipher suites, allowing the attacker to monitor or manipulate the underlying AMQP session data.

critical 9.1: CVE--2026--77408 Integer Overflow or Wraparound

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.1
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:H/SC:L/SI:H/SA:L
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A data integrity and protocol corruption vulnerability exists in the AMQP client's property serialization logic. When encoding AMQP short string (shortstr) fields—such as identifiers, routing strings, and content metadata—the length of the string is explicitly cast to a fixed-size 8-bit unsigned integer (uint8).

If an application provides a property string exceeding 255 bytes, the length counter silently wraps around (e.g., a length of 300 wraps to 44). As a result, the parser writes only a truncated portion of the string into the outgoing connection buffer without returning an error. This leads to silent data corruption, broken RPC routing, and unpredictable broker-side state behavior.


Vulnerability Details

Mechanism

The vulnerability resides in the wire-level serialization logic for application publishing properties:

// write.go:246
length := uint8(len(b))  // wraps silently when len(b) > 255 (e.g., 300 -> 44)

Because Go allows silent integer truncation during explicit type casting, lengths larger than $2^8 - 1$ lose their most significant bits. The underlying stream writer reads length to determine how many bytes to pull from the buffer. Because no error or boundary check accompanies this truncation, the application believes the full payload was transmitted successfully.

Affected Properties

This truncation behavior affects every standard AMQP field serialized as a shortstr:

  • CorrelationId
  • ReplyTo
  • MessageId
  • Expiration
  • UserId
  • AppId
  • ContentType
  • ContentEncoding
  • Type

Impact

The critical consequence is silent protocol desynchronization at the application layer. The underlying TCP stream remains framed properly (because the shortened length matches the bytes written), but the business logic is corrupted. Distributed transactions, request-reply correlations, and tracing headers are truncated, causing downstream systems to drop messages or route them to incorrect consumers.


Attack Vector

An attacker who can influence metadata fields processed by an upstream application (such as a user-supplied tracking ID or a long content-type header) can exploit this to break system components:

  1. Targeting RPC Routing: A user passes a malicious or overly long CorrelationId of 300 bytes through an application endpoint.
  2. Silent Truncation: The library wraps the length value to 44, transmitting only the first 44 bytes to the rabbitMQ broker.
  3. Broken Correlation: When the service processes the request and responds, the replying consumer attempts to route the message using the full 300-byte identifier. Because the broker only recognizes the truncated 44-byte ID, the reply loop breaks silently, leading to hanging processes or data leaks across transaction boundaries.

high 8.9: CVE--2026--79921 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.550%
EPSS Percentile 44th percentile
Description

Summary
A vulnerability exists in the amqp091-go client library where a compromised or malicious AMQP broker can force the client to allocate resources for and process content body frames that exceed the negotiated frame_max limit. This can lead to unexpected memory consumption or application-layer denial of service (DoS), bypassing the protocol's built-in framing constraints.

Details
During a standard AMQP 0-9-1 connection handshake, the client and the broker negotiate a maximum frame size (frame_max), for example, 4096 bytes.

However, after negotiation, a malicious broker can send a valid basic.deliver sequence containing a content body frame whose header declares a payload size larger than the negotiated frame_max. Instead of enforcing the agreed-upon limit and closing the connection with a frame-error (as mandated by the AMQP 0-9-1 specification), the amqp091-go client:

  1. Accepts the broker-declared oversized frame size.
  2. Allocates memory based on this oversized declaration.
  3. Reads the payload, assembles it into the message, and delivers it to the consumer.

Impact

  • Denial of Service (DoS): If a broker sends extremely large frame sizes, it can trigger significant memory allocations on the client side, potentially leading to Out-Of-Memory (OOM) crashes.
  • Protocol Violation: The client fails to enforce negotiated connection parameters, trusting the broker implicitly even after constraints have been established.

high 8.9: CVE--2026--77412 Incorrect Conversion between Numeric Types

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A vulnerability in the readField function allows a malicious or compromised AMQP server to trigger an unhandled runtime panic in the client application, leading to an immediate crash of the entire process.

Details
When parsing incoming AMQP frames, the readField function processes byte-array fields (type tag 'x') by reading a 32-bit big-endian integer to determine the length of the data payload.

// read.go:253-263
case 'x':
    var len int32
    if err = binary.Read(r, binary.BigEndian, &len); err != nil {
        return nil, err
    }
    value := make([]byte, len)  // PANICS if len < 0

If a server transmits a length value of 0xFFFFFFFF, it is interpreted by the client as a signed 32-bit integer with a value of -1. Passing a negative integer to Go's built-in make() function for slice allocation triggers an unrecoverable runtime panic (panic: len out of range).

Because the reader goroutine handles network I/O without an explicit recover() wrapper, this panic propagates up to the runtime root, abruptly terminating the host application.

Attack Vector / Exploitation Scenario
An attacker capable of spoofing, compromising, or controlling an AMQP broker can exploit this flaw during two primary phases:

  1. Connection Establishment: Sending a malicious connection.start handshake frame containing server-properties with an 'x' type field assigned a negative length.
  2. Message Delivery: Delivering a message payload where the header table contains a malformed field matching the criteria above.

Impact
Availability: High. A single malformed frame can reliably crash the client process, resulting in a persistent Denial of Service (DoS) if the client automatically reconnects and receives the same payload.

high 8.9: CVE--2026--77410 Memory Allocation with Excessive Size Value

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A flaw in the recvContent function allows a malicious AMQP server to trigger an Out-of-Memory (OOM) error, forcing the host operating system or container runtime to immediately terminate the client process.

Vulnerability Details
When receiving message content payloads, the client processes the expected size from the content header framework. The recvContent function attempts to optimize performance by pre-allocating memory for the message body based on the ch.header.Size field, which is a 64-bit unsigned integer (uint64).

// channel.go:495-496
if cap(ch.body) == 0 {
    ch.body = make([]byte, 0, ch.header.Size)  // unbounded
}

The underlying library fails to validate or cap this requested size against any upper boundary—such as the maximum frame size negotiated during connection establishment (FrameMax). If a server specifies an extreme body size (e.g., 2^62 bytes), the Go runtime attempts to allocate an exabyte-scale slice capacity. This immediately exhausts available system memory, causing the operating system's OOM killer to terminate the application.

Attack Vector / Exploitation Scenario

  • Message Delivery Phase: A malicious or compromised AMQP broker sends a standard basic.deliver frame containing a content header with an intentionally inflated body-size variable.
  • Authentication Requirement: No special privileges or authentication bypasses are required; the crash occurs seamlessly during normal message consumption.

Impact

  • Availability: High. Exploded memory consumption results in an instant process termination, destroying application state and availability for all threads sharing the environment.

high 8.9: CVE--2026--77403 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A Denial of Service (DoS) vulnerability exists in the AMQP client's connection negotiation logic. The AMQP specification explicitly mandates a strict minimum frame size of 4096 bytes to prevent pathological packet fragmentation. While the library defines a frameMinSize = 4096 constant, the connection negotiation loop fails to enforce this boundary, blindly accepting whatever maximum frame size (FrameMax) the server advertises during the handshake.

If a client connects to a malicious or compromised AMQP broker that advertises an extremely low FrameMax (such as 1 byte), the negotiation succeeds. Consequently, every subsequent message transmission is forced to splinter into thousands or millions of single-byte frames, causing massive CPU overhead, thread contention, and a near-instantaneous application freeze.


Vulnerability Details

Mechanism

During the connection establishment phase, the client and server negotiate connection parameters—including maximum channel count, heartbeat intervals, and maximum frame sizes. The vulnerability is located where the client accepts the server's tuning parameters:

// Connection negotiation logic maps server values directly without validation
if serverSettings.FrameMax > 0 {
    // VULNERABILITY: Lacks a floor validation check against frameMinSize (4096)
    c.config.FrameMax = serverSettings.FrameMax 
}

Because there is no conditional check asserting that serverSettings.FrameMax >= frameMinSize, a value below the protocol specification floor is successfully registered. When the application later passes data payloads to the frame writer, the chunking algorithm splits the payload using the negotiated FrameMax value as its chunk window divisor.

Impact

When FrameMax is set to an absurdly low threshold (e.g., 1 to 10 bytes):

  • A standard 10 KiB message payload requires tens of thousands of individual write operations and frame headers.
  • The system's CPU becomes entirely bound by frame serialization, memory allocation for frame structures, and context switching within the network output loops.
  • This results in an application-layer Denial of Service (DoS) affecting not just the specific AMQP connection, but potentially the entire host system due to CPU resource starvation.

Attack Vector

An attacker who compromises an upstream AMQP broker, performs a Man-in-the-Middle (MitM) interception, or tricks an application into connecting to an unauthorized external rogue broker can trigger this vulnerability:

  1. Rogue Handshake: The client application connects to an AMQP endpoint controlled by the attacker.
  2. Malicious Parameter Tuning: During the connection.tune phase, the rogue server returns a FrameMax value of 1.
  3. Resource Exhaustion Trigger: The client completes the handshake successfully. As soon as the client attempts to publish a message or process traffic, the internal loop fragments the data into single-byte frames, spiking the host's CPU usage to 100% and disabling the application thread.

high 8.7: CVE--2026--77404 Improper Encoding or Escaping of Output

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L
EPSS Score 0.098%
EPSS Percentile 1st percentile
Description

Summary

A query parameter injection vulnerability exists in the AMQP client's connection URI formatting logic. When generating or parsing connection URIs, TLS-related filesystem paths (such as certificates or keys) are appended directly to the URI's query string using string concatenation rather than secure URL encoding via functions like url.QueryEscape.

If an application handles a TLS file path containing special character delimiters (such as & or =), these characters are interpreted as parameter separators by the URI parser. If the resulting URI.String() output is subsequently re-parsed via ParseURI, the injected fields can silently overwrite or hijack critical configuration parameters, forcing the client to use arbitrary connection settings or alternate TLS files.


Vulnerability Details

Mechanism

The vulnerability lies within the lack of proper escaping when compiling connection string components into a raw URL format:

// Example of insecure string concatenation during URI building
uri := fmt.Sprintf("amqps://user:pass@<!-- -->host/%s?certfile=%s&keyfile=%s", vhost, certPath, keyPath)

Because certPath and keyPath are not passed through url.QueryEscape, special URL characters preserve their control meanings. For instance, if a user supply a certificate path named:
/tmp/cert=foo&keyfile=/evil/path

The generated string translates into:
...?certfile=/tmp/cert=foo&keyfile=/evil/path&keyfile=/original/path

When this string passes back through ParseURI (common in connection re-dial routines or configuration replication steps), standard URL parsing mechanics treat the string as multiple distinct parameters. Depending on map assignment order inside the parser, the injected keys take precedence over the original parameters.

Impact

By manipulating the file paths used for TLS assets, an attacker or compromised local sub-system can:

  • Inject arbitrary alternative options or override protocol settings.
  • Substitute or switch keyfiles, leading to connection failures or the parsing of unauthorized cryptographic assets.
  • Corrupt connection state variables, triggering application-layer failures during connection setup or recovery.

Attack Vector

An attacker who has partial control over directory naming conventions or environmental variables used to specify local infrastructure paths can execute a parameter injection attack:

  1. Path Creation: An attacker sets up a path containing deliberate URL parameter delimiters (e.g., /var/lib/certs/client.crt?cacertfile=/tmp/fake_ca.crt&).
  2. String Generation: The application serializes the active connection state or passes the paths down to an unescaped URI builder function.
  3. Configuration Hijack: The URI string is generated with the injected parameter embedded into the query structure. When the client attempts to reuse or re-parse this connection string during a connection retry or worker spin-up, it parses the injected cacertfile parameter, loading a different, unverified Certificate Authority string.

high 8.2: CVE--2026--77406 Signed to Unsigned Conversion Error

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.2
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L
EPSS Score 0.412%
EPSS Percentile 33rd percentile
Description

Summary

A logic and resource exhaustion vulnerability exists in the AMQP client's Quality of Service (Qos) configuration method. The Qos function accepts signed integers (int) for the prefetchCount and prefetchSize parameters but casts them directly to unsigned integers (uint16 and uint32, respectively) when formatting the wire-level frame.

If a developer passes a negative integer (such as -1) to these parameters—frequently intended as a sentinel value meaning "no change" or "no limit"—the application performs an implicit signed-to-unsigned conversion. This wraps the values to their absolute maximum limit ($65535$ and $4294967295$). Consequently, a consumer expecting restricted message delivery rates is suddenly flooded with an unlimited volume of messages, potentially exhausting memory resources and crashing the application.


Vulnerability Details

Mechanism

The bug manifests during the structural assignment inside the channel's Qos method:

// channel.go:795-796
PrefetchCount: uint16(prefetchCount),  // -1 wraps to 65535
PrefetchSize:  uint32(prefetchSize),   // -1 wraps to 4294967295

In Go, converting a negative signed integer to an unsigned integer shifts the value via two's complement arithmetic. Because no boundary validation or signedness check occurs prior to the cast:

  • Passing -1 for prefetchCount yields a wire value of 65535.
  • Passing -1 for prefetchSize yields a wire value of 4294967295.

Impact

The AMQP broker interprets a prefetch-count of 65535 as an instruction to dispatch messages to the consumer with virtually no concurrency limits.

If the application is processing heavy payloads or relies on strict rate-limiting to maintain stability, this unexpected flood will cause rapid heap memory growth, unmanageable processing queues, and an eventual Out-Of-Memory (OOM) termination.


Attack Vector

An attacker who can manipulate configuration files, environmental variables, or API inputs that dictate client Qos settings can trigger an application-layer Denial of Service:

  1. Malicious Input: An attacker sets a service's prefetch configuration parameter to -1.
  2. Implicit Overflow: The application initializes the channel, executes Qos(-1, ...), and transmits an unintended maximum-capacity request to the RabbitMQ/AMQP broker.
  3. Consumer Exhaustion: The broker flushes the entire contents of the queue directly into the client consumer's network buffer, bypassing expected application concurrency barriers and inducing a crash.

high 7.0: CVE--2026--77407 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:L/SA:L
EPSS Score 0.128%
EPSS Percentile 2nd percentile
Description

Summary

An information disclosure vulnerability exists in the AMQP client implementation's authentication handling configuration. Following a successful connection handshake, the Connection.Config.SASL field stores the Authentication implementation state used to establish the session.

For standard PLAIN authentication, this state utilizes the PlainAuth struct, which defines both Username and Password as publicly exported, plaintext string fields. Because this sensitive data is retained permanently in-memory within an exported field structure, any peripheral code, internal package, reflective logger, dependency, or automated debugging utility with access to the core *Connection object can read and expose the raw credentials.


Vulnerability Details

Mechanism

The vulnerability stems from the structural design of the configuration storage used during and after the AMQP handshake:

// auth.go:21-23
type PlainAuth struct {
    Username string
    Password string  // exported plaintext
}

When an application initializes a connection, the PlainAuth object is deeply nested inside the configuration structure (Connection.Config). Even after the handshake concludes and authentication is complete, this structure persists natively in-memory for the duration of the network connection's lifecycle.

Because Password is an exported string field, standard automated inspection mechanisms can read its value without restriction.

Affected Code Paths & Integrations

Any sub-component or library that traverses or reads the *Connection object will inadvertently read the plaintext password, including:

  • Reflective Loggers: Structured logging frameworks that serialize nested configuration structs into JSON/Log formats.
  • APM & Performance Agents: Automated telemetry or Application Performance Monitoring tools that capture state snapshots.
  • Debugging & Panic Handlers: Mid-tier software or dump libraries designed to capture goroutine state or print deep struct hierarchies upon program errors or signals.

Impact

The credential remains vulnerable to leak paths into logging pipelines, log aggregators, security information and event management (SIEM) systems, or standard output. Once transmitted to external log infrastructure, these credentials become accessible to unprivileged operators or any actor with access to log archives.


Attack Vector

An attacker does not necessarily need direct remote code execution to exploit this flaw; instead, the vulnerability acts as a credential harvesting vector inside multi-tenant environments or via secondary log exposure:

  1. Configuration Dump: An operator configures a standard reflective logger or third-party APM package to capture system state parameters, including the active AMQP *Connection object.
  2. Reflective Access: The inspection engine uses Go's reflect package to walk the structural hierarchy, pulling the string value from Connection.Config.SASL.(*PlainAuth).Password.
  3. Exfiltration: The plaintext password is written to standard system logs, which are then scraped into shared logging aggregators, exposing production infrastructure credentials to a wider audience.
critical: 2 high: 8 medium: 0 low: 0 stdlib 1.26.8 (golang)

pkg:golang/stdlib@1.26.8

critical : CVE--2026--56857

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.493%
EPSS Percentile 41st percentile
Description

On Windows, when the target of Root.Mkdir or Root.MkdirAll is a junction pointing to an empty location, the operation can create a directory at the junction target even when that target is located outside the root. This only applies to operations where the last path component is a junction (path/to/junction, but not path/junction/target).

critical : CVE--2026--78663

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--97031

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.394%
EPSS Percentile 32nd percentile
Description

Multiple ECH outer extension references are not permitted under RFC 9849; previously, a client could send a well-crafted packet that could trigger memory exhaustion in the server process by specifying multiple references.

We now reject these as malformed and curb the memory amplification vector as a result.

high : CVE--2026--94440

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.404%
EPSS Percentile 33rd percentile
Description

Parsing a multipart form can bypass memory limits and read an arbitrarily long line into memory when the remaining limit at the start of a part is less than 400 bytes.

high : CVE--2026--94439

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.315%
EPSS Percentile 23rd percentile
Description

When an HTTP server handler sends a 2xx response to an HTTP/1 CONNECT request and returns without hijacking the connection, the server improperly continues to read and serve requests from the connection. Since a 2xx response to an HTTP/1 CONNECT converts the connection into a tunnel, the server should not treat the connection as continuing to contain HTTP.

The impact of this misbehavior is mostly limited to potential request smuggling, where an intermediate proxy considers the data on the connection to be tunneled and the server considers it to be HTTP.

high : CVE--2026--78669

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78667

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.379%
EPSS Percentile 30th percentile
Description

When parsing a Range header containing a large number of small ranges, FileServer(FS), ServeContent, and ServeFile(FS) can consume an excessive amount of CPU.

high : CVE--2026--78660

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--56866

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.309%
EPSS Percentile 22nd percentile
Description

When http.Transport sends an HTTP/1 CONNECT request with a non-empty Request.Body, it writes the body directly to the connection without framing after the request headers. If the server rejects the CONNECT request with a non-2xx keep-alive response, Transport returns the connection to the idle pool. Because CONNECT requests do not have a request body, the server may interpret the trailing body bytes as a subsequent pipelined HTTP/1.1 request on the connection, leaving the pooled connection desynchronized and causing the next caller that reuses it to read the response to the injected request. In reverse proxies (including httputil.ReverseProxy) that forward CONNECT requests through a shared Transport, this can lead to cross-user response poisoning.

critical: 2 high: 5 medium: 0 low: 0 golang.org/x/net 0.40.0 (golang)

pkg:golang/golang.org/x/net@0.40.0

critical : CVE--2026--39821

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.692%
EPSS Percentile 51st percentile
Description

The ToASCII and ToUnicode functions incorrectly accept Punycode-encoded labels that decode to an ASCII-only label. For example, ToUnicode("xn--example-.com") incorrectly returns the name "example.com" rather than an error.

This behavior can lead to privilege escalation in programs using the idna package. For example, a program which performs privilege checks on the ASCII hostname may reject "example.com" but permit "xn--example-.com". If that program subsequently converts the ASCII hostname to Unicode, it will inadvertently permits access to the Unicode name "example.com".

critical : CVE--2026--78663

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--78669

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78660

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--46600

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

Parsing an invalid SVCB or HTTPS RR can panic when the size of a parameter value overflows the message buffer.

high : CVE--2026--33814

Affected range <0.53.0
Fixed version 0.53.0
EPSS Score 0.781%
EPSS Percentile 55th percentile
Description

When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a value of 0.

critical: 1 high: 3 medium: 0 low: 0 google.golang.org/grpc 1.71.0 (golang)

pkg:golang/google.golang.org/grpc@1.71.0

critical 9.1: CVE--2026--33186 Improper Authorization

Affected range <1.79.3
Fixed version 1.79.3
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 1.625%
EPSS Percentile 75th percentile
Description

Impact

What kind of vulnerability is it? Who is impacted?

It is an Authorization Bypass resulting from Improper Input Validation of the HTTP/2 :path pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting requests where the :path omitted the mandatory leading slash (e.g., Service/Method instead of /Service/Method). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official grpc/authz package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with /) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present.

Who is impacted?
This affects gRPC-Go servers that meet both of the following criteria:

  1. They use path-based authorization interceptors, such as the official RBAC implementation in google.golang.org/grpc/authz or custom interceptors relying on info.FullMethod or grpc.Method(ctx).
  2. Their security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed :path headers directly to the gRPC server.

Patches

Has the problem been patched? What versions should users upgrade to?

Yes, the issue has been patched. The fix ensures that any request with a :path that does not start with a leading slash is immediately rejected with a codes.Unimplemented error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):

  • v1.79.3
  • The latest master branch.

It is recommended that all users employing path-based authorization (especially grpc/authz) upgrade as soon as the patch is available in a tagged release.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods:

1. Use a Validating Interceptor (Recommended Mitigation)

Add an "outermost" interceptor to your server that validates the path before any other authorization logic runs:

func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)

2. Infrastructure-Level Normalization

If your gRPC server is behind a reverse proxy or load balancer (such as Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to enforce strict HTTP/2 compliance for pseudo-headers and reject or normalize requests where the :path header does not start with a leading slash.

3. Policy Hardening

Switch to a "default deny" posture in your authorization policies (explicitly listing all allowed paths and denying everything else) to reduce the risk of bypasses via malformed inputs.

high 8.8: GHSA--hrxh--6v49--42gf Uncaught Exception

Affected range <1.82.1
Fixed version 1.82.1
CVSS Score 8.8
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Description

Multiple security vulnerabilities have been identified and addressed in grpc-go affecting the xDS RBAC authorization engine (internal/xds/rbac) and the HTTP/2 transport server implementation (internal/transport). These vulnerabilities could result in:

  • Authorization Bypass (Fail-Open) when translating xDS RBAC policies containing Metadata or RequestedServerName fields.
  • Denial of Service (High CPU Consumption) due to an HTTP/2 Rapid Reset mitigation bypass during client-initiated stream resets.
  • Denial of Service (Server Panic) when parsing crafted xDS RBAC policies containing NOT rules around unsupported fields.

Impact

What kind of vulnerability is it? Who is impacted?

xDS RBAC Authorization Bypass via Metadata & RequestedServerName matchers

  • Affected Component: xDS RBAC
  • Impact: When building policy matchers for gRPC RBAC from xDS configurations, unsupported permission and principal rules (specifically Metadata and RequestedServerName) were silently ignored and treated as no-ops.
    • If an authorization policy relied purely on these matchers for access control, treating those rules as no-ops effectively removed the restrictions.
  • If these unsupported rules were nested inside logical NOT rules (Permission_NotRule / Principal_NotId) or multi-condition OR/AND rules, silently dropping them changed the boolean logic flow of the authorization engine.

As a result, policy evaluation decisions could fail open, allowing unauthorized clients to access protected gRPC services or resources.

HTTP/2 Rapid Reset Mitigation Bypass / Denial of Service via Stream Aborts

  • Affected Component: HTTP/2 transport
  • Impact: Earlier mitigations in grpc-go for HTTP/2 Rapid Reset only applied threshold checks to items that directly resulted in control frames being written back to the wire, such as SETTINGS ACKs or server-initiated RST_STREAMs.

When a client initiated a rapid flood of stream creation (HEADERS) immediately followed by stream termination RST_STREAM, items queued up in the control buffer without counting against the transport response frame threshold. An attacker can repeatedly trigger this flood sequence to bypass reader blocking, resulting in high CPU usage, and Denial of Service (DoS).

Denial of Service (Panic) in xDS RBAC Engine via Unsupported Fields inside NOT Rules

  • Affected Component: xDS RBAC
  • Impact: The xDS RBAC policy translators recursively generate matchers for nested rules. When a NOT rule wrapped an unsupported or unhandled field (such as SourcedMetadata), the recursive step returned an empty matcher. This could result in a runtime panic when the RBAC engine attempts to authorize an incoming request.

An attacker or misconfigured/malicious xDS management server delivering an LDS/RDS update containing a NOT rule around an unhandled field causes the gRPC server process to crash immediately (CWE-248 / Denial of Service).

Patches

Has the problem been patched? What versions should users upgrade to?

All three issues have been fixed in master and will be released in 1.82.1 shortly.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

If upgrading grpc-go immediately is not possible, apply the following workarounds based on your deployment architecture:

  • For xDS RBAC Vulnerabilities & Panics: Ensure that upstream xDS management servers do not push RBAC policies containing Metadata, RequestedServerName, or NOT rules wrapping unsupported fields (such as SourcedMetadata) to grpc-go servers.
  • For HTTP/2 Rapid Reset DOS: Configure upstream reverse proxies or load balancers (such as Envoy) with strict HTTP/2 max_concurrent_streams limits and active rate limiting on RST_STREAM frequency per connection.

Severity

Vulnerability Qualitative Severity Approximate CVSS v3.1 Score Primary Impact
xDS RBAC Authorization Bypass High 8.2 Unauthorized Access / Fail-Open
HTTP/2 Rapid Reset DOS Bypass High 7.5 High CPU Consumption / Denial of Service
xDS RBAC Engine Server Panic Medium 5.9 Process Crash / Denial of Service

high 8.7: CVE--2026--84445 Improper Validation of Array Index

Affected range <1.82.2
Fixed version 1.82.2
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.641%
EPSS Percentile 49th percentile
Description

A vulnerability exists in gRPC-Go servers configured with xds.NewGRPCServer() where a crafted request missing both :authority and Host headers can cause a server panic, resulting in a Denial of Service (DoS).

Servers built with xds.NewGRPCServer install an xDS routing interceptor on every RPC. This interceptor looks up the request’s :authority header to pick a virtual host. The HTTP/2 server transport previously accepted requests that had neither :authority nor Host. When this happened, the xDS routing interceptor attempted to access the first element of an empty slice of authorities, leading to an index out of bounds panic. Since the per-RPC goroutine does not recover from panics, the entire server process would terminate.

This panic occurs in the interceptor pipeline, meaning the transport credentials handshake (TLS, mTLS, or ALTS) and HTTP/2 connection establishment must complete successfully before the crafted request can reach this logic.

  • Insecure/Standard TLS: If the server permits insecure (plaintext) connections or standard credentials (where client certs are not checked), any unauthenticated remote attacker can trigger the crash.
  • mTLS / ALTS: If strict transport-level authentication is enforced at the network edge or transport layer (e.g., requiring a valid client certificate), the attacker must possess valid transport credentials to initiate the stream and trigger the panic.

Impact

An attacker can cause a complete outage of the gRPC server by sending a request missing both :authority and Host headers, provided they can successfully establish a transport connection.

Patches

The issue has been addressed in master (and backported to 1.84.0, 1.83.2 and 1.82.2). The fix updates the HTTP/2 transport layer to reject requests missing both :authority and Host headers early, maintaining consistency with and other gRPC language implementations.

high 8.7: CVE--2026--84304 Uncontrolled Resource Consumption

Affected range <=1.83.0
Fixed version 1.83.1
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
EPSS Score 0.609%
EPSS Percentile 48th percentile
Description

Impact

An unauthenticated remote attacker can initiate a gRPC stream and purposefully fragment their payload into millions of tiny (e.g., 1-byte) HTTP/2 DATA frames. Even if the total payload volume falls within the configured connection and stream flow-control windows, each independent fragment incurs memory overhead due to internal tracking structures and queue allocation.

Repeated fragmentation massively inflates the heap space consumed by the stream. An attacker multiplexing multiple concurrent streams can exhaust the memory bounds of the runtime, forcing a runtime panic or OutOfMemory condition and leading to a remote Denial of Service (DoS).

Patches

The change to fix this issue is merged in master and a patch release, 1.83.1, has been published that contains this fix.

Workarounds

This vulnerability is mitigated by implementing receive buffer compaction. Consecutive small data buffers are automatically coalesced into larger buffers from a shared pool once the overhead is perceived to be excessive relative to actual payload data, drastically minimizing per-frame memory overheads.

This behavior is enabled by default. A temporary escape hatch is provided via the environment variable GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION=false to disable the feature if unforeseen issues arise, but it will be removed in a future release.

critical: 0 high: 2 medium: 0 low: 0 expat 2.8.5-r0 (apk)

pkg:apk/alpine/expat@2.8.5-r0?os_name=alpine&os_version=3.24

high : CVE--2026--77214

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

high : CVE--2026--102633

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.348%
EPSS Percentile 26th percentile
Description
critical: 0 high: 1 medium: 0 low: 0 github.com/antchfx/xpath 1.3.3 (golang)

pkg:golang/github.com/antchfx/xpath@1.3.3

high 7.5: CVE--2026--32287 Uncontrolled Resource Consumption

Affected range <1.3.6
Fixed version 1.3.6
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.695%
EPSS Percentile 52nd percentile
Description

Boolean expressions that evaluate to true can cause an infinite loop in logicalQuery.Select, leading to 100% CPU usage. This can be triggered by top-level selectors such as "1=1" or "true()".

critical: 0 high: 1 medium: 0 low: 0 golang.org/x/text 0.25.0 (golang)

pkg:golang/golang.org/x/text@0.25.0

high : CVE--2026--56851

Affected range <0.41.0
Fixed version 0.41.0
EPSS Score 0.335%
EPSS Percentile 25th percentile
Description

The Nickname profile can panic with an out-of-bounds slice error when transforming crafted input into a short destination buffer.

@github-actions

Copy link
Copy Markdown

🔍 Vulnerabilities of wayofdev/php-dev:latest

📦 Image Reference wayofdev/php-dev:latest
digestsha256:9bac17d2ab4a32d63c2e5ac9a9e69080582aafaa42aba341cefa711080f52a4c
vulnerabilitiescritical: 15 high: 33 medium: 0 low: 0
platformlinux/amd64
size119 MB
packages253
📦 Base Image php:8.3-alpine
also known as
  • 8.3-alpine3.24
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.24
  • 8.3.35-alpine
  • 8.3.35-alpine3.24
  • 8.3.35-cli-alpine
  • 8.3.35-cli-alpine3.24
  • f9fa43ebfe378c1c058426a2a33703b026d84cc30e5d4b7a8ad953fbfe2b450b
digestsha256:683cad5c01894c14b5602645e6df793280c414482b07f0ea447ec68d9e7b821c
vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
critical: 7 high: 6 medium: 0 low: 0 golang.org/x/crypto 0.38.0 (golang)

pkg:golang/golang.org/x/crypto@0.38.0

critical 10.0: CVE--2026--46595 Incorrect Implementation of Authentication Algorithm

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 10
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L
EPSS Score 0.503%
EPSS Percentile 41st percentile
Description

Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped.

critical 9.1: CVE--2026--42508 Improper Certificate Validation

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.654%
EPSS Percentile 50th percentile
Description

Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @Revoked.

critical 9.1: CVE--2026--39834 Integer Overflow or Wraparound

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
EPSS Score 0.637%
EPSS Percentile 49th percentile
Description

When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation.

critical 9.1: CVE--2026--39833 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested.

critical 9.1: CVE--2026--39832 Improper Preservation of Permissions

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.716%
EPSS Percentile 52nd percentile
Description

When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them.

critical 9.1: CVE--2026--39831 Missing Authorization

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.487%
EPSS Percentile 40th percentile
Description

The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) did not check the User Presence flag. Signatures generated without physical touch were accepted, allowing unattended use of a hardware security key. To restore the previous behavior, return a "no-touch-required" extension in Permissions.Extensions from PublicKeyCallback.

critical 9.1: CVE--2026--39830 Improper Restriction of Operations within the Bounds of a Memory Buffer

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
EPSS Score 0.621%
EPSS Percentile 48th percentile
Description

A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded.

high : CVE--2026--78662

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.431%
EPSS Percentile 35th percentile
Description

Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection.

Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection.

high : CVE--2026--56855

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.500%
EPSS Percentile 41st percentile
Description

Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection.

Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking.

high : CVE--2026--56854

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.437%
EPSS Percentile 36th percentile
Description

The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback.

high 7.5: CVE--2026--46597 Incorrect Type Conversion or Cast

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.620%
EPSS Percentile 48th percentile
Description

An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.

high 7.5: CVE--2026--39829 Improper Validation of Specified Quantity in Input

Affected range <0.52.0
Fixed version 0.52.0
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2.

high : CVE--2025--47913

Affected range <0.43.0
Fixed version 0.43.0
EPSS Score 0.623%
EPSS Percentile 48th percentile
Description

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

critical: 3 high: 7 medium: 0 low: 0 github.com/rabbitmq/amqp091-go 1.10.0 (golang)

pkg:golang/github.com/rabbitmq/amqp091-go@1.10.0

critical 9.5: CVE--2026--77411 Improper Check for Unusual or Exceptional Conditions

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.5
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A critical stream desynchronization vulnerability has been identified in the AMQP wire-protocol parser. When parsing a long string (readLongstr) within a table field, providing a length that exceeds the maximum signed 32-bit integer (2^31 - 1, or roughly 2.1 GiB) triggers an improper error-handling condition. The parser abruptly aborts the read and returns a success status ("",nil) without consuming the specified bytes from the underlying network buffer. This causes all subsequent read operations to become misaligned. The parser interprets arbitrary offsets within the remaining payload bytes as valid AMQP frame headers, leading to potential Remote Code Execution (RCE), data injection, or complete connection hijacking.

Vulnerability Details

The vulnerability exists within the bounds-checking logic of the readLongstr function:

// read.go:113-114 — silent no-op return, bytes left in stream
if length > (^uint32(0) >> 1) {
    return  // returns "", nil, does NOT consume `length` bytes
}

When length evaluates to a value greater than 0x7FFFFFFF:

  1. The function executes a silent return statement.
  2. Because Go utilizes named or zero-value initialization for unassigned return registers, this yields "", nil (indicating a successful read of an empty string).
  3. The Critical Failure: The reader's cursor is not advanced by length bytes. The malformed payload remains sitting in the TCP/buffer stream.

Impact

As readTable continues iterating over the stream under the assumption that the string was successfully parsed, the byte alignment is entirely broken.

  • Parser Desynchronization: Future AMQP frame headers are read from arbitrary offsets inside the attacker-controlled message payload.
  • Payload Reinterpretation: A malicious actor can carefully craft the trailing bytes of the initial payload to perfectly mimic valid AMQP frames (e.g., connection.close, channel.open, or message publishing frames), forcing the client/server to execute unintended actions.

critical 9.4: CVE--2026--77405 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.4
CVSS Vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:L/SA:N
EPSS Score 0.282%
EPSS Percentile 19th percentile
Description

Summary

A structural security weakness exists in the AMQP client's TLS configuration generator (tlsConfigFromURI). When constructing a *tls.Config object from an amqps:// connection URI, the library initializes the structure without explicitly defining the MinVersion field.

While modern versions of the Go compiler toolchain (Go 1.18+) default the implicit minimum version to TLS 1.2, this security posture relies entirely on an implicit toolchain dependency. If the library is compiled using legacy Go toolchains (Go < 1.18), or if a future toolchain introduces fallback behavior, the client could silently negotiate obsolete and insecure TLS 1.0 or TLS 1.1 protocols during connection handshakes with a compromised or malicious AMQP broker.


Vulnerability Details

Mechanism

The vulnerability lies in the lack of an explicit safety floor when assigning configurations inside the URI component:

// Example within uri.go's tlsConfigFromURI
cfg := &tls.Config{
    ServerName: host,
    // MinVersion is left completely unassigned (defaults to 0, or toolchain default)
}

In the Go standard library (crypto/tls), leaving MinVersion: 0 instructs the runtime to choose the toolchain's default minimum. Prior to Go 1.18, this default allowed negotiation down to TLS 1.0. Relying on implicit compiler configurations violates secure coding practices by decoupling the library's security posture from its source code, leaving applications vulnerable based solely on how they are built.

Impact

If a client application is built with a legacy compiler environment or a custom Go runtime, an attacker capable of executing a Man-in-the-Middle (MitM) attack can force the connection to downgrade to TLS 1.0 or 1.1. This exposes the AMQP protocol data stream to well-known cryptographic vulnerabilities (such as BEAST, POODLE, or SWEET32), allowing the attacker to decrypt or alter message payloads, connection parameters, and authentication credentials.


Attack Vector

An attacker performing a network-level downgrade attack can intercept a client connection built under a legacy toolchain:

  1. Interception: A client application compiled on a legacy pipeline attempts to establish an encrypted connection to an AMQP broker.
  2. Protocol Downgrade: The attacker intercepts the TLS Client Hello handshake and forces a downgrade negotiation to TLS 1.0.
  3. Cryptographic Exploitation: Because MinVersion was never explicitly locked to tls.VersionTLS12 by the library, the client accepts the weak cipher suites, allowing the attacker to monitor or manipulate the underlying AMQP session data.

critical 9.1: CVE--2026--77408 Integer Overflow or Wraparound

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 9.1
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:H/SC:L/SI:H/SA:L
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A data integrity and protocol corruption vulnerability exists in the AMQP client's property serialization logic. When encoding AMQP short string (shortstr) fields—such as identifiers, routing strings, and content metadata—the length of the string is explicitly cast to a fixed-size 8-bit unsigned integer (uint8).

If an application provides a property string exceeding 255 bytes, the length counter silently wraps around (e.g., a length of 300 wraps to 44). As a result, the parser writes only a truncated portion of the string into the outgoing connection buffer without returning an error. This leads to silent data corruption, broken RPC routing, and unpredictable broker-side state behavior.


Vulnerability Details

Mechanism

The vulnerability resides in the wire-level serialization logic for application publishing properties:

// write.go:246
length := uint8(len(b))  // wraps silently when len(b) > 255 (e.g., 300 -> 44)

Because Go allows silent integer truncation during explicit type casting, lengths larger than $2^8 - 1$ lose their most significant bits. The underlying stream writer reads length to determine how many bytes to pull from the buffer. Because no error or boundary check accompanies this truncation, the application believes the full payload was transmitted successfully.

Affected Properties

This truncation behavior affects every standard AMQP field serialized as a shortstr:

  • CorrelationId
  • ReplyTo
  • MessageId
  • Expiration
  • UserId
  • AppId
  • ContentType
  • ContentEncoding
  • Type

Impact

The critical consequence is silent protocol desynchronization at the application layer. The underlying TCP stream remains framed properly (because the shortened length matches the bytes written), but the business logic is corrupted. Distributed transactions, request-reply correlations, and tracing headers are truncated, causing downstream systems to drop messages or route them to incorrect consumers.


Attack Vector

An attacker who can influence metadata fields processed by an upstream application (such as a user-supplied tracking ID or a long content-type header) can exploit this to break system components:

  1. Targeting RPC Routing: A user passes a malicious or overly long CorrelationId of 300 bytes through an application endpoint.
  2. Silent Truncation: The library wraps the length value to 44, transmitting only the first 44 bytes to the rabbitMQ broker.
  3. Broken Correlation: When the service processes the request and responds, the replying consumer attempts to route the message using the full 300-byte identifier. Because the broker only recognizes the truncated 44-byte ID, the reply loop breaks silently, leading to hanging processes or data leaks across transaction boundaries.

high 8.9: CVE--2026--79921 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.550%
EPSS Percentile 44th percentile
Description

Summary
A vulnerability exists in the amqp091-go client library where a compromised or malicious AMQP broker can force the client to allocate resources for and process content body frames that exceed the negotiated frame_max limit. This can lead to unexpected memory consumption or application-layer denial of service (DoS), bypassing the protocol's built-in framing constraints.

Details
During a standard AMQP 0-9-1 connection handshake, the client and the broker negotiate a maximum frame size (frame_max), for example, 4096 bytes.

However, after negotiation, a malicious broker can send a valid basic.deliver sequence containing a content body frame whose header declares a payload size larger than the negotiated frame_max. Instead of enforcing the agreed-upon limit and closing the connection with a frame-error (as mandated by the AMQP 0-9-1 specification), the amqp091-go client:

  1. Accepts the broker-declared oversized frame size.
  2. Allocates memory based on this oversized declaration.
  3. Reads the payload, assembles it into the message, and delivers it to the consumer.

Impact

  • Denial of Service (DoS): If a broker sends extremely large frame sizes, it can trigger significant memory allocations on the client side, potentially leading to Out-Of-Memory (OOM) crashes.
  • Protocol Violation: The client fails to enforce negotiated connection parameters, trusting the broker implicitly even after constraints have been established.

high 8.9: CVE--2026--77412 Incorrect Conversion between Numeric Types

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A vulnerability in the readField function allows a malicious or compromised AMQP server to trigger an unhandled runtime panic in the client application, leading to an immediate crash of the entire process.

Details
When parsing incoming AMQP frames, the readField function processes byte-array fields (type tag 'x') by reading a 32-bit big-endian integer to determine the length of the data payload.

// read.go:253-263
case 'x':
    var len int32
    if err = binary.Read(r, binary.BigEndian, &len); err != nil {
        return nil, err
    }
    value := make([]byte, len)  // PANICS if len < 0

If a server transmits a length value of 0xFFFFFFFF, it is interpreted by the client as a signed 32-bit integer with a value of -1. Passing a negative integer to Go's built-in make() function for slice allocation triggers an unrecoverable runtime panic (panic: len out of range).

Because the reader goroutine handles network I/O without an explicit recover() wrapper, this panic propagates up to the runtime root, abruptly terminating the host application.

Attack Vector / Exploitation Scenario
An attacker capable of spoofing, compromising, or controlling an AMQP broker can exploit this flaw during two primary phases:

  1. Connection Establishment: Sending a malicious connection.start handshake frame containing server-properties with an 'x' type field assigned a negative length.
  2. Message Delivery: Delivering a message payload where the header table contains a malformed field matching the criteria above.

Impact
Availability: High. A single malformed frame can reliably crash the client process, resulting in a persistent Denial of Service (DoS) if the client automatically reconnects and receives the same payload.

high 8.9: CVE--2026--77410 Memory Allocation with Excessive Size Value

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary
A flaw in the recvContent function allows a malicious AMQP server to trigger an Out-of-Memory (OOM) error, forcing the host operating system or container runtime to immediately terminate the client process.

Vulnerability Details
When receiving message content payloads, the client processes the expected size from the content header framework. The recvContent function attempts to optimize performance by pre-allocating memory for the message body based on the ch.header.Size field, which is a 64-bit unsigned integer (uint64).

// channel.go:495-496
if cap(ch.body) == 0 {
    ch.body = make([]byte, 0, ch.header.Size)  // unbounded
}

The underlying library fails to validate or cap this requested size against any upper boundary—such as the maximum frame size negotiated during connection establishment (FrameMax). If a server specifies an extreme body size (e.g., 2^62 bytes), the Go runtime attempts to allocate an exabyte-scale slice capacity. This immediately exhausts available system memory, causing the operating system's OOM killer to terminate the application.

Attack Vector / Exploitation Scenario

  • Message Delivery Phase: A malicious or compromised AMQP broker sends a standard basic.deliver frame containing a content header with an intentionally inflated body-size variable.
  • Authentication Requirement: No special privileges or authentication bypasses are required; the crash occurs seamlessly during normal message consumption.

Impact

  • Availability: High. Exploded memory consumption results in an instant process termination, destroying application state and availability for all threads sharing the environment.

high 8.9: CVE--2026--77403 Allocation of Resources Without Limits or Throttling

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.9
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS Score 0.524%
EPSS Percentile 43rd percentile
Description

Summary

A Denial of Service (DoS) vulnerability exists in the AMQP client's connection negotiation logic. The AMQP specification explicitly mandates a strict minimum frame size of 4096 bytes to prevent pathological packet fragmentation. While the library defines a frameMinSize = 4096 constant, the connection negotiation loop fails to enforce this boundary, blindly accepting whatever maximum frame size (FrameMax) the server advertises during the handshake.

If a client connects to a malicious or compromised AMQP broker that advertises an extremely low FrameMax (such as 1 byte), the negotiation succeeds. Consequently, every subsequent message transmission is forced to splinter into thousands or millions of single-byte frames, causing massive CPU overhead, thread contention, and a near-instantaneous application freeze.


Vulnerability Details

Mechanism

During the connection establishment phase, the client and server negotiate connection parameters—including maximum channel count, heartbeat intervals, and maximum frame sizes. The vulnerability is located where the client accepts the server's tuning parameters:

// Connection negotiation logic maps server values directly without validation
if serverSettings.FrameMax > 0 {
    // VULNERABILITY: Lacks a floor validation check against frameMinSize (4096)
    c.config.FrameMax = serverSettings.FrameMax 
}

Because there is no conditional check asserting that serverSettings.FrameMax >= frameMinSize, a value below the protocol specification floor is successfully registered. When the application later passes data payloads to the frame writer, the chunking algorithm splits the payload using the negotiated FrameMax value as its chunk window divisor.

Impact

When FrameMax is set to an absurdly low threshold (e.g., 1 to 10 bytes):

  • A standard 10 KiB message payload requires tens of thousands of individual write operations and frame headers.
  • The system's CPU becomes entirely bound by frame serialization, memory allocation for frame structures, and context switching within the network output loops.
  • This results in an application-layer Denial of Service (DoS) affecting not just the specific AMQP connection, but potentially the entire host system due to CPU resource starvation.

Attack Vector

An attacker who compromises an upstream AMQP broker, performs a Man-in-the-Middle (MitM) interception, or tricks an application into connecting to an unauthorized external rogue broker can trigger this vulnerability:

  1. Rogue Handshake: The client application connects to an AMQP endpoint controlled by the attacker.
  2. Malicious Parameter Tuning: During the connection.tune phase, the rogue server returns a FrameMax value of 1.
  3. Resource Exhaustion Trigger: The client completes the handshake successfully. As soon as the client attempts to publish a message or process traffic, the internal loop fragments the data into single-byte frames, spiking the host's CPU usage to 100% and disabling the application thread.

high 8.7: CVE--2026--77404 Improper Encoding or Escaping of Output

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L
EPSS Score 0.098%
EPSS Percentile 1st percentile
Description

Summary

A query parameter injection vulnerability exists in the AMQP client's connection URI formatting logic. When generating or parsing connection URIs, TLS-related filesystem paths (such as certificates or keys) are appended directly to the URI's query string using string concatenation rather than secure URL encoding via functions like url.QueryEscape.

If an application handles a TLS file path containing special character delimiters (such as & or =), these characters are interpreted as parameter separators by the URI parser. If the resulting URI.String() output is subsequently re-parsed via ParseURI, the injected fields can silently overwrite or hijack critical configuration parameters, forcing the client to use arbitrary connection settings or alternate TLS files.


Vulnerability Details

Mechanism

The vulnerability lies within the lack of proper escaping when compiling connection string components into a raw URL format:

// Example of insecure string concatenation during URI building
uri := fmt.Sprintf("amqps://user:pass@<!-- -->host/%s?certfile=%s&keyfile=%s", vhost, certPath, keyPath)

Because certPath and keyPath are not passed through url.QueryEscape, special URL characters preserve their control meanings. For instance, if a user supply a certificate path named:
/tmp/cert=foo&keyfile=/evil/path

The generated string translates into:
...?certfile=/tmp/cert=foo&keyfile=/evil/path&keyfile=/original/path

When this string passes back through ParseURI (common in connection re-dial routines or configuration replication steps), standard URL parsing mechanics treat the string as multiple distinct parameters. Depending on map assignment order inside the parser, the injected keys take precedence over the original parameters.

Impact

By manipulating the file paths used for TLS assets, an attacker or compromised local sub-system can:

  • Inject arbitrary alternative options or override protocol settings.
  • Substitute or switch keyfiles, leading to connection failures or the parsing of unauthorized cryptographic assets.
  • Corrupt connection state variables, triggering application-layer failures during connection setup or recovery.

Attack Vector

An attacker who has partial control over directory naming conventions or environmental variables used to specify local infrastructure paths can execute a parameter injection attack:

  1. Path Creation: An attacker sets up a path containing deliberate URL parameter delimiters (e.g., /var/lib/certs/client.crt?cacertfile=/tmp/fake_ca.crt&).
  2. String Generation: The application serializes the active connection state or passes the paths down to an unescaped URI builder function.
  3. Configuration Hijack: The URI string is generated with the injected parameter embedded into the query structure. When the client attempts to reuse or re-parse this connection string during a connection retry or worker spin-up, it parses the injected cacertfile parameter, loading a different, unverified Certificate Authority string.

high 8.2: CVE--2026--77406 Signed to Unsigned Conversion Error

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 8.2
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L
EPSS Score 0.412%
EPSS Percentile 33rd percentile
Description

Summary

A logic and resource exhaustion vulnerability exists in the AMQP client's Quality of Service (Qos) configuration method. The Qos function accepts signed integers (int) for the prefetchCount and prefetchSize parameters but casts them directly to unsigned integers (uint16 and uint32, respectively) when formatting the wire-level frame.

If a developer passes a negative integer (such as -1) to these parameters—frequently intended as a sentinel value meaning "no change" or "no limit"—the application performs an implicit signed-to-unsigned conversion. This wraps the values to their absolute maximum limit ($65535$ and $4294967295$). Consequently, a consumer expecting restricted message delivery rates is suddenly flooded with an unlimited volume of messages, potentially exhausting memory resources and crashing the application.


Vulnerability Details

Mechanism

The bug manifests during the structural assignment inside the channel's Qos method:

// channel.go:795-796
PrefetchCount: uint16(prefetchCount),  // -1 wraps to 65535
PrefetchSize:  uint32(prefetchSize),   // -1 wraps to 4294967295

In Go, converting a negative signed integer to an unsigned integer shifts the value via two's complement arithmetic. Because no boundary validation or signedness check occurs prior to the cast:

  • Passing -1 for prefetchCount yields a wire value of 65535.
  • Passing -1 for prefetchSize yields a wire value of 4294967295.

Impact

The AMQP broker interprets a prefetch-count of 65535 as an instruction to dispatch messages to the consumer with virtually no concurrency limits.

If the application is processing heavy payloads or relies on strict rate-limiting to maintain stability, this unexpected flood will cause rapid heap memory growth, unmanageable processing queues, and an eventual Out-Of-Memory (OOM) termination.


Attack Vector

An attacker who can manipulate configuration files, environmental variables, or API inputs that dictate client Qos settings can trigger an application-layer Denial of Service:

  1. Malicious Input: An attacker sets a service's prefetch configuration parameter to -1.
  2. Implicit Overflow: The application initializes the channel, executes Qos(-1, ...), and transmits an unintended maximum-capacity request to the RabbitMQ/AMQP broker.
  3. Consumer Exhaustion: The broker flushes the entire contents of the queue directly into the client consumer's network buffer, bypassing expected application concurrency barriers and inducing a crash.

high 7.0: CVE--2026--77407 Cleartext Storage of Sensitive Information in Memory

Affected range <1.13.0
Fixed version 1.13.0
CVSS Score 7
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:L/SA:L
EPSS Score 0.128%
EPSS Percentile 2nd percentile
Description

Summary

An information disclosure vulnerability exists in the AMQP client implementation's authentication handling configuration. Following a successful connection handshake, the Connection.Config.SASL field stores the Authentication implementation state used to establish the session.

For standard PLAIN authentication, this state utilizes the PlainAuth struct, which defines both Username and Password as publicly exported, plaintext string fields. Because this sensitive data is retained permanently in-memory within an exported field structure, any peripheral code, internal package, reflective logger, dependency, or automated debugging utility with access to the core *Connection object can read and expose the raw credentials.


Vulnerability Details

Mechanism

The vulnerability stems from the structural design of the configuration storage used during and after the AMQP handshake:

// auth.go:21-23
type PlainAuth struct {
    Username string
    Password string  // exported plaintext
}

When an application initializes a connection, the PlainAuth object is deeply nested inside the configuration structure (Connection.Config). Even after the handshake concludes and authentication is complete, this structure persists natively in-memory for the duration of the network connection's lifecycle.

Because Password is an exported string field, standard automated inspection mechanisms can read its value without restriction.

Affected Code Paths & Integrations

Any sub-component or library that traverses or reads the *Connection object will inadvertently read the plaintext password, including:

  • Reflective Loggers: Structured logging frameworks that serialize nested configuration structs into JSON/Log formats.
  • APM & Performance Agents: Automated telemetry or Application Performance Monitoring tools that capture state snapshots.
  • Debugging & Panic Handlers: Mid-tier software or dump libraries designed to capture goroutine state or print deep struct hierarchies upon program errors or signals.

Impact

The credential remains vulnerable to leak paths into logging pipelines, log aggregators, security information and event management (SIEM) systems, or standard output. Once transmitted to external log infrastructure, these credentials become accessible to unprivileged operators or any actor with access to log archives.


Attack Vector

An attacker does not necessarily need direct remote code execution to exploit this flaw; instead, the vulnerability acts as a credential harvesting vector inside multi-tenant environments or via secondary log exposure:

  1. Configuration Dump: An operator configures a standard reflective logger or third-party APM package to capture system state parameters, including the active AMQP *Connection object.
  2. Reflective Access: The inspection engine uses Go's reflect package to walk the structural hierarchy, pulling the string value from Connection.Config.SASL.(*PlainAuth).Password.
  3. Exfiltration: The plaintext password is written to standard system logs, which are then scraped into shared logging aggregators, exposing production infrastructure credentials to a wider audience.
critical: 2 high: 8 medium: 0 low: 0 stdlib 1.26.8 (golang)

pkg:golang/stdlib@1.26.8

critical : CVE--2026--56857

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.493%
EPSS Percentile 41st percentile
Description

On Windows, when the target of Root.Mkdir or Root.MkdirAll is a junction pointing to an empty location, the operation can create a directory at the junction target even when that target is located outside the root. This only applies to operations where the last path component is a junction (path/to/junction, but not path/junction/target).

critical : CVE--2026--78663

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--97031

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.394%
EPSS Percentile 32nd percentile
Description

Multiple ECH outer extension references are not permitted under RFC 9849; previously, a client could send a well-crafted packet that could trigger memory exhaustion in the server process by specifying multiple references.

We now reject these as malformed and curb the memory amplification vector as a result.

high : CVE--2026--94440

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.404%
EPSS Percentile 33rd percentile
Description

Parsing a multipart form can bypass memory limits and read an arbitrarily long line into memory when the remaining limit at the start of a part is less than 400 bytes.

high : CVE--2026--94439

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.315%
EPSS Percentile 23rd percentile
Description

When an HTTP server handler sends a 2xx response to an HTTP/1 CONNECT request and returns without hijacking the connection, the server improperly continues to read and serve requests from the connection. Since a 2xx response to an HTTP/1 CONNECT converts the connection into a tunnel, the server should not treat the connection as continuing to contain HTTP.

The impact of this misbehavior is mostly limited to potential request smuggling, where an intermediate proxy considers the data on the connection to be tunneled and the server considers it to be HTTP.

high : CVE--2026--78669

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78667

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.379%
EPSS Percentile 30th percentile
Description

When parsing a Range header containing a large number of small ranges, FileServer(FS), ServeContent, and ServeFile(FS) can consume an excessive amount of CPU.

high : CVE--2026--78660

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--56866

Affected range <1.26.9
Fixed version 1.26.9
EPSS Score 0.309%
EPSS Percentile 22nd percentile
Description

When http.Transport sends an HTTP/1 CONNECT request with a non-empty Request.Body, it writes the body directly to the connection without framing after the request headers. If the server rejects the CONNECT request with a non-2xx keep-alive response, Transport returns the connection to the idle pool. Because CONNECT requests do not have a request body, the server may interpret the trailing body bytes as a subsequent pipelined HTTP/1.1 request on the connection, leaving the pooled connection desynchronized and causing the next caller that reuses it to read the response to the injected request. In reverse proxies (including httputil.ReverseProxy) that forward CONNECT requests through a shared Transport, this can lead to cross-user response poisoning.

critical: 2 high: 5 medium: 0 low: 0 golang.org/x/net 0.40.0 (golang)

pkg:golang/golang.org/x/net@0.40.0

critical : CVE--2026--39821

Affected range <0.55.0
Fixed version 0.55.0
EPSS Score 0.692%
EPSS Percentile 51st percentile
Description

The ToASCII and ToUnicode functions incorrectly accept Punycode-encoded labels that decode to an ASCII-only label. For example, ToUnicode("xn--example-.com") incorrectly returns the name "example.com" rather than an error.

This behavior can lead to privilege escalation in programs using the idna package. For example, a program which performs privilege checks on the ASCII hostname may reject "example.com" but permit "xn--example-.com". If that program subsequently converts the ASCII hostname to Unicode, it will inadvertently permits access to the Unicode name "example.com".

critical : CVE--2026--78663

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.574%
EPSS Percentile 46th percentile
Description

The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.

high : CVE--2026--78669

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.568%
EPSS Percentile 45th percentile
Description

A malicious HTTP/2 peer can cause excessive CPU consumption in the client or server by opening a large number of streams and then sending many small SETTINGS frames containing SETTINGS_INITIAL_WINDOW_SIZE values.

high : CVE--2026--78660

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.303%
EPSS Percentile 21st percentile
Description

Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.

high : CVE--2026--78659

Affected range <0.60.0
Fixed version 0.60.0
EPSS Score 0.570%
EPSS Percentile 46th percentile
Description

When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.

high : CVE--2026--46600

Affected range <0.56.0
Fixed version 0.56.0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

Parsing an invalid SVCB or HTTPS RR can panic when the size of a parameter value overflows the message buffer.

high : CVE--2026--33814

Affected range <0.53.0
Fixed version 0.53.0
EPSS Score 0.781%
EPSS Percentile 55th percentile
Description

When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a value of 0.

critical: 1 high: 3 medium: 0 low: 0 google.golang.org/grpc 1.71.0 (golang)

pkg:golang/google.golang.org/grpc@1.71.0

critical 9.1: CVE--2026--33186 Improper Authorization

Affected range <1.79.3
Fixed version 1.79.3
CVSS Score 9.1
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 1.625%
EPSS Percentile 75th percentile
Description

Impact

What kind of vulnerability is it? Who is impacted?

It is an Authorization Bypass resulting from Improper Input Validation of the HTTP/2 :path pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting requests where the :path omitted the mandatory leading slash (e.g., Service/Method instead of /Service/Method). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official grpc/authz package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with /) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present.

Who is impacted?
This affects gRPC-Go servers that meet both of the following criteria:

  1. They use path-based authorization interceptors, such as the official RBAC implementation in google.golang.org/grpc/authz or custom interceptors relying on info.FullMethod or grpc.Method(ctx).
  2. Their security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed :path headers directly to the gRPC server.

Patches

Has the problem been patched? What versions should users upgrade to?

Yes, the issue has been patched. The fix ensures that any request with a :path that does not start with a leading slash is immediately rejected with a codes.Unimplemented error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):

  • v1.79.3
  • The latest master branch.

It is recommended that all users employing path-based authorization (especially grpc/authz) upgrade as soon as the patch is available in a tagged release.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods:

1. Use a Validating Interceptor (Recommended Mitigation)

Add an "outermost" interceptor to your server that validates the path before any other authorization logic runs:

func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)

2. Infrastructure-Level Normalization

If your gRPC server is behind a reverse proxy or load balancer (such as Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to enforce strict HTTP/2 compliance for pseudo-headers and reject or normalize requests where the :path header does not start with a leading slash.

3. Policy Hardening

Switch to a "default deny" posture in your authorization policies (explicitly listing all allowed paths and denying everything else) to reduce the risk of bypasses via malformed inputs.

high 8.8: GHSA--hrxh--6v49--42gf Uncaught Exception

Affected range <1.82.1
Fixed version 1.82.1
CVSS Score 8.8
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Description

Multiple security vulnerabilities have been identified and addressed in grpc-go affecting the xDS RBAC authorization engine (internal/xds/rbac) and the HTTP/2 transport server implementation (internal/transport). These vulnerabilities could result in:

  • Authorization Bypass (Fail-Open) when translating xDS RBAC policies containing Metadata or RequestedServerName fields.
  • Denial of Service (High CPU Consumption) due to an HTTP/2 Rapid Reset mitigation bypass during client-initiated stream resets.
  • Denial of Service (Server Panic) when parsing crafted xDS RBAC policies containing NOT rules around unsupported fields.

Impact

What kind of vulnerability is it? Who is impacted?

xDS RBAC Authorization Bypass via Metadata & RequestedServerName matchers

  • Affected Component: xDS RBAC
  • Impact: When building policy matchers for gRPC RBAC from xDS configurations, unsupported permission and principal rules (specifically Metadata and RequestedServerName) were silently ignored and treated as no-ops.
    • If an authorization policy relied purely on these matchers for access control, treating those rules as no-ops effectively removed the restrictions.
  • If these unsupported rules were nested inside logical NOT rules (Permission_NotRule / Principal_NotId) or multi-condition OR/AND rules, silently dropping them changed the boolean logic flow of the authorization engine.

As a result, policy evaluation decisions could fail open, allowing unauthorized clients to access protected gRPC services or resources.

HTTP/2 Rapid Reset Mitigation Bypass / Denial of Service via Stream Aborts

  • Affected Component: HTTP/2 transport
  • Impact: Earlier mitigations in grpc-go for HTTP/2 Rapid Reset only applied threshold checks to items that directly resulted in control frames being written back to the wire, such as SETTINGS ACKs or server-initiated RST_STREAMs.

When a client initiated a rapid flood of stream creation (HEADERS) immediately followed by stream termination RST_STREAM, items queued up in the control buffer without counting against the transport response frame threshold. An attacker can repeatedly trigger this flood sequence to bypass reader blocking, resulting in high CPU usage, and Denial of Service (DoS).

Denial of Service (Panic) in xDS RBAC Engine via Unsupported Fields inside NOT Rules

  • Affected Component: xDS RBAC
  • Impact: The xDS RBAC policy translators recursively generate matchers for nested rules. When a NOT rule wrapped an unsupported or unhandled field (such as SourcedMetadata), the recursive step returned an empty matcher. This could result in a runtime panic when the RBAC engine attempts to authorize an incoming request.

An attacker or misconfigured/malicious xDS management server delivering an LDS/RDS update containing a NOT rule around an unhandled field causes the gRPC server process to crash immediately (CWE-248 / Denial of Service).

Patches

Has the problem been patched? What versions should users upgrade to?

All three issues have been fixed in master and will be released in 1.82.1 shortly.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

If upgrading grpc-go immediately is not possible, apply the following workarounds based on your deployment architecture:

  • For xDS RBAC Vulnerabilities & Panics: Ensure that upstream xDS management servers do not push RBAC policies containing Metadata, RequestedServerName, or NOT rules wrapping unsupported fields (such as SourcedMetadata) to grpc-go servers.
  • For HTTP/2 Rapid Reset DOS: Configure upstream reverse proxies or load balancers (such as Envoy) with strict HTTP/2 max_concurrent_streams limits and active rate limiting on RST_STREAM frequency per connection.

Severity

Vulnerability Qualitative Severity Approximate CVSS v3.1 Score Primary Impact
xDS RBAC Authorization Bypass High 8.2 Unauthorized Access / Fail-Open
HTTP/2 Rapid Reset DOS Bypass High 7.5 High CPU Consumption / Denial of Service
xDS RBAC Engine Server Panic Medium 5.9 Process Crash / Denial of Service

high 8.7: CVE--2026--84445 Improper Validation of Array Index

Affected range <1.82.2
Fixed version 1.82.2
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.641%
EPSS Percentile 49th percentile
Description

A vulnerability exists in gRPC-Go servers configured with xds.NewGRPCServer() where a crafted request missing both :authority and Host headers can cause a server panic, resulting in a Denial of Service (DoS).

Servers built with xds.NewGRPCServer install an xDS routing interceptor on every RPC. This interceptor looks up the request’s :authority header to pick a virtual host. The HTTP/2 server transport previously accepted requests that had neither :authority nor Host. When this happened, the xDS routing interceptor attempted to access the first element of an empty slice of authorities, leading to an index out of bounds panic. Since the per-RPC goroutine does not recover from panics, the entire server process would terminate.

This panic occurs in the interceptor pipeline, meaning the transport credentials handshake (TLS, mTLS, or ALTS) and HTTP/2 connection establishment must complete successfully before the crafted request can reach this logic.

  • Insecure/Standard TLS: If the server permits insecure (plaintext) connections or standard credentials (where client certs are not checked), any unauthenticated remote attacker can trigger the crash.
  • mTLS / ALTS: If strict transport-level authentication is enforced at the network edge or transport layer (e.g., requiring a valid client certificate), the attacker must possess valid transport credentials to initiate the stream and trigger the panic.

Impact

An attacker can cause a complete outage of the gRPC server by sending a request missing both :authority and Host headers, provided they can successfully establish a transport connection.

Patches

The issue has been addressed in master (and backported to 1.84.0, 1.83.2 and 1.82.2). The fix updates the HTTP/2 transport layer to reject requests missing both :authority and Host headers early, maintaining consistency with and other gRPC language implementations.

high 8.7: CVE--2026--84304 Uncontrolled Resource Consumption

Affected range <=1.83.0
Fixed version 1.83.1
CVSS Score 8.7
CVSS Vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
EPSS Score 0.609%
EPSS Percentile 48th percentile
Description

Impact

An unauthenticated remote attacker can initiate a gRPC stream and purposefully fragment their payload into millions of tiny (e.g., 1-byte) HTTP/2 DATA frames. Even if the total payload volume falls within the configured connection and stream flow-control windows, each independent fragment incurs memory overhead due to internal tracking structures and queue allocation.

Repeated fragmentation massively inflates the heap space consumed by the stream. An attacker multiplexing multiple concurrent streams can exhaust the memory bounds of the runtime, forcing a runtime panic or OutOfMemory condition and leading to a remote Denial of Service (DoS).

Patches

The change to fix this issue is merged in master and a patch release, 1.83.1, has been published that contains this fix.

Workarounds

This vulnerability is mitigated by implementing receive buffer compaction. Consecutive small data buffers are automatically coalesced into larger buffers from a shared pool once the overhead is perceived to be excessive relative to actual payload data, drastically minimizing per-frame memory overheads.

This behavior is enabled by default. A temporary escape hatch is provided via the environment variable GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION=false to disable the feature if unforeseen issues arise, but it will be removed in a future release.

critical: 0 high: 2 medium: 0 low: 0 expat 2.8.5-r0 (apk)

pkg:apk/alpine/expat@2.8.5-r0?os_name=alpine&os_version=3.24

high : CVE--2026--77214

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.549%
EPSS Percentile 44th percentile
Description

high : CVE--2026--102633

Affected range <2.9.0-r0
Fixed version 2.9.0-r0
EPSS Score 0.348%
EPSS Percentile 26th percentile
Description
critical: 0 high: 1 medium: 0 low: 0 github.com/antchfx/xpath 1.3.3 (golang)

pkg:golang/github.com/antchfx/xpath@1.3.3

high 7.5: CVE--2026--32287 Uncontrolled Resource Consumption

Affected range <1.3.6
Fixed version 1.3.6
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.695%
EPSS Percentile 52nd percentile
Description

Boolean expressions that evaluate to true can cause an infinite loop in logicalQuery.Select, leading to 100% CPU usage. This can be triggered by top-level selectors such as "1=1" or "true()".

critical: 0 high: 1 medium: 0 low: 0 golang.org/x/text 0.25.0 (golang)

pkg:golang/golang.org/x/text@0.25.0

high : CVE--2026--56851

Affected range <0.41.0
Fixed version 0.41.0
EPSS Score 0.335%
EPSS Percentile 25th percentile
Description

The Nickname profile can panic with an out-of-bounds slice error when transforming crafted input into a short destination buffer.

@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Outdated

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.4-fpm-alpine

Name8.4.26-fpm-alpine3.24
Digestsha256:a8091f6d2623b0b23a78a81c71b10e71545e72ba37176030445f347cd5b1bdee
Vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
Pushed2 weeks ago
Size37 MB
Packages61
Flavoralpine
OS3.24
Runtime8.4.26
The base image is also available under the supported tag(s): 8.4-fpm-alpine3.24, 8.4.26-fpm-alpine, 8.4.26-fpm-alpine3.24

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.11-fpm-alpine
  • 8.5.11-fpm-alpine3.24
  • 8.5-fpm-alpine3.24
  • 8-fpm-alpine
  • 8-fpm-alpine3.24
  • fpm-alpine
  • fpm-alpine3.24
Benefits:
  • Same OS detected
  • Image contains 1 fewer package
  • Image has similar size
  • Image has same number of vulnerabilities
Image details:
  • Size: 39 MB
  • Flavor: alpine
  • OS: 3.24
2 weeks ago



@github-actions

Copy link
Copy Markdown

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.4-alpine

Name8.4.26-alpine3.24
Digestsha256:7cbe0a1996d1b77fc8fdc6547f35b8372fd57489c54aac3d634434ed2e851e7a
Vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
Pushed2 weeks ago
Size42 MB
Packages60
Flavoralpine
OS3.24
Runtime8.4.26
The base image is also available under the supported tag(s): 8.4-alpine3.24, 8.4-cli-alpine, 8.4-cli-alpine3.24, 8.4.26-alpine, 8.4.26-alpine3.24, 8.4.26-cli-alpine, 8.4.26-cli-alpine3.24

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.11-cli-alpine
  • 8.5.11-cli-alpine3.24
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.24
  • 8-cli-alpine
  • 8-cli-alpine3.24
  • cli-alpine
  • cli-alpine3.24
  • alpine
  • alpine3.24
  • 8.5.11-alpine
  • 8.5.11-alpine3.24
  • 8.5-alpine3.24
  • 8-alpine
  • 8-alpine3.24
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: 45 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.5.11
2 weeks ago



@github-actions

Copy link
Copy Markdown

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.2-alpine

Name8.2.34-alpine3.24
Digestsha256:4203d470e6d27ccf2cbfe64a2ea4448d76a28d2325e6db55d76c076de6c1b02b
Vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
Pushed2 weeks ago
Size37 MB
Packages60
Flavoralpine
OS3.24
Runtime8.2.34
The base image is also available under the supported tag(s): 8.2-alpine3.24, 8.2-cli-alpine, 8.2-cli-alpine3.24, 8.2.34-alpine, 8.2.34-alpine3.24, 8.2.34-cli-alpine, 8.2.34-cli-alpine3.24

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.3-alpine
Minor runtime version update
Also known as:
  • 8.3.35-cli-alpine
  • 8.3.35-cli-alpine3.24
  • 8.3-cli-alpine
  • 8.3-cli-alpine3.24
  • 8.3.35-alpine
  • 8.3.35-alpine3.24
  • 8.3-alpine3.24
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.24
  • Runtime: 8.3.35
2 weeks ago



8.4-alpine
Minor runtime version update
Also known as:
  • 8.4.26-cli-alpine
  • 8.4.26-cli-alpine3.24
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.24
  • 8.4.26-alpine
  • 8.4.26-alpine3.24
  • 8.4-alpine3.24
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: 42 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.4.26
2 weeks ago



8.5-alpine
Minor runtime version update
Also known as:
  • 8.5.11-cli-alpine
  • 8.5.11-cli-alpine3.24
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.24
  • 8-cli-alpine
  • 8-cli-alpine3.24
  • cli-alpine
  • cli-alpine3.24
  • alpine
  • alpine3.24
  • 8.5.11-alpine
  • 8.5.11-alpine3.24
  • 8.5-alpine3.24
  • 8-alpine
  • 8-alpine3.24
Benefits:
  • Same OS detected
  • Minor runtime version update
  • Image contains 1 fewer package
  • Image has same number of vulnerabilities
Image details:
  • Size: 45 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.5.11
2 weeks ago



@github-actions

Copy link
Copy Markdown

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.3-alpine

Name8.3.35-alpine3.24
Digestsha256:683cad5c01894c14b5602645e6df793280c414482b07f0ea447ec68d9e7b821c
Vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
Pushed2 weeks ago
Size38 MB
Packages60
Flavoralpine
OS3.24
Runtime8.3.35
The base image is also available under the supported tag(s): 8.3-alpine3.24, 8.3-cli-alpine, 8.3-cli-alpine3.24, 8.3.35-alpine, 8.3.35-alpine3.24, 8.3.35-cli-alpine, 8.3.35-cli-alpine3.24

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.11-cli-alpine
  • 8.5.11-cli-alpine3.24
  • 8.5-cli-alpine
  • 8.5-cli-alpine3.24
  • 8-cli-alpine
  • 8-cli-alpine3.24
  • cli-alpine
  • cli-alpine3.24
  • alpine
  • alpine3.24
  • 8.5.11-alpine
  • 8.5.11-alpine3.24
  • 8.5-alpine3.24
  • 8-alpine
  • 8-alpine3.24
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: 45 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.5.11
2 weeks ago



8.4-alpine
Minor runtime version update
Also known as:
  • 8.4.26-cli-alpine
  • 8.4.26-cli-alpine3.24
  • 8.4-cli-alpine
  • 8.4-cli-alpine3.24
  • 8.4.26-alpine
  • 8.4.26-alpine3.24
  • 8.4-alpine3.24
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: 42 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.4.26
2 weeks ago



@github-actions

Copy link
Copy Markdown

Recommended fixes for image wayofdev/php-dev:latest

Base image is php:8.2-fpm-alpine

Name8.2.34-fpm-alpine3.24
Digestsha256:bfc19025aa85d59566ca49a32bba6e49f8f828d7c75902dff21860ab458e34f9
Vulnerabilitiescritical: 0 high: 2 medium: 8 low: 5 unspecified: 1
Pushed2 weeks ago
Size33 MB
Packages61
Flavoralpine
OS3.24
Runtime8.2.34
The base image is also available under the supported tag(s): 8.2-fpm-alpine3.24, 8.2.34-fpm-alpine, 8.2.34-fpm-alpine3.24

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.3-fpm-alpine
Minor runtime version update
Also known as:
  • 8.3.35-fpm-alpine
  • 8.3.35-fpm-alpine3.24
  • 8.3-fpm-alpine3.24
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: 34 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.3.35
2 weeks ago



8.4-fpm-alpine
Minor runtime version update
Also known as:
  • 8.4.26-fpm-alpine
  • 8.4.26-fpm-alpine3.24
  • 8.4-fpm-alpine3.24
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: 37 MB
  • Flavor: alpine
  • OS: 3.24
  • Runtime: 8.4.26
2 weeks ago



8.5-fpm-alpine
Image has same number of vulnerabilities
Also known as:
  • 8.5.11-fpm-alpine
  • 8.5.11-fpm-alpine3.24
  • 8.5-fpm-alpine3.24
  • 8-fpm-alpine
  • 8-fpm-alpine3.24
  • fpm-alpine
  • fpm-alpine3.24
Benefits:
  • Same OS detected
  • Image contains 1 fewer package
  • Image has similar size
  • Image has same number of vulnerabilities
Image details:
  • Size: 39 MB
  • Flavor: alpine
  • OS: 3.24
2 weeks 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.

0 participants