CVE-2021-47254

HIGH
2024-05-21 416baaa9-dc9f-4396-8d5f-8c081fb06d67
7.8
CVSS 3.1
Share

CVSS Vector

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

Lifecycle Timeline

3
Analysis Generated
Mar 17, 2026 - 20:45 vuln.today
Patch Released
Mar 17, 2026 - 20:45 nvd
Patch available
CVE Published
May 21, 2024 - 15:15 nvd
HIGH 7.8

Description

In the Linux kernel, the following vulnerability has been resolved: gfs2: Fix use-after-free in gfs2_glock_shrink_scan The GLF_LRU flag is checked under lru_lock in gfs2_glock_remove_from_lru() to remove the glock from the lru list in __gfs2_glock_put(). On the shrink scan path, the same flag is cleared under lru_lock but because of cond_resched_lock(&lru_lock) in gfs2_dispose_glock_lru(), progress on the put side can be made without deleting the glock from the lru list. Keep GLF_LRU across the race window opened by cond_resched_lock(&lru_lock) to ensure correct behavior on both sides - clear GLF_LRU after list_del under lru_lock.

Analysis

A use-after-free vulnerability exists in the GFS2 filesystem implementation of the Linux kernel, specifically in the gfs2_glock_shrink_scan function. The vulnerability affects multiple Linux kernel versions ranging from 4.4 through 5.13-rc2, allowing local attackers with low privileges to potentially achieve arbitrary code execution, information disclosure, or system crashes. With an EPSS score of only 0.02%, this vulnerability has a very low probability of real-world exploitation despite its high CVSS score of 7.8.

Technical Context

The vulnerability occurs in the Global File System 2 (GFS2) distributed filesystem implementation, specifically in the glock (global lock) management subsystem. The issue stems from improper synchronization when handling the GLF_LRU flag during concurrent operations between gfs2_glock_remove_from_lru() and gfs2_dispose_glock_lru(). The cond_resched_lock() call creates a race window where the glock can be freed while still being referenced on the LRU list. This is classified as CWE-416 (Use After Free), a memory corruption vulnerability class where memory is accessed after being deallocated. Based on the CPE data, the vulnerability affects Linux kernel versions 4.4.x through 4.19.x, 5.4.x through 5.12.x, and 5.13 release candidates 1 and 2.

Affected Products

The vulnerability affects the Linux kernel versions from 4.4.x through 5.13-rc2, specifically including stable branches 4.4.x, 4.9.x, 4.14.x, 4.19.x, 5.4.x, 5.10.x, 5.12.x, and 5.13 release candidates 1 and 2 as identified by the CPE entries. The GFS2 filesystem module must be loaded for the system to be vulnerable, which limits exposure to systems actively using GFS2 for clustered storage. Multiple patch commits are available across different kernel branches as referenced in the git.kernel.org stable tree.

Remediation

Update the Linux kernel to a patched version that includes the fix commits referenced in the advisory. For kernel 5.13, apply commit 1ab19c5de4c537ec0d9b21020395a5b5a6c059b2 or later. For stable branches, apply the appropriate backported fixes: 5.12.x (38ce329534500bf4ae71f81df6a37a406cf187b4), 5.10.x (e87ef30fe73e7e10d2c85bdcc778dcec24dca553), 5.4.x (a61156314b66456ab6a291ed5deba1ebd002ab3c), 4.19.x (86fd5b27db743a0ce0cc245e3a34813b2aa6ec1d), 4.14.x (92869945cc5b78ee8a1ef90336fe070893e3458a), 4.9.x (094bf5670e762afa243d2c41a5c4ab71c7447bf4), and 4.4.x (0364742decb0f02bc183404868b82896f7992595). If immediate patching is not possible, consider disabling or unloading the GFS2 module if not required for production operations.

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: +0.0
CVSS: +39
POC: 0

Share

CVE-2021-47254 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy