В ядре Linux устранена следующая уязвимость: ext4: исправить внеграничное чтение в ext4_xattr_inode_dec_ref_all() Есть проблема, которая вы…
В ядре Linux устранена следующая уязвимость: ext4: исправить внеграничное чтение в ext4_xattr_inode_dec_ref_all() Есть проблема, которая выглядит следующим образом: BUG: KASAN: use-after-free в ext4_xattr_inode_dec_ref_all+0x6ff/0x790 Прочитайте размер 4 по адресу fff88807b003000 по задаче syz-executor.0/15172 CPU: 3 PID: 15172 Комм.: syz-executor.0 Трейс по вызову: __dump_stack lib/dump_stack.c:82 [inline] дамп_Стэк+0ксбе/0ксф/либ/dump_stack.c:123 print_address_description.constprop.0+0x1e/0x280 мм/kasan/report.c:400 __kasan_report.cold+0x6c/0x84 mm/kasan/report.c:560 kasan_report+0x3a/0x50 мм/kasan/report.c:585 ext4_xattr_inode_dec_all+0x6ff/0x790 fs/ext4/xattr.c:1137 ext4_xattr_delete_inode+0x4c7/0xda0 fs/ext4/xattr.c:2896 ext4_evict_inode+0xb3b/0x1670 fs/ext4/inode.c:323 evict+0x39f/0x880 fs/inode.c:622 iput_final fs/inode.c:1746 [встроение] iput fs/inode.c:1772 [inline] iput+0x525/0x6c0 fs/inode.c:1758 ext4_orphan_cleanup fs/ext4/super.c:3298 [inline] ext4_fill_super+0x8c57/0xba40 fs/ext4/super.c:5300 mount_bdev+0x355/0x410 fs/super.c:1446 наследие_get_tree+0xfe/0x220 fs/fs_context.c:611 vfs_get_tree+0x8d/0x2f0 fs/super.c:1576 do_new_mount fs/namespace.c:2983 [inline] path_mount_mount_0x119a/0x1ad0 fs/namespace.c:3316 do_mount+0xfc/0x110 fs/namespace.c:3329 __do_sys_mount fs/namespace.c:3540 [inline] __se_sys_mount+0x219/0x2e0 fs/namespace.c:3514 do_syscall_64+0x33/0x40 арка/x86/entry/common.c:46 вход_SYSCALL_64_after_hwframe+0x67/0xd1 Помнография вокруг адреса багги: ffff8807b002f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8807b002f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ff8807b003000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ^ ffff88807b003080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff fff88807b003100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff Выше проблема происходит как ext4_xattr_delete_inode() не проверяет xattr Он действителен, если xattr находится в indo. Чтобы решить выше проблему вызов xattr_check_inode() проверить, если xattr действителен В иноде. На самом деле, мы можем напрямую проверить в ext4_iget_extra_inode(), чтобы не было дивергентной проверки.
Продукт читает данные за пределами конца или до начала предназначенного буфера.
https://cwe.mitre.org/data/definitions/125.html →Открыть в коллекции CWE →Злоумышленник атакует цель, передавая входные данные, вынуждающие приложение читать за пределами границы определённого буфера. Как правило, это происходит, когда значение, определяющее начало или конец чтения, установлено на позиции за пределами допустимой области памяти буфера. Атака данного типа может привести к раскрытию конфиденциальной информации, аварийному завершению работы системы или выполнению произвольного кода.
https://capec.mitre.org/data/definitions/540.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-6.1 | Отслеживается | |
| linux-allwinner-5.19 | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается |