漏洞标题
um:在时间旅行模式下解决sched_yield 不及时让步的问题
漏洞描述信息
## 概述
在Linux内核中,解决了一个在时间旅行模式下`sched_yield`系统调用不会真正导致调度的问题。这个问题在使用时间旅行模式时可能导致系统严重变慢或死锁。
## 影响版本
未具体指定版本,但影响使用时间旅行模式(time-travel mode)的Linux内核版本。
## 细节
当用户空间调用`sched_yield`时,在时间旅行模式下不会真正导致调度,因为时间没有实际上的变化。在已知的情况中,这似乎是一个在ASAN中的用户空间自旋锁实现不当导致的问题。这在时间旅行模式下导致了异常缓慢的系统反应甚至死锁,具体取决于内核配置`CONFIG_UML_MAX_USERSPACE_ITERATIONS`。
为了解决这个问题,在用户空间调用`sched_yield`系统调用时,为进程计时。
## 影响
在使用时间旅行模式的系统中,可能导致严重的性能下降或死锁,尤其是在启动了特定内核配置选项`CONFIG_UML_MAX_USERSPACE_ITERATIONS`的系统中。
CVSS信息
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
漏洞类别
检查时间与使用时间(TOCTOU)的竞争条件
漏洞标题
um: work around sched_yield not yielding in time-travel mode
漏洞描述信息
In the Linux kernel, the following vulnerability has been resolved:
um: work around sched_yield not yielding in time-travel mode
sched_yield by a userspace may not actually cause scheduling in
time-travel mode as no time has passed. In the case seen it appears to
be a badly implemented userspace spinlock in ASAN. Unfortunately, with
time-travel it causes an extreme slowdown or even deadlock depending on
the kernel configuration (CONFIG_UML_MAX_USERSPACE_ITERATIONS).
Work around it by accounting time to the process whenever it executes a
sched_yield syscall.
CVSS信息
N/A
漏洞类别
N/A