CVE-2023-0045

Incorrect indirect branch prediction barrier in the Linux Kernel

Published Apr 25, 2023 CVSS 3.1 · 4.7 Medium EPSS 2.4% KEV · Not listed
Description
The current implementation of the prctl syscall does not issue an IBPB immediately during the syscall. The ib_prctl_set  function updates the Thread Information Flags (TIFs) for the task and updates the SPEC_CTRL MSR on the function __speculation_ctrl_update, but the IBPB is only issued on the next schedule, when the TIF bits are checked. This leaves the victim vulnerable to values already injected on the BTB, prior to the prctl syscall.  The patch that added the support for the conditional mitigation via prctl (ib_prctl_set) dates back to the kernel 4.9.176.

We recommend upgrading past commit a664ec9158eeddd75121d39c9a0758016097fa96

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-3403-1 linux security update
Debian DLA Debian DLA DLA-3404-1 linux-5.10 security update
EUVD EUVD EUVD-2023-12148 The current implementation of the prctl syscall does not issue an IBPB immediately during the syscall. The ib_prctl_set  function updates the Thread Information Flags (TIFs) for the task and updates the SPEC_CTRL MSR on the function __speculation_ctrl_update, but the IBPB is only issued on the next schedule, when the TIF bits are checked. This leaves the victim vulnerable to values already injected on the BTB, prior to the prctl syscall.  The patch that added the support for the conditional mitigation via prctl (ib_prctl_set) dates back to the kernel 4.9.176. We recommend upgrading past commit a664ec9158eeddd75121d39c9a0758016097fa96
Ubuntu USN Ubuntu USN USN-5884-1 Linux kernel (AWS) vulnerabilities
Ubuntu USN Ubuntu USN USN-5913-1 Linux kernel (OEM) vulnerabilities
Ubuntu USN Ubuntu USN USN-5914-1 Linux kernel (OEM) vulnerabilities
Ubuntu USN Ubuntu USN USN-5915-1 Linux kernel (OEM) vulnerabilities
Ubuntu USN Ubuntu USN USN-5917-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-5924-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-5926-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-5927-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-5934-1 Linux kernel (Raspberry Pi) vulnerabilities
Ubuntu USN Ubuntu USN USN-5939-1 Linux kernel (GCP) vulnerabilities
Ubuntu USN Ubuntu USN USN-5940-1 Linux kernel (Raspberry Pi) vulnerabilities
Ubuntu USN Ubuntu USN USN-5951-1 Linux kernel (IBM) vulnerabilities
Ubuntu USN Ubuntu USN USN-5970-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-5975-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-5979-1 Linux kernel (HWE) vulnerabilities
Ubuntu USN Ubuntu USN USN-5981-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-5982-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-5984-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-5987-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-5991-1 Linux kernel (GCP) vulnerabilities
Ubuntu USN Ubuntu USN USN-6000-1 Linux kernel (BlueField) vulnerabilities
Ubuntu USN Ubuntu USN USN-6004-1 Linux kernel (Intel IoTG) vulnerabilities
Ubuntu USN Ubuntu USN USN-6009-1 Linux kernel (GCP) vulnerabilities
Ubuntu USN Ubuntu USN USN-6030-1 Linux kernel (Qualcomm Snapdragon) vulnerabilities
History
Type Values Removed Values Added
Description The current implementation of the prctl syscall does not issue an IBPB immediately during the syscall. The ib_prctl_set  function updates the Thread Information Flags (TIFs) for the task and updates the SPEC_CTRL MSR on the function __speculation_ctrl_update, but the IBPB is only issued on the next schedule, when the TIF bits are checked. This leaves the victim vulnerable to values already injected on the BTB, prior to the prctl syscall.  The patch that added the support for the conditional mitigation via prctl (ib_prctl_set) dates back to the kernel 4.9.176. We recommend upgrading past commit a664ec9158eeddd75121d39c9a0758016097fa96 The current implementation of the prctl syscall does not issue an IBPB immediately during the syscall. The ib_prctl_set  function updates the Thread Information Flags (TIFs) for the task and updates the SPEC_CTRL MSR on the function __speculation_ctrl_update, but the IBPB is only issued on the next schedule, when the TIF bits are checked. This leaves the victim vulnerable to values already injected on the BTB, prior to the prctl syscall.  The patch that added the support for the conditional mitigation via prctl (ib_prctl_set) dates back to the kernel 4.9.176. We recommend upgrading past commit a664ec9158eeddd75121d39c9a0758016097fa96
Title Incorrect indirect branch prediction barrier in the Linux Kernel Incorrect indirect branch prediction barrier in the Linux Kernel
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}