CVE-2025-38628 in Linux
Сводка
по VulDB • 28.06.2026
В ядре Linux устранена следующая уязвимость:
vdpa/mlx5: Исправлено освобождение неинициализированных ресурсов на пути обработки ошибок.
Коммит в теге fixes гарантирует, что mlx5_vdpa_free() является единственной точкой входа для удаления ресурсов устройства vdpa, добавленных функцией mlx5_vdpa_dev_add(), даже при выполнении очистки внутри mlx5_vdpa_dev_add().
Это означает, что все функции из mlx5_vdpa_free() должны уметь обрабатывать неинициализированные ресурсы. Однако ранее это было не так: функции mlx5_vdpa_destroy_mr_resources() и mlx5_cmd_cleanup_async_ctx() не могли этого делать. Это приводило к сбою (splat), описанному ниже, при добавлении устройства vdpa без MAC-адреса.
Данный патч исправляет оставшиеся проблемы:
- Заставляет функцию mlx5_vdpa_destroy_mr_resources() преждевременно завершать работу, если она вызывается для неинициализированных ресурсов. - Перемещает инициализацию контекста асинхронных команд (mlx5_cmd_init_async_ctx()) на более ранний этап добавления устройства, поскольку эта операция не может завершиться ошибкой. Это означает, что mlx5_cmd_cleanup_async_ctx() также не может завершиться с ошибкой. Для сохранения симметрии вызов функции mlx5_cmd_cleanup_async_ctx() перемещен в функцию mlx5_vdpa_free().
В функцию mlx5_vdpa_free() добавлено дополнительное примечание для документирования ожиданий относительно функций, вызываемых из этого контекста.
Сбой (Splat):
mlx5_core 0000:b5:03.2: mlx5_vdpa_dev_add:3950:(pid 2306) warning: No mac address provisioned? ------------[ cut here ]------------
WARNING: CPU: 13 PID: 2306 at kernel/workqueue.c:4207 __flush_work+0x9a/0xb0 [...]
Call Trace: <TASK> ? __try_to_del_timer_sync+0x61/0x90 ? __timer_delete_sync+0x2b/0x40 mlx5_vdpa_destroy_mr_resources+0x1c/0x40 [mlx5_vdpa]
mlx5_vdpa_free+0x45/0x160 [mlx5_vdpa]
vdpa_release_dev+0x1e/0x50 [vdpa]
device_release+0x31/0x90 kobject_cleanup+0x37/0x130 mlx5_vdpa_dev_add+0x327/0x890 [mlx5_vdpa]
vdpa_nl_cmd_dev_add_set_doit+0x2c1/0x
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.