Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-74321

Опубликовано: 15 авг. 2026
Источник: redhat
CVSS3: 5.5
EPSS Низкий

Описание

In the Linux kernel, the following vulnerability has been resolved: btrfs: fix invalid pointer dereference in __btrfs_run_delayed_refs() In the beginning of the loop, we try to obtain a locked delayed ref head, if 'locked_ref' is currently NULL, by calling btrfs_select_ref_head(), which can return an error pointer. If the error pointer is -EAGAIN we do a continue and go back to the beginning of the loop, which will not try again to call btrfs_select_ref_head() since 'locked_ref' is no longer NULL but it's ERR_PTR(-EAGAIN), and then we do: spin_lock(&locked_ref->lock); against a ERR_PTR(-EAGAIN) value, generating an invalid pointer dereference. Fix this by ensuring that 'locked_ref' is set to NULL when btrfs_select_ref_head() returns ERR_PTR(-EAGAIN) and incrementing 'count' as well, to prevent infinite looping. We do this by doing a goto to the bottom of the loop that already sets 'locked_ref' to NULL and does a cond_resched(), with an increment to 'count' right before the goto. These measures were in place before the refactoring in commit 0110a4c43451 ("btrfs: refactor __btrfs_run_delayed_refs loop") but were unintentionally lost afterwards.

A flaw was found in the btrfs file system component of the Linux kernel. This vulnerability occurs in the __btrfs_run_delayed_refs() function when an error condition is not properly handled, leading to an invalid pointer dereference. A local attacker could potentially exploit this flaw to cause a system crash, resulting in a Denial of Service (DoS).

Отчет

A flaw rated Moderate severity by Red Hat was found in the btrfs file system component of the Linux kernel as shipped in Red Hat Enterprise Linux 10 and Red Hat In-Vehicle OS 2. In __btrfs_run_delayed_refs(), when btrfs_select_ref_head() returns ERR_PTR(-EAGAIN), the 'locked_ref' variable retains the error pointer instead of being reset to NULL; on the next loop iteration the error pointer is treated as a valid delayed reference head and spin_lock() is called on it, causing an invalid pointer dereference and a kernel crash. A local attacker able to perform filesystem operations on a mounted btrfs file system could use this flaw to crash the system, resulting in a denial of service; there is no impact to confidentiality or integrity. Red Hat Enterprise Linux 7, 8, and 9 are not affected because the vulnerable code, introduced when an upstream refactoring of the __btrfs_run_delayed_refs() loop unintentionally removed existing safeguards, is not present in those kernels, and Red Hat Enterprise Linux 6 is out of support scope. Red Hat rated this flaw Moderate (CVSS 3.1 score 5.5, AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H), lower than the upstream CVE.org rating of 7.5, because exploiting this flaw requires local access to a system with a btrfs file system mounted and is not network reachable. The fix for the affected Red Hat Enterprise Linux 10 and Red Hat In-Vehicle OS 2 streams is currently deferred because the issue is a local denial of service with limited practical impact; the residual risk is that a local user with access to a btrfs file system could trigger a kernel crash and system outage on an affected system.

Меры по смягчению последствий

Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Enterprise Linux 10kernelFix deferred
Red Hat Enterprise Linux 6kernelOut of support scope
Red Hat Enterprise Linux 7kernelNot affected
Red Hat Enterprise Linux 7kernel-rtNot affected
Red Hat Enterprise Linux 8kernelNot affected
Red Hat Enterprise Linux 8kernel-rtNot affected
Red Hat Enterprise Linux 9kernelNot affected
Red Hat Enterprise Linux 9kernel-rtNot affected

Показывать по

Дополнительная информация

Статус:

Moderate
Дефект:
CWE-476
https://bugzilla.redhat.com/show_bug.cgi?id=2516808kernel: btrfs: fix invalid pointer dereference in __btrfs_run_delayed_refs()

EPSS

Процентиль: 53%
0.00716
Низкий

5.5 Medium

CVSS3

Связанные уязвимости

CVSS3: 7.5
ubuntu
2 месяца назад

In the Linux kernel, the following vulnerability has been resolved: btrfs: fix invalid pointer dereference in __btrfs_run_delayed_refs() In the beginning of the loop, we try to obtain a locked delayed ref head, if 'locked_ref' is currently NULL, by calling btrfs_select_ref_head(), which can return an error pointer. If the error pointer is -EAGAIN we do a continue and go back to the beginning of the loop, which will not try again to call btrfs_select_ref_head() since 'locked_ref' is no longer NULL but it's ERR_PTR(-EAGAIN), and then we do: spin_lock(&locked_ref->lock); against a ERR_PTR(-EAGAIN) value, generating an invalid pointer dereference. Fix this by ensuring that 'locked_ref' is set to NULL when btrfs_select_ref_head() returns ERR_PTR(-EAGAIN) and incrementing 'count' as well, to prevent infinite looping. We do this by doing a goto to the bottom of the loop that already sets 'locked_ref' to NULL and does a cond_resched(), with an increment to 'count' right before the goto. The...

CVSS3: 7.5
nvd
2 месяца назад

In the Linux kernel, the following vulnerability has been resolved: btrfs: fix invalid pointer dereference in __btrfs_run_delayed_refs() In the beginning of the loop, we try to obtain a locked delayed ref head, if 'locked_ref' is currently NULL, by calling btrfs_select_ref_head(), which can return an error pointer. If the error pointer is -EAGAIN we do a continue and go back to the beginning of the loop, which will not try again to call btrfs_select_ref_head() since 'locked_ref' is no longer NULL but it's ERR_PTR(-EAGAIN), and then we do: spin_lock(&locked_ref->lock); against a ERR_PTR(-EAGAIN) value, generating an invalid pointer dereference. Fix this by ensuring that 'locked_ref' is set to NULL when btrfs_select_ref_head() returns ERR_PTR(-EAGAIN) and incrementing 'count' as well, to prevent infinite looping. We do this by doing a goto to the bottom of the loop that already sets 'locked_ref' to NULL and does a cond_resched(), with an increment to 'count' right before the goto

CVSS3: 7.5
debian
2 месяца назад

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

CVSS3: 7.5
redos
около 1 месяца назад

Уязвимость kernel-lt

CVSS3: 7.5
redos
около 1 месяца назад

Уязвимость kernel-lt

EPSS

Процентиль: 53%
0.00716
Низкий

5.5 Medium

CVSS3