В ядре Linux устранена следующая уязвимость:
следующий переход: инициализировать extack в nh_res_bucket_migrate()
nh_res_bucket_migrate() передает неинициализированный netlink_ext_ack
call_nexthop_res_bucket_notifiers(). Когда
nh_notifier_res_bucket_info_init() завершается с ошибкой (например, kzalloc возвращает
-ENOMEM), ошибка распространяется обратно до того, как будет установлен какой-либо уведомитель.
extack._msg, а путь ошибки форматирует устаревший указатель с помощью
pr_err_ratelimited("%s\n", extack._msg). С CONFIG_INIT_STACK_NONE
это разыменовывает неинициализированную память стека:
Упс: общая ошибка защиты, вероятно, по неканоническому адресу...
КАСАН: возможно, доступ к дикой памяти в пределах [...]
RIP: 0010:строка (lib/vsprintf.c:730)
vsnprintf (lib/vsprintf.c:2945)
_printk (ядро/printk/printk.c:2504)
nh_res_bucket_migrate (net/ipv4/nexthop.c:1816)
nh_res_table_upkeep (net/ipv4/nexthop.c:1866)
rtm_new_nexthop (net/ipv4/nexthop.c:3323)
rtnetlink_rcv_msg (net/core/rtnetlink.c:7076)
netlink_sendmsg (net/netlink/af_netlink.c:1900)
Паника ядра – не синхронизируется: фатальное исключение
Нулевая инициализация extack, поэтому _msg имеет значение NULL в путях ошибок, которые никогда не устанавливали его.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: nexthop: initialize extack in nh_res_bucket_migrate() nh_res_bucket_migrate() passes an uninitialized netlink_ext_ack to call_nexthop_res_bucket_notifiers(). When nh_notifier_res_bucket_info_init() fails (e.g. the kzalloc returns -ENOMEM), the error is propagated back before any notifier sets extack._msg, and the error path formats the stale pointer with pr_err_ratelimited("%s\n", extack._msg). With CONFIG_INIT_STACK_NONE this dereferences uninitialized stack memory: Oops: general protection fault, probably for non-canonical address ... KASAN: maybe wild-memory-access in range [...] RIP: 0010:string (lib/vsprintf.c:730) vsnprintf (lib/vsprintf.c:2945) _printk (kernel/printk/printk.c:2504) nh_res_bucket_migrate (net/ipv4/nexthop.c:1816) nh_res_table_upkeep (net/ipv4/nexthop.c:1866) rtm_new_nexthop (net/ipv4/nexthop.c:3323) rtnetlink_rcv_msg (net/core/rtnetlink.c:7076) netlink_sendmsg (net/netlink/af_netlink.c:1900) Kernel panic - not syncing: Fatal exception Zero-initialize extack so _msg is NULL on error paths that never set it.
Характеристики атаки
Последствия
Строка CVSS v3.1
Уязвимые продукты 5
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
5.13
|
6.6.148
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
5.13
|
6.12.101
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
5.13
|
6.18.42
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
5.13
|
7.1.6
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
5.13
|
7.2-rc5
|