В ядре Linux устранена следующая уязвимость: mm/slab: Добавить alloc_tagging_slab_free_крюк для memcg_alloc_abort_single Когда включено CON…
В ядре Linux устранена следующая уязвимость: mm/slab: Добавить alloc_tagging_slab_free_крюк для memcg_alloc_abort_single Когда включено CONFIG_MEM_ALLOC_PROFILING_DEBUG, следующее предупреждение Можно заметить: [ 3959.023862] ----------------------------------------------------------------------- [ 3959.023891] alloc_tag не был очищен (получил тег для lib/xarray.c:378) [ 3959.023947] ВНИМАНИЕ: ./incle/linux/alloc_tag.h:155 по адресу alloc_tag_add+0x128/0x178, CPU#6: mkfs.ntfs/113998 [ 3959.023978] Модули, связанные в: dns_resolver tun terlay extat btrfs blake2b libblake2b xor xor_neon raid6_pq loop sctp ip6_udp_tunnel ext4 crc16 mbcache jbd2 rfkill sunrpc vfat fat fat fuse nfnetlink sr_mod virtio_gpu cd_client_lib virtio_dma_buf drm_shmem_helper drm_kms_helper ghash_ce drm sm4 подсветка virtio_net net_failover virtio_scsi отказ virtio_console virtio_blk virtio_mio dm_me_blk [последний разгружен: hwpoison_inject] [ 3959.024170] CPU: 6 UID: 0 PID: 113998 Comm: mkfs.ntfs Kdump: загруженный испорченный: G W 6.19.0-rc7+ #7 ПРЕМПТ (добровольный) [ 3959.024182] Испорченный: [W]=ПРЕДУПРЕЖДЕН [ 3959.024186] Название оборудования: QEMU KVM Virtual Machine, BIOS unknown 2/2/2022 [ 3959.021492] pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 3959.024199] pc : alloc_tag_add+0x128/0x178 [ 3959.024207] lr : alloc_tag_add+0x128/0x178 [ 3959.024214] sp : ffff80008b696d60 [ 3959.024219] x29: ffff80008b696d60 x28: 0000000000000000000 x27: 0000000000000240 [ 3959.024232] x26: 000000000000000 x25: 000000000000240 x24: ffff800085d17800 [ 3959.024245] x23: 0000000000402800 x22: ffff00000c0012dc0 x21: 00000000000002d0 [ 3959.024257] х20: ffff00000e6ef3318 x19: ffff800085ae0410 x18: 00000000000000 [ 3959.024269] x17: 000000000000000 x16: 000000000000000 x15: 000000000000000 [ 3959.024281] x14: 000000000000000 x13: 00000000000001 x12: ff9000064101293 [ 3959.024292] x11: 1fffe00064101292 x10: ffff600064101292 x9 : fff80000000000 [ 3959.024305] x8 : 00009ff9befed6e x7 : ffff00032089493 x6 : 0000000000000001 [ 3959.024316] х5 : ffff000320809490 x4 : ffx600064101293 x3 : fff800080969838 [ 3959.024328] x2 : 000000000000000 x1 : 000000000000000 x0 : ffffff00000d5bcd640 [ 3959.024340] Отслеживания вызова: [ 3959.024346] alloc_tag_add+0x128/0x178 (P) [ 3959.024355] __alloc_tagging_slab_alloc_hook+0x11c/0x1a8 [ 3959.024362] kmm_cache_alloc_lru_noprof+0x1b8/0x5e8 [ 3959.024369] xas_alloc+0x304/0x4f0 [ 3959.024381] xas_create+0x1e0/0x4a0 [ 3959.024388] xas_store+0x68/0xda8 [ 3959.024395] __filemap_add_folio+0x5b0/0xbd8 [ 3959.024409] filem_add_folio+0x16c/0x7e0 [ 3959.024416] __filemap_get_folio_mpol+0x2dc/0x9e8 [ 3959.024424] iomap_get_folio+0xfc/0x180 [ 3959.024435] __iomap_get_folio+0x2f8/0x4b8 [ 3959.024441] iomap_write_begin+0x198/0xc18 [ 3959.024448] iomap_write_iter+0x2ec/0x8f8 [ 3959.024454] iomap_file_buffered_write+0x19c/0x290 [ 3959.024461] blkdev_write_iter+0x38c/0x978 [ 3959.024470] vfs_write+0x4d4/0x928 [ 3959.024482] ksys_write+0xfc/0x1f8 [ 3959.024489] ___arm64_sys_write+0x74/0xb0 [ 3959.024496] ec-_syscall+0xd4/0x258 [ 3959.024507] el0_svc_common.constprop.0+0xb4/0x240 [ 3959.024514] do_el0_svc+0x48/0x68 [ 3959.024520] el0_svc+0x40/0xf8 [ 3959.024526] el0t_64_sync_handler+0xa0/0xe8 [ 3959.024533] el0t_64_sync+0x1ac/0x1b0 [ 3959.024540] ----[ Конец следа 00000000000000000 ]---- Когда __memcg_slab_post_alloc_hook() терпит неудачу, есть два разных свободные пути в зависимости от размера == 1 или размера != 1. В kmem_cache_free_bulk() путь, мы называем alloc_tagging_slab_free_hook(). Однако в memcg_alloc_abort_single() мы этого не делаем, вышеупомянутым предупреждением будет Срабатывание на следующем распределении. Поэтому добавьте alloc_tagging_slab_free_hook() в memcg_alloc_aort_single() путь.
Программный продукт не освобождает ресурс после окончания его эффективного жизненного цикла, то есть после того, как ресурс более не нужен.
https://cwe.mitre.org/data/definitions/772.html →Открыть в коллекции CWE →Злоумышленник выполняет флудинг на уровне HTTP с целью вывода из строя конкретного веб-приложения, а не всего, что прослушивает TCP/IP-соединение. При данной атаке типа «отказ в обслуживании» требуется значительно меньше пакетов, что затрудняет её обнаружение. Это аналог SYN-флуда в HTTP. Идея состоит в том, чтобы поддерживать HTTP-сессию неограниченно долго, а затем повторить это сотни раз. Атака нацелена на слабости программного обеспечения веб-сервера, связанные с исчерпанием ресурсов. Веб-сервер ожидает ответов злоумышленника в рамках инициированных HTTP-сессий, тогда как потоки соединений истощаются.
https://capec.mitre.org/data/definitions/469.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux_kernel | * | Отслеживается |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.18 | Отслеживается | |
| kernel-doc-6.18 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.18 | Отслеживается | |
| kernel-headers-modules-6.18 | Отслеживается | |
| kernel-headers-modules-pine | Отслеживается |