RHEL 9 : golang (RHSA-2024:2562)

high Nessus Plugin ID 194846

Synopsis

The remote Red Hat host is missing one or more security updates for golang.

Description

The remote Redhat Enterprise Linux 9 host has packages installed that are affected by multiple vulnerabilities as referenced in the RHSA-2024:2562 advisory.

- 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. (CVE-2023-45288)

- When following an HTTP redirect to a domain which is not a subdomain match or exact match of the initial domain, an http.Client does not forward sensitive headers such as Authorization or Cookie. For example, a redirect from foo.com to www.foo.com will forward the Authorization header, but a redirect to bar.com will not. A maliciously crafted HTTP redirect could cause sensitive headers to be unexpectedly forwarded. (CVE-2023-45289)

- When parsing a multipart form (either explicitly with Request.ParseMultipartForm or implicitly with Request.FormValue, Request.PostFormValue, or Request.FormFile), limits on the total size of the parsed form were not applied to the memory consumed while reading a single form line. This permits a maliciously crafted input containing very long lines to cause allocation of arbitrarily large amounts of memory, potentially leading to memory exhaustion. With fix, the ParseMultipartForm function now correctly limits the maximum size of form lines. (CVE-2023-45290)

- A memory leak flaw was found in Golang in the RSA encrypting/decrypting code, which might lead to a resource exhaustion vulnerability using attacker-controlled inputs. The memory leak happens in github.com/golang-fips/openssl/openssl/rsa.go#L113. The objects leaked are pkey and ctx. That function uses named return parameters to free pkey and ctx if there is an error initializing the context or setting the different properties. All return statements related to error cases follow the return nil, nil, fail(...) pattern, meaning that pkey and ctx will be nil inside the deferred function that should free them. (CVE-2024-1394)

- Verifying a certificate chain which contains a certificate with an unknown public key algorithm will cause Certificate.Verify to panic. This affects all crypto/tls clients, and servers that set Config.ClientAuth to VerifyClientCertIfGiven or RequireAndVerifyClientCert. The default behavior is for TLS servers to not verify client certificates. (CVE-2024-24783)

- 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. (CVE-2024-24784)

- If errors returned from MarshalJSON methods contain user controlled data, they may be used to break the contextual auto-escaping behavior of the html/template package, allowing for subsequent actions to inject unexpected content into templates. (CVE-2024-24785)

Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version number.

Solution

Update the RHEL golang package based on the guidance in RHSA-2024:2562.

See Also

https://access.redhat.com/errata/RHSA-2024:2562

https://access.redhat.com/security/cve/CVE-2023-45288

https://access.redhat.com/security/cve/CVE-2023-45289

https://access.redhat.com/security/cve/CVE-2023-45290

https://access.redhat.com/security/cve/CVE-2024-1394

https://access.redhat.com/security/cve/CVE-2024-24783

https://access.redhat.com/security/cve/CVE-2024-24784

https://access.redhat.com/security/cve/CVE-2024-24785

Plugin Details

Severity: High

ID: 194846

File Name: redhat-RHSA-2024-2562.nasl

Version: 1.1

Type: local

Agent: unix

Published: 4/30/2024

Updated: 5/2/2024

Supported Sensors: Agentless Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Frictionless Assessment Azure, Nessus Agent, Nessus

Risk Information

VPR

Risk Factor: Medium

Score: 5.1

CVSS v2

Risk Factor: High

Base Score: 7.8

Temporal Score: 6.1

Vector: CVSS2#AV:N/AC:L/Au:N/C:N/I:C/A:N

CVSS Score Source: CVE-2024-24785

CVSS v3

Risk Factor: High

Base Score: 7.5

Temporal Score: 6.7

Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Temporal Vector: CVSS:3.0/E:P/RL:O/RC:C

CVSS Score Source: CVE-2024-1394

Vulnerability Information

CPE: p-cpe:/a:redhat:enterprise_linux:golang-docs, cpe:/o:redhat:enterprise_linux:9, p-cpe:/a:redhat:enterprise_linux:golang-src, p-cpe:/a:redhat:enterprise_linux:golang-tests, p-cpe:/a:redhat:enterprise_linux:golang-misc, p-cpe:/a:redhat:enterprise_linux:golang, p-cpe:/a:redhat:enterprise_linux:golang-bin, p-cpe:/a:redhat:enterprise_linux:go-toolset

Required KB Items: Host/local_checks_enabled, Host/RedHat/release, Host/RedHat/rpm-list, Host/cpu

Exploit Available: true

Exploit Ease: Exploits are available

Patch Publication Date: 4/30/2024

Vulnerability Publication Date: 3/5/2024

Reference Information

CVE: CVE-2023-45288, CVE-2023-45289, CVE-2023-45290, CVE-2024-1394, CVE-2024-24783, CVE-2024-24784, CVE-2024-24785

CWE: 115, 20, 200, 400, 401, 74

RHSA: 2024:2562