В ядре Linux устранена следующая уязвимость:
rxrpc: rxrpc_verify_data обеспечивает выделение rx_dec_buffer
rxrpc_recvmsg_data() вызывает rxrpc_verify_data() всякий раз, когда
rxrpc_call.rx_dec_buffer не распределен и предполагает, что
успешный возврат того, что rx_dec_buffer должен быть выделен. Однако rxrpc_verify_data() не запрашивает выделение, если
rxrpc_skb_priv.len равен нулю. Кроме того, отказ от выделения rx_dec_buffer приведет к
вызов skb_copy_bits() с назначением NULL, который может
вызвать разыменование NULL-указателя.
Чтобы предотвратить эти проблемы, rxrpc_verify_data() изменен на
всегда пытайтесь выделить rxrpc_call.rx_dec_buffer, если он
НУЛЬ. Эта проблема была выявлена при содействии частного
экземпляр сашико.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: rxrpc: rxrpc_verify_data ensure rx_dec_buffer alloc rxrpc_recvmsg_data() calls rxrpc_verify_data() whenever the rxrpc_call.rx_dec_buffer is unallocated and assumes that upon successful return that rx_dec_buffer must be allocated. However, rxrpc_verify_data() does not request an allocation if the rxrpc_skb_priv.len is zero. In addition, failure to allocate rx_dec_buffer will result in a call to skb_copy_bits() with a NULL destination which can trigger a NULL pointer dereference. To prevent these issues rxrpc_verify_data() is modified to always attempt to allocate the rxrpc_call.rx_dec_buffer if it is NULL. This issue was identified with assistance of a private sashiko instance.
Характеристики атаки
Последствия
Строка CVSS v3.1