Red Hat Security Advisory: go-toolset:rhel8 security update
🔗 CVE IDs covered (4)
📋 Description
CVE-2023-29406 — golang: net/http: insufficient sanitization of Host header CVE-2023-29409 — golang: crypto/tls: slow verification of certificate chains containing large RSA keys CVE-2023-39325 — golang: net/http, x/net/http2: rapid stream resets can cause excessive work (CVE-2023-44487) CVE-2023-44487 — HTTP/2: Multiple HTTP/2 enabled web servers are vulnerable to a DDoS attack (Rapid Reset Attack)
🎯 Affected products24
- Red Hat Enterprise Linux AppStream (v. 8)
- delve-0:1.9.1-1.module+el8.8.0+16778+5fbb74f5.src (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- delve-0:1.9.1-1.module+el8.8.0+16778+5fbb74f5.x86_64 (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- delve-debuginfo-0:1.9.1-1.module+el8.8.0+16778+5fbb74f5.x86_64 (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- delve-debugsource-0:1.9.1-1.module+el8.8.0+16778+5fbb74f5.x86_64 (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- go-toolset-0:1.19.13-1.module+el8.8.0+20380+7171fefb.aarch64 (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- go-toolset-0:1.19.13-1.module+el8.8.0+20380+7171fefb.ppc64le (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- go-toolset-0:1.19.13-1.module+el8.8.0+20380+7171fefb.s390x (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- go-toolset-0:1.19.13-1.module+el8.8.0+20380+7171fefb.src (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- go-toolset-0:1.19.13-1.module+el8.8.0+20380+7171fefb.x86_64 (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.aarch64 (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.ppc64le (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.s390x (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.src (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.x86_64 (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-bin-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.aarch64 (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-bin-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.ppc64le (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-bin-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.s390x (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-bin-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.x86_64 (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-docs-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.noarch (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-misc-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.noarch (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-race-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.x86_64 (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-src-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.noarch (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
- golang-tests-0:1.19.13-1.module+el8.8.0+20373+d9cd605c.noarch (go-toolset:rhel8) as a component of Red Hat Enterprise Linux AppStream (v. 8)
✅ Remediation
For details on how to apply this update, which includes the changes described in this advisory, refer to: https://access.redhat.com/articles/11258 Workaround: The default stream concurrency limit in golang is 250 streams (requests) per HTTP/2 connection. This value may be adjusted in the golang.org/x/net/http2 package using the Server.MaxConcurrentStreams setting and the ConfigureServer function which are available in golang.org/x/net/http2. Workaround: Users are strongly urged to update their software as soon as fixes are available. There are several mitigation approaches for this flaw. 1. If circumstances permit, users may disable http2 endpoints to circumvent the flaw altogether until a fix is available. 2. IP-based blocking or flood protection and rate control tools may be used at network endpoints to filter incoming traffic. 3. Several package specific mitigations are also available. a. nginx: https://www.nginx.com/blog/http-2-rapid-reset-attack-impacting-f5-nginx-products/ b. netty: https://github.com/netty/netty/security/advisories/GHSA-xpw8-rcwv-8f8p c. haproxy: https://www.haproxy.com/blog/haproxy-is-not-affected-by-the-http-2-rapid-reset-attack-cve-2023-44487 d. nghttp2: https://github.com/nghttp2/nghttp2/security/advisories/GHSA-vx74-f528-fxqg e. golang: The default stream concurrency limit in golang is 250 streams (requests) per HTTP/2 connection. This value may be adjusted in the golang.org/x/net/http2 package using the Server.MaxConcurrentStreams setting and the ConfigureServer function which are available in golang.org/x/net/http2.
🔗 References (6)
- selfhttps://access.redhat.com/errata/RHSA-2023:5721
- externalhttps://access.redhat.com/security/updates/classification/#important
- externalhttps://access.redhat.com/security/vulnerabilities/RHSB-2023-003
- externalhttps://bugzilla.redhat.com/show_bug.cgi?id=2242803
- externalhttps://bugzilla.redhat.com/show_bug.cgi?id=2243296
- selfhttps://security.access.redhat.com/data/csaf/v2/advisories/2023/rhsa-2023_5721.json