CVE Vulnerabilities

CVE-2023-45287

Observable Discrepancy

Published: Dec 05, 2023 | Modified: Jan 12, 2024
CVSS 3.x
7.5
HIGH
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CVSS 2.x
RedHat/V2
RedHat/V3
7.5 MODERATE
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Ubuntu
MEDIUM

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.

Weakness

The product behaves differently or sends different responses under different circumstances in a way that is observable to an unauthorized actor, which exposes security-relevant information about the state of the product, such as whether a particular operation was successful or not.

Affected Software

Name Vendor Start Version End Version
Go Golang * 1.20.0 (excluding)
MTA-7.0-RHEL-9 RedHat mta/mta-cli-rhel9:7.0.3-16 *
OADP-1.3-RHEL-9 RedHat oadp/oadp-velero-rhel9:1.3.1-16 *
OSSO-1.2-RHEL-9 RedHat openshift-secondary-scheduler-operator/secondary-scheduler-operator-bundle:v1.2-19 *
OSSO-1.2-RHEL-9 RedHat openshift-secondary-scheduler-operator/secondary-scheduler-rhel9-operator:v1.2-26 *
Red Hat Enterprise Linux 8 RedHat container-tools:4.0-8090020240201111813.d7b6f4b7 *
Red Hat Enterprise Linux 8 RedHat container-tools:rhel8-8100020240227110532.82888897 *
Red Hat Enterprise Linux 9 RedHat runc-4:1.1.12-2.el9 *
Red Hat Enterprise Linux 9 RedHat podman-2:4.9.4-0.1.el9 *
Red Hat Enterprise Linux 9 RedHat skopeo-2:1.14.3-0.1.el9 *
Red Hat Enterprise Linux 9 RedHat buildah-2:1.33.6-2.el9 *
Red Hat Enterprise Linux 9 RedHat containernetworking-plugins-1:1.4.0-2.el9_4 *
Red Hat Enterprise Linux 9.2 Extended Update Support RedHat containernetworking-plugins-1:1.2.0-3.el9_2 *
Red Hat OpenShift Container Platform 4.15 RedHat buildah-1:1.29.1-20.2.rhaos4.15.el8 *
Red Hat OpenShift Container Platform 4.15 RedHat butane-0:0.20.0-1.rhaos4.15.el8 *
Red Hat OpenShift Container Platform 4.15 RedHat containernetworking-plugins-1:1.4.0-1.1.rhaos4.15.el8 *
Red Hat OpenShift Container Platform 4.15 RedHat openshift-0:4.15.0-202402142009.p0.g6216ea1.assembly.stream.el8 *
Red Hat OpenShift Container Platform 4.15 RedHat openshift-clients-0:4.15.0-202402070507.p0.g48dcf59.assembly.stream.el9 *
Red Hat OpenShift Container Platform 4.15 RedHat podman-3:4.4.1-21.rhaos4.15.el9 *
Red Hat OpenShift Container Platform 4.15 RedHat runc-4:1.1.12-1.rhaos4.15.el9 *
Red Hat OpenShift Container Platform 4.15 RedHat skopeo-2:1.11.2-21.1.rhaos4.15.el9 *
Red Hat OpenShift Container Platform 4.15 RedHat microshift-0:4.15.0-202402260721.p0.g799289b.assembly.4.15.0.el9 *
Red Hat OpenStack Platform 17.1 for RHEL 8 RedHat collectd-sensubility-0:0.2.1-3.el8ost *
Red Hat OpenStack Platform 17.1 for RHEL 9 RedHat etcd-0:3.4.26-8.el9ost *
Red Hat OpenStack Platform 17.1 for RHEL 9 RedHat collectd-sensubility-0:0.2.1-3.el9ost *
RODOO-1.1-RHEL-9 RedHat run-once-duration-override-operator/run-once-duration-override-operator-bundle:v1.1-4 *
RODOO-1.1-RHEL-9 RedHat run-once-duration-override-operator/run-once-duration-override-rhel9:v1.1-4 *
RODOO-1.1-RHEL-9 RedHat run-once-duration-override-operator/run-once-duration-override-rhel9-operator:v1.1-5 *
Service Interconnect 1 for RHEL 9 RedHat service-interconnect/skupper-config-sync-rhel9:1.5.3-1 *
Service Interconnect 1 for RHEL 9 RedHat service-interconnect/skupper-controller-podman-rhel9:1.5.3-1 *
Service Interconnect 1 for RHEL 9 RedHat service-interconnect/skupper-flow-collector-rhel9:1.5.3-2 *
Service Interconnect 1 for RHEL 9 RedHat service-interconnect/skupper-operator-bundle:1.5.3-3 *
Service Interconnect 1 for RHEL 9 RedHat service-interconnect/skupper-router-rhel9:2.5.1-2 *
Service Interconnect 1 for RHEL 9 RedHat service-interconnect/skupper-service-controller-rhel9:1.5.3-1 *
Service Interconnect 1 for RHEL 9 RedHat service-interconnect/skupper-site-controller-rhel9:1.5.3-2 *
STF-1.5-RHEL-8 RedHat stf/sg-core-rhel8:5.2.1-6 *
Golang-1.19 Ubuntu bionic *
Golang-1.19 Ubuntu lunar *
Golang-1.19 Ubuntu trusty *
Golang-1.19 Ubuntu xenial *
Golang-1.20 Ubuntu bionic *
Golang-1.20 Ubuntu lunar *
Golang-1.20 Ubuntu mantic *
Golang-1.20 Ubuntu trusty *
Golang-1.20 Ubuntu xenial *

Potential Mitigations

  • Compartmentalize the system to have “safe” areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area.
  • Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.
  • Ensure that error messages only contain minimal details that are useful to the intended audience and no one else. The messages need to strike the balance between being too cryptic (which can confuse users) or being too detailed (which may reveal more than intended). The messages should not reveal the methods that were used to determine the error. Attackers can use detailed information to refine or optimize their original attack, thereby increasing their chances of success.
  • If errors must be captured in some detail, record them in log messages, but consider what could occur if the log messages can be viewed by attackers. Highly sensitive information such as passwords should never be saved to log files.
  • Avoid inconsistent messaging that might accidentally tip off an attacker about internal state, such as whether a user account exists or not.

References