CVE-2024-49993

Оценки

EPSS

0.000нет0.0%
0%20%40%60%80%100%

Процентиль: 0.0%

CVSS

5.5средний3.x
0246810

Оценка CVSS: 5.5/10

Все оценки CVSS

CVSS 3.x
5.5

Вектор: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Описание

В ядре Linux была устранена следующая уязвимость:
iommu/vt-d: Исправлена потенциальная блокировка, если qi_submit_sync вызывается с 0 count
Если qi_submit_sync (sync) вызывается с 0 дескрипторами недействительности (для
Например, для целей DMA дренирования), мы можем столкнуться с багом, где
отправка ниток не обнаруживает завершения invalidation_wait.
Впоследствии это привело к мягкой мизерной локации. В настоящее время нет никакого влияния
по этой ошибке на существующих пользователях, потому что никто не отправляет
недействительные с 0 дескрипторами. Это решение позволит будущим пользователям
(например, DMA drain) вызов qi_submit_sync (sync) с 0 числом.
Предположим, что резьба T1 вызывает qi_submit_sync (синхронизация) с ненужными дескрипторами, в то время как
В то же время поток T2 вызывает qi_submit_sync (() с нулевыми дескрипторами. Оба варианта
потоки затем введите петлю время, ожидая соответствующих дескрипторов
чтобы завершить. T1 обнаруживает его завершение (т.е. статус t1 invalidation_wait
изменения в QI_DONE by HW) и переходит к вызову reclaim_free_desc() в
восстановить все дескрипторы, потенциально включая смежные другие
потоки, которые также помечены как QI_DONE.
В течение этого времени, в то время как T2 ждет приобретения qi->q_lock, IOMMU
аппаратное обеспечение может завершить недействительность для T2, устанавливая его статус
QI_DONE. Однако, если исполнение T1 reclaim_free_desc () освобождает T2’s
invalidation_wait descriptor и изменяет свой статус на QI_FREE, T2 будет
не соблюдайте статус QI_DONE для его недействительности_ждать и будет
На неопределенный срок застряли.
Этот мягкий замок не возникает, когда только ненулевые дескрипторы
Представленные.В таких случаях дескрипторы признания недействительными перемежаются между
ждать дескрипторов со статусом QI_IN_USE, выступая в качестве барьеров. Эти
барьеры препятствуют отказу кода от ошибочного освобождения дескрипторов
Принадлежит другим подателям.
Рассмотрены следующие примеры сроков:
Т1Т2
* *
ID1 (ID1)
WD1 - хм
while (WD1!QI_DONE)
Разблокировать
Замки замка
WD1-QI_DONEWD2 - , , , , , , , , , , ,
while (WD2!-QI_DONE) -
Разблокировать
Замки замка
WD1-QI_DONE?
ID1-QI_DONEWD2-DONE

reclaim ()
ID1 , , , , , , ,
WD1 , БЕСПЛАТНО
WD2, БЕСПЛАТНО
Разблокировать
мягкая лавка! T2 никогда не видит QI_DONE в WD2
Где:
Идентификатор - дескриптор недействительности
WD - описатель ожидания
* Написано с помощью аппаратного обеспечения
Корень проблемы заключается в том, что используется статус дескриптора QI_DONE флаг
для двух конфликтных целей:
1. сигнал дескриптор готов к рекуперации (освободиться)
2. сигнал оборудованием, что дескриптор ожидания завершен
Решение (в этом патче) - разделение состояния с помощью флага QI_FREE
за 1 фунт.
Как только дескрипторы недействительности потока будут завершены, их статус будет
быть включен в QI_FREE. Функция reclaim_free_desc () только тогда
бесплатные дескрипторы, отмеченные как QI_FREE, вместо тех, которые помечены как
QI_DONE. Это изменение гарантирует, что T2 (из предыдущего примера) будет
правильно соблюдать завершение его invalidation_wait (отмечено как
QI_DONE (англ.).

Сканер-ВС 7 — современное решение для управления уязвимостями

Использует эту базу данных для обнаружения уязвимостей. Высокая скорость поиска, кроссплатформенность, продвинутый аудит конфигурации и гибкая фильтрация. Подходит для организаций любого масштаба.
Подробнее о Сканер-ВС 7

Источники

ubuntu

Уязвимое ПО (157)

Тип: Конфигурация

Продукт: linux

Операционная система: ubuntu bionic 18.04

Характеристика:
{  "unfixed": true}

Источник: ubuntu

Тип: Конфигурация

Продукт: linux

Операционная система: ubuntu focal 20.04

Характеристика:
{  "unfixed": true}

Источник: ubuntu

Тип: Конфигурация

Продукт: linux

Операционная система: ubuntu jammy 22.04

Характеристика:
{  "unaffected": true}

Источник: ubuntu

Тип: Конфигурация

Продукт: linux

Операционная система: ubuntu trusty 14.04

Характеристика:
{  "unfixed": true}

Источник: ubuntu

Тип: Конфигурация

Продукт: linux

Операционная система: ubuntu xenial 16.04

Характеристика:
{  "unfixed": true}

Источник: ubuntu

Тип: Конфигурация

Продукт: linux-allwinner-5.19

Операционная система: ubuntu jammy 22.04

Характеристика:
{  "unfixed": true}

Источник: ubuntu

Тип: Конфигурация

Продукт: linux-aws

Операционная система: ubuntu bionic 18.04

Характеристика:
{  "unfixed": true}

Источник: ubuntu

Тип: Конфигурация

Продукт: linux-aws

Операционная система: ubuntu focal 20.04

Характеристика:
{  "unfixed": true}

Источник: ubuntu

Тип: Конфигурация

Продукт: linux-aws

Операционная система: ubuntu jammy 22.04

Характеристика:
{  "unaffected": true}

Источник: ubuntu

Тип: Конфигурация

Продукт: linux-aws

Операционная система: ubuntu trusty 14.04

Характеристика:
{  "unfixed": true}

Источник: ubuntu