Описание
In the Linux kernel, the following vulnerability has been resolved:
eventfs: Fix use-after-free in eventfs_remove_rec()
eventfs_remove_rec() recursively removes the child at the current loop
position. After the recursive call returns, list_for_each_entry() advances
by reading list.next from the removed child.
If free_ei() drops the final reference, release_ei() reuses the list/rcu
union to queue an SRCU callback. The child may be freed before that read.
The eventfs_mutex serializes list updates, but it does not keep the removed
child alive or prevent the SRCU callback from running.
Use list_for_each_entry_safe() to save the next sibling before recursively
removing the current child.
A flaw was found in the Linux kernel's eventfs component. The eventfs_remove_rec() function contains a use-after-free vulnerability where it attempts to access memory after it has been deallocated. This can occur during recursive removal of child entries. A local attacker could exploit this flaw to cause memory corruption, potentially leading to a denial of service or arbitrary code execution.
Отчет
A MODERATE severity use-after-free flaw was found in the Linux kernel's eventfs implementation, which affects the Red Hat Enterprise Linux 10 and Red Hat In-Vehicle OS 2 kernels. When eventfs_remove_rec() recursively removes child entries, the list_for_each_entry() iterator advances by reading list.next from the child that was just removed. If free_ei() drops the final reference, release_ei() reuses the list/rcu union to queue an SRCU callback, so the child may already be freed when the iterator reads the next pointer. A local attacker able to trigger eventfs removal, for example via tracefs event teardown, could exploit this race to cause memory corruption; the most realistic consequence is a kernel crash resulting in denial of service. Red Hat rates this flaw MODERATE (CVSS 5.5, availability impact only) rather than the upstream CVE.org severity of IMPORTANT (7.8) because exploitation requires local access, privileges to interact with the tracing subsystem, and winning a narrow race condition. Older Red Hat Enterprise Linux streams (RHEL 6, 7, 8, and 9) do not contain the vulnerable code and are therefore not affected. For the affected RHEL 10 and Red Hat In-Vehicle OS 2 streams the fix is currently deferred: given the local, privilege-gated, and race-dependent nature of the trigger, an out-of-cycle update was not warranted, and the residual risk is a local denial of service through a kernel crash if a user with tracefs access can trigger eventfs teardown.
Меры по смягчению последствий
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 10 | kernel | Fix deferred | ||
| Red Hat Enterprise Linux 6 | kernel | Not affected | ||
| Red Hat Enterprise Linux 7 | kernel | Not affected | ||
| Red Hat Enterprise Linux 7 | kernel-rt | Not affected | ||
| Red Hat Enterprise Linux 8 | kernel | Not affected | ||
| Red Hat Enterprise Linux 8 | kernel-rt | Not affected | ||
| Red Hat Enterprise Linux 9 | kernel | Not affected | ||
| Red Hat Enterprise Linux 9 | kernel-rt | Not affected |
Показывать по
Дополнительная информация
Статус:
EPSS
5.5 Medium
CVSS3
Связанные уязвимости
In the Linux kernel, the following vulnerability has been resolved: eventfs: Fix use-after-free in eventfs_remove_rec() eventfs_remove_rec() recursively removes the child at the current loop position. After the recursive call returns, list_for_each_entry() advances by reading list.next from the removed child. If free_ei() drops the final reference, release_ei() reuses the list/rcu union to queue an SRCU callback. The child may be freed before that read. The eventfs_mutex serializes list updates, but it does not keep the removed child alive or prevent the SRCU callback from running. Use list_for_each_entry_safe() to save the next sibling before recursively removing the current child.
In the Linux kernel, the following vulnerability has been resolved: eventfs: Fix use-after-free in eventfs_remove_rec() eventfs_remove_rec() recursively removes the child at the current loop position. After the recursive call returns, list_for_each_entry() advances by reading list.next from the removed child. If free_ei() drops the final reference, release_ei() reuses the list/rcu union to queue an SRCU callback. The child may be freed before that read. The eventfs_mutex serializes list updates, but it does not keep the removed child alive or prevent the SRCU callback from running. Use list_for_each_entry_safe() to save the next sibling before recursively removing the current child.
In the Linux kernel, the following vulnerability has been resolved: e ...
In the Linux kernel, the following vulnerability has been resolved: eventfs: Fix use-after-free in eventfs_remove_rec() eventfs_remove_rec() recursively removes the child at the current loop position. After the recursive call returns, list_for_each_entry() advances by reading list.next from the removed child. If free_ei() drops the final reference, release_ei() reuses the list/rcu union to queue an SRCU callback. The child may be freed before that read. The eventfs_mutex serializes list updates, but it does not keep the removed child alive or prevent the SRCU callback from running. Use list_for_each_entry_safe() to save the next sibling before recursively removing the current child.
EPSS
5.5 Medium
CVSS3