CVE-2021-47454

CVE Details

Release Date:2024-05-22

Description


In the Linux kernel, the following vulnerability has been resolved:\npowerpc/smp: do not decrement idle task preempt count in CPU offline\nWith PREEMPT_COUNT=y, when a CPU is offlined and then onlined again, we\nget:\nBUG: scheduling while atomic: swapper/1/0/0x00000000\nno locks held by swapper/1/0.\nCPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.15.0-rc2+ #100\nCall Trace:\ndump_stack_lvl+0xac/0x108\n__schedule_bug+0xac/0xe0\n__schedule+0xcf8/0x10d0\nschedule_idle+0x3c/0x70\ndo_idle+0x2d8/0x4a0\ncpu_startup_entry+0x38/0x40\nstart_secondary+0x2ec/0x3a0\nstart_secondary_prolog+0x10/0x14\nThis is because powerpc's arch_cpu_idle_dead() decrements the idle task's\npreempt count, for reasons explained in commit a7c2bb8279d2 ('powerpc:\nRe-enable preemption before cpu_die()'), specifically 'start_secondary()\nexpects a preempt_count() of 0.'\nHowever, since commit 2c669ef6979c ('powerpc/preempt: Don't touch the idle\ntask's preempt_count during hotplug') and commit f1a0a376ca0c ('sched/core:\nInitialize the idle task with preemption disabled'), that justification no\nlonger holds.\nThe idle task isn't supposed to re-enable preemption, so remove the\nvestigial preempt_enable() from the CPU offline path.\nTested with pseries and powernv in qemu, and pseries on PowerVM.

See more information about CVE-2021-47454 from MITRE CVE dictionary and NIST NVD


CVSS Scoring


NOTE: The following CVSS v3.1 metrics and score provided are preliminary and subject to review.

Base Score: 4.1 CVSS Vector: CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H
Attack Vector: Local network Attack Complexity: High
Privileges Required: High User Interaction: None
Scope: Unchanged Confidentiality Impact: None
Integrity Impact: None Availability Impact: High

Errata information


PlatformErrataRelease Date
Oracle Linux version 9 (kernel)ELSA-2024-93152024-11-14


This page is generated automatically and has not been checked for errors or omissions. For clarification or corrections:

software.hardware.complete