Skip to content
OpenAdvisories
Unscored CVE-2022-48953 EUVD-2022-53832GHSA-8j4x-47rq-vf32

rtc: cmos: Fix event handler registration ordering issue

Published Oct 21, 2024 · Updated May 11, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.15 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.4 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-fips Package: linux-aws-hwe Package: linux-azure Package: linux-azure-4.15 Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.4 Package: linux-azure-5.8 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-azure-fips Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-4.15 Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.4 Package: linux-gcp-5.8 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.15 Package: linux-hwe-5.19 Package: linux-hwe-5.4 Package: linux-hwe-5.8 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.4 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-iot Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lts-xenial Package: linux-nvidia Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-tegra-5.15 Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.5 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.4 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-raspi Package: linux-raspi-5.4 Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.5 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx-zynqmp Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

In the Linux kernel, the following vulnerability has been resolved:

rtc: cmos: Fix event handler registration ordering issue

Because acpi_install_fixed_event_handler() enables the event
automatically on success, it is incorrect to call it before the
handler routine passed to it is ready to handle events.

Unfortunately, the rtc-cmos driver does exactly the incorrect thing
by calling cmos_wake_setup(), which passes rtc_handler() to
acpi_install_fixed_event_handler(), before cmos_do_probe(), because
rtc_handler() uses dev_get_drvdata() to get to the cmos object
pointer and the driver data pointer is only populated in
cmos_do_probe().

This leads to a NULL pointer dereference in rtc_handler() on boot
if the RTC fixed event happens to be active at the init time.

To address this issue, change the initialization ordering of the
driver so that cmos_wake_setup() is always called after a successful
cmos_do_probe() call.

While at it, change cmos_pnp_probe() to call cmos_do_probe() after
the initial if () statement used for computing the IRQ argument to
be passed to cmos_do_probe() which is cleaner than calling it in
each branch of that if () (local variable "irq" can be of type int,
because it is passed to that function as an argument of type int).

