В ядре Linux устранена следующая уязвимость: dm: вызов метода resume при внутренней приостановке Имеется сообщение о сбое при экспериментир…
В ядре Linux устранена следующая уязвимость: dm: вызов метода resume при внутренней приостановке Имеется сообщение о сбое при экспериментировании с набором тестов lvm2. Повреждение списка вызвано тем, что методы postsuspend и resume не были правильно сопряжены; было два последовательных вызова функции origin_postsuspend. Второй вызов пытается удалить запись «hash_list» из списка, в то время как она уже была удалена первым вызовом. Исправлена ошибка в __dm_internal_resume, чтобы она вызывала методы preresume и resume целевых объектов таблицы. Если метод preresume какого-либо целевого объекта завершается неудачно, мы оказываемся в затруднительной ситуации. Мы не можем вернуть ошибку, потому что dm_internal_resume не должен возвращать ошибки. Мы не можем вернуть успех, потому что в этом случае методы «resume» и «postsuspend» не будут правильно сопряжены. Поэтому мы устанавливаем флаг DMF_SUSPENDED и имитируем нормальную приостановку - это может запутать инструменты пользовательского пространства, но не вызовет сбоя ядра. ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:56! invalid opcode: 0000 [#1] PREEMPT SMP CPU: 1 PID: 8343 Comm: dmsetup Not tainted 6.8.0-rc6 #4 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014 RIP: 0010:__list_del_entry_valid_or_report+0x77/0xc0 <snip> RSP: 0018:ffff8881b831bcc0 EFLAGS: 00010282 RAX: 000000000000004e RBX: ffff888143b6eb80 RCX: 0000000000000000 RDX: 0000000000000001 RSI: ffffffff819053d0 RDI: 00000000ffffffff RBP: ffff8881b83a3400 R08: 00000000fffeffff R09: 0000000000000058 R10: 0000000000000000 R11: ffffffff81a24080 R12: 0000000000000001 R13: ffff88814538e000 R14: ffff888143bc6dc0 R15: ffffffffa02e4bb0 FS: 00000000f7c0f780(0000) GS:ffff8893f0a40000(0000) knlGS:0000000000000000 CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 CR2: 0000000057fb5000 CR3: 0000000143474000 CR4: 00000000000006b0 Call Trace: <TASK> ? die+0x2d/0x80 ? do_trap+0xeb/0xf0 ? __list_del_entry_valid_or_report+0x77/0xc0 ? do_error_trap+0x60/0x80 ? __list_del_entry_valid_or_report+0x77/0xc0 ? exc_invalid_op+0x49/0x60 ? __list_del_entry_valid_or_report+0x77/0xc0 ? asm_exc_invalid_op+0x16/0x20 ? table_deps+0x1b0/0x1b0 [dm_mod] ? __list_del_entry_valid_or_report+0x77/0xc0 origin_postsuspend+0x1a/0x50 [dm_snapshot] dm_table_postsuspend_targets+0x34/0x50 [dm_mod] dm_suspend+0xd8/0xf0 [dm_mod] dev_suspend+0x1f2/0x2f0 [dm_mod] ? table_deps+0x1b0/0x1b0 [dm_mod] ctl_ioctl+0x300/0x5f0 [dm_mod] dm_compat_ctl_ioctl+0x7/0x10 [dm_mod] __x64_compat_sys_ioctl+0x104/0x170 do_syscall_64+0x184/0x1b0 entry_SYSCALL_64_after_hwframe+0x46/0x4e RIP: 0033:0xf7e6aead <snip> ---[ end trace 0000000000000000 ]---
Продукт разыменовывает указатель, который предполагается допустимым, однако оказывается равным NULL.
https://cwe.mitre.org/data/definitions/476.html →Открыть в коллекции CWE →Продукт получает входные данные от вышестоящего компонента, однако не ограничивает или некорректно ограничивает их перед использованием в качестве идентификатора ресурса, который может находиться за пределами предполагаемой сферы управления.
https://cwe.mitre.org/data/definitions/99.html →Открыть в коллекции CWE →Данный шаблон атаки предполагает вызов переполнения буфера путём манипуляции переменными окружения. Обнаружив возможность изменить переменную окружения, злоумышленник может попытаться переполнить связанные с ней буферы. Атака использует неявное доверие, которое нередко оказывается переменным окружения.
https://capec.mitre.org/data/definitions/10.html →Открыть в коллекции CAPEC →Как правило, это файлы, редактируемые вручную и не находящиеся в зоне видимости системных администраторов. Любая возможность злоумышленника изменять эти файлы, например в репозитории CVS, предоставляет несанкционированный доступ непосредственно к приложению — такой же, как у авторизованных пользователей.
https://capec.mitre.org/data/definitions/75.html →Открыть в коллекции CAPEC →Злоумышленник эксплуатирует слабости в проверке входных данных, манипулируя идентификаторами ресурсов, что позволяет непредвиденно изменять или указывать ресурс.
https://capec.mitre.org/data/definitions/240.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| kernel | Отслеживается | |
| kernel | Отслеживается | |
| kernel | Отслеживается | |
| kernel | Отслеживается | |
| kernel-rt | Отслеживается | |
| kernel-rt | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-5.10 | Отслеживается |