В ядре Linux устранена следующая уязвимость: sysv: не вызывайте sb_bread() с удерживаемым pointers_lock syzbot сообщает о сне в атомарном к…
В ядре Linux устранена следующая уязвимость: sysv: не вызывайте sb_bread() с удерживаемым pointers_lock syzbot сообщает о сне в атомарном контексте в файловой системе SysV [1], поскольку sb_bread() вызывается с удержанным rw_spinlock. Ошибка "write_lock(&pointers_lock) => read_lock(&pointers_lock) deadlock" и ошибка "sb_bread() с write_lock(&pointers_lock)" были внесены "Replace BKL for chain locking with sysvfs-private rwlock" в Linux 2.5.12. Затем "[PATCH] err1-40: sysvfs locking fix" в Linux 2.6.8 исправил предыдущую ошибку, переместив блокировку pointers_lock к вызывающим сторонам, но вместо этого внес ошибку "sb_bread() с read_lock(&pointers_lock)" (что сделало эту проблему более вероятной). Al Viro предположил, что почему бы не сделать так, как get_branch()/get_block()/ find_shared() в файловой системе Minix. И сделать так - это почти откат "[PATCH] err1-40: sysvfs locking fix", за исключением того, что get_branch() из find_shared() вызывается без write_lock(&pointers_lock).
Программный продукт не обеспечивает надлежащего захвата или освобождения блокировки ресурса, что приводит к непредвиденным изменениям состояния ресурса и нештатному поведению.
https://cwe.mitre.org/data/definitions/667.html →Открыть в коллекции CWE →Продукт содержит несколько потоков или исполняемых сегментов, ожидающих освобождения необходимой блокировки друг другом, что приводит к взаимоблокировке.
https://cwe.mitre.org/data/definitions/833.html →Открыть в коллекции CWE →Злоумышленник провоцирует и эксплуатирует состояние взаимоблокировки в целевом программном обеспечении, чтобы вызвать отказ в обслуживании. Взаимоблокировка может возникнуть, когда два или более конкурирующих действия ожидают завершения друг друга и в итоге ни одно из них не завершается. Состояния взаимоблокировки бывает сложно обнаружить.
https://capec.mitre.org/data/definitions/25.html →Открыть в коллекции CAPEC →Злоумышленник нацеливается на состояние гонки, возникающее когда несколько процессов одновременно обращаются к одному ресурсу и манипулируют им, а результат выполнения зависит от конкретного порядка этих обращений. Злоумышленник может эксплуатировать состояние гонки, «участвуя в гонке»: изменяя ресурс и нарушая нормальный порядок выполнения. Например, состояние гонки может возникнуть при обращении к файлу: злоумышленник может обмануть систему, подменив исходный файл своей версией и заставив систему прочитать вредоносный файл.
https://capec.mitre.org/data/definitions/26.html →Открыть в коллекции CAPEC →Данная атака эксплуатирует использование символических ссылок (Symlink) для записи в конфиденциальные файлы. Злоумышленник может создать символическую ссылку на целевой файл, к которому у него нет прямого доступа. Когда привилегированная программа пытается создать временный файл с тем же именем, что и символическая ссылка, она фактически записывает данные в целевой файл, на который указывает символическая ссылка злоумышленника. Если злоумышленник может поместить вредоносное содержимое во временный файл, он тем самым запишет его в конфиденциальный файл через символическую ссылку. Состояние гонки возникает потому, что система проверяет существование временного файла, а затем создаёт его. Злоумышленник, как правило, создаёт символическую ссылку в промежутке между проверкой и созданием временного файла.
https://capec.mitre.org/data/definitions/27.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-5.15 | Отслеживается | |
| linux-5.15 | Отслеживается | |
| linux-allwinner-5.19 | Отслеживается | |
| linux-aws | Отслеживается |