CVE-2022-48931

configfs: fix a race in configfs_{,un}register_subsystem()

published August 22, 2024

CVSS
—
EPSS
0%
Percentile
5.4
In the wild
Unconfirmed
What it is

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

configfs: fix a race in configfs_{,un}register_subsystem()

When configfs_register_subsystem() or configfs_unregister_subsystem()

is executing link_group() or unlink_group(),

it is possible that two processes add or delete list concurrently.

Some unfortunate interleavings of them can cause kernel panic.

One of cases is:

A --> B --> C --> D

A <-- B <-- C <-- D

delete list_head *B | delete list_head *C

--------------------------------|-----------------------------------

configfs_unregister_subsystem | configfs_unregister_subsystem

unlink_group | unlink_group

unlink_obj | unlink_obj

list_del_init | list_del_init

__list_del_entry | __list_del_entry

__list_del | __list_del

// next == C |

next->prev = prev |

| next->prev = prev

prev->next = next |

| // prev == B

| prev->next = next

Fix this by adding mutex when calling link_group() or unlink_group(),

but parent configfs_subsystem is NULL when config_item is root.

So I create a mutex configfs_subsystem_mutex.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00165 · 5.4th percentile
Published
2024-08-22T03:31Z
EPSS history
Timeline
  • 22 AUG 03:31Z
    configfs: fix a race in configfs_{,un}register_subsystem()
    cvelistv5