В ядре Linux устранена следующая уязвимость:
drbd: исправлено разыменование нулевого указателя при локальной ошибке чтения
В drbd_request_endio() READ_COMPLETED_WITH_ERROR передается
__req_mod() с NULL одноранговым устройством:
__req_mod(req, что, NULL, &m);
Затем обработчик READ_COMPLETED_WITH_ERROR безоговорочно передает это
NULL Peer_device в drbd_set_out_of_sync(), который разыменовывает его,
вызывая разыменование нулевого указателя.
Исправьте это, получив одноранговое устройство через first_peer_device(device),
соответствует тому, как drbd_req_destroy() обрабатывает ту же ситуацию.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: drbd: fix null-pointer dereference on local read error In drbd_request_endio(), READ_COMPLETED_WITH_ERROR is passed to __req_mod() with a NULL peer_device: __req_mod(req, what, NULL, &m); The READ_COMPLETED_WITH_ERROR handler then unconditionally passes this NULL peer_device to drbd_set_out_of_sync(), which dereferences it, causing a null-pointer dereference. Fix this by obtaining the peer_device via first_peer_device(device), matching how drbd_req_destroy() handles the same situation.