Note that commit 6492fed7d8c9 ("rtc: rtc-cmos: Do not check
ACPI_FADT_LOW_POWER_S0") caused this issue to affect a larger number
of systems, because previously it only affected systems with
ACPI_FADT_LOW_POWER_S0 set, but it is present regardless of that
commit.

Affected products

VendorProductAffectedFixed
Linux Linux 2.6.28 5.10.163

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 6.1.4-1 —
Debian 13 linux 6.1.4-1 —
Debian 12 linux 6.1.4-1 —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1015.17 —
Ubuntu 24.04 LTS linux-raspi-realtime No fix yet —
Ubuntu 22.04 LTS linux +1 5.15.0-69.76 —
Ubuntu 22.04 LTS linux-aws 5.15.0-1033.37 —
Ubuntu 22.04 LTS linux-azure 5.15.0-1035.42 —
Ubuntu 22.04 LTS linux-azure-fde 5.15.0-1035.42.1 —
Ubuntu 22.04 LTS linux-gcp 5.15.0-1031.38 —
Ubuntu 22.04 LTS linux-gke +1 5.15.0-1030.35 —
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1017.22 —
Ubuntu 22.04 LTS linux-ibm 5.15.0-1027.30 —
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1027.32 —
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1023.23 —
Ubuntu 22.04 LTS linux-oracle 5.15.0-1032.38 —
Ubuntu 22.04 LTS linux-raspi 5.15.0-1026.28 —
Ubuntu 22.04 LTS linux-riscv +31 No fix yet —
Ubuntu 20.04 LTS linux-aws-5.15 5.15.0-1033.37~20.04.1 —
Ubuntu 20.04 LTS linux-azure-5.15 5.15.0-1035.42~20.04.1 —
Ubuntu 20.04 LTS linux-gcp-5.15 5.15.0-1031.38~20.04.1 —
Ubuntu 20.04 LTS linux-gke +27 No fix yet —
Ubuntu 20.04 LTS linux-gkeop-5.15 5.15.0-1017.22~20.04.1 —
Ubuntu 20.04 LTS linux-hwe-5.15 +1 5.15.0-69.76~20.04.1 —
Ubuntu 20.04 LTS linux-intel-iotg-5.15 5.15.0-1027.32~20.04.1 —
Ubuntu 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1014.14~20.04.1 —
Ubuntu 20.04 LTS linux-oracle-5.15 5.15.0-1032.38~20.04.1 —
Ubuntu 20.04 LTS linux-riscv-5.15 5.15.0-1030.34~20.04.1 —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Show 12 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1023.28 —
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1034.37 —
Ubuntu Pro FIPS 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 16.04 LTS linux-fips No fix yet —
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-updates 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-updates 16.04 LTS linux-fips No fix yet —
Ubuntu Pro 20.04 LTS linux +10 No fix yet —
Ubuntu Pro 18.04 LTS linux +12 No fix yet —
Ubuntu Pro 16.04 LTS linux +7 No fix yet —
Ubuntu Pro 14.04 LTS linux +3 No fix yet —
ReleasePackageFixed inAdvisory
SLES 15 SP5 kernel-64kb +6 5.14.21-150500.55.88.1 SUSE-SU-2024:4364-1
SLES 15 SP5 kernel-azure +2 5.14.21-150500.33.72.1 SUSE-SU-2024:3983-1
SLES 15 SP5 kernel-default-base 5.14.21-150500.55.88.1.150500.6.39.4 SUSE-SU-2024:4364-1
SLES 15 SP4 kernel-64kb +6 5.14.21-150400.24.141.1 SUSE-SU-2024:4131-1
SLES 15 SP4 kernel-default-base 5.14.21-150400.24.141.1.150400.24.68.2 SUSE-SU-2024:4131-1
SLES 12 SP5 kernel-syms +2 4.12.14-122.250.1 SUSE-SU-2025:0834-1
Show 11 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP4 kernel-default-base 5.14.21-150400.24.141.1.150400.24.68.2 SUSE-SU-2024:4131-1
SLES for SAP 15 SP4 kernel-docs +4 5.14.21-150400.24.141.1 SUSE-SU-2024:4131-1
SLE Micro 5.5 kernel-default 5.14.21-150500.55.88.1 SUSE-SU-2024:4364-1
SLE Micro 5.5 kernel-default-base 5.14.21-150500.55.88.1.150500.6.39.4 SUSE-SU-2024:4364-1
SLE Micro 5.5 kernel-rt +1 5.14.21-150500.13.76.1 SUSE-SU-2024:3985-1
SLE Micro 5.4 kernel-default 5.14.21-150400.24.141.1 SUSE-SU-2024:4131-1
SLE Micro 5.4 kernel-default-base 5.14.21-150400.24.141.1.150400.24.68.2 SUSE-SU-2024:4131-1
SLE Micro 5.4 kernel-rt +1 5.14.21-150400.15.100.1 SUSE-SU-2024:4082-1
SLE Micro 5.3 kernel-default 5.14.21-150400.24.141.1 SUSE-SU-2024:4131-1
SLE Micro 5.3 kernel-default-base 5.14.21-150400.24.141.1.150400.24.68.2 SUSE-SU-2024:4131-1
SLE Micro 5.3 kernel-rt +1 5.14.21-150400.15.100.1 SUSE-SU-2024:4082-1
SLE Live Patching 15 SP5 kernel-default 5.14.21-150500.55.88.1 SUSE-SU-2024:4364-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5-RT_Update_22 1-150500.11.3.1 SUSE-SU-2024:3985-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_21 1-150500.11.5.1 SUSE-SU-2024:4364-1
SLE Live Patching 15 SP4 kernel-default 5.14.21-150400.24.141.1 SUSE-SU-2024:4131-1
SLE Live Patching 15 SP4 kernel-livepatch-SLE15-SP4_Update_33 1-150400.9.5.1 SUSE-SU-2024:4131-1
SLE Live Patching 12 SP5 kernel-default 4.12.14-122.250.1 SUSE-SU-2025:0834-1
SLE Live Patching 12 SP5 kgraft-patch-SLE12-SP5_Update_66 1-8.3.1 SUSE-SU-2025:0834-1
SLE HPC 15 SP4 kernel-64kb +5 5.14.21-150400.24.141.1 SUSE-SU-2024:4131-1
SLE HPC 15 SP4 kernel-default-base 5.14.21-150400.24.141.1.150400.24.68.2 SUSE-SU-2024:4131-1
SUSE Real Time Module 15 SP5 kernel-rt +3 5.14.21-150500.13.76.1 SUSE-SU-2024:3985-1
SUSE Manager Server 4.3 kernel-default-base 5.14.21-150400.24.141.1.150400.24.68.2 SUSE-SU-2024:4131-1
SUSE Manager Server 4.3 kernel-syms +3 5.14.21-150400.24.141.1 SUSE-SU-2024:4131-1
SUSE Manager Proxy 4.3 kernel-default-base 5.14.21-150400.24.141.1.150400.24.68.2 SUSE-SU-2024:4131-1
SUSE Manager Proxy 4.3 kernel-syms +2 5.14.21-150400.24.141.1 SUSE-SU-2024:4131-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.5 kernel-azure +2 5.14.21-150500.33.72.1 SUSE-SU-2024:3983-1
openSUSE Leap 15.5 kernel-rt +3 5.14.21-150500.13.76.1 SUSE-SU-2024:3985-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
openSUSE Leap Micro 5.5 kernel-rt 5.14.21-150500.13.76.1 SUSE-SU-2024:3985-1

Advisories 7

References