В ядре Linux устранена следующая уязвимость:
svcrdma: отклонять списки чтения, превышающие бюджет страницы. Длины отдельных сегментов чтения проверяются во время декодирования, но
ничто не мешает запрашивающей стороне отправить несколько сегментов,
совокупная длина превышает бюджет массива rq_pages. Когда один
сегмент точно заполняет массив страниц, защита времени выполнения в
svc_rdma_build_read_segment() игнорируется, поскольку len достигает нуля.
Последующий сегмент затем обращается к NULL-сигнальному слоту по адресу
rq_pages[rq_maxpages], что приводит к разыменованию нулевого указателя во время
Отображение DMA. Накопить страницы во всех сегментах чтения и отклонить сообщение в
время декодирования, когда общая сумма переполнит бюджет страницы.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: svcrdma: Reject Read lists that exceed the page budget Individual Read segment lengths are validated at decode time, but nothing prevents a requester from sending multiple segments whose cumulative length exceeds the rq_pages array budget. When one segment fills the page array exactly, the runtime guard in svc_rdma_build_read_segment() is bypassed because len reaches zero. A subsequent segment then accesses the NULL sentinel slot at rq_pages[rq_maxpages], resulting in a NULL pointer dereference during DMA mapping. Accumulate pages across all Read segments and reject the message at decode time when the total would overflow the page budget.
Характеристики атаки
Последствия
Строка CVSS v3.1