In the Linux kernel, the following vulnerability has been resolved: net/rds: handle zerocopy send cleanup before the message is queued A zerocopy send can fail after user pages have been pinned but before the message is attached to the sending socket. The purge path currently infers zerocopy state from rm->m_rs, so an unqueued message can be cleaned up as if it owned normal payload pages. However, zerocopy ownership is really determined by the presence of op_mmp_znotifier, regardless of whether the message has reached the socket queue. Capture op_mmp_znotifier up front in rds_message_purge() and use it as the cleanup discriminator. If the message is already associated with a socket, keep the existing completion path. Otherwise, drop the pinned page accounting directly and release the notifier before putting the payload pages. This keeps early send failure cleanup consistent with the zerocopy lifetime rules without changing the normal queued completion path.
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: net/rds: manejar la limpieza de envío de zerocopy antes de que el mensaje sea encolado Un envío zerocopy puede fallar después de que las páginas de usuario hayan sido fijadas pero antes de que el mensaje sea adjuntado al socket de envío. La ruta de purga actualmente infiere el estado zerocopy de rm->m_rs, por lo que un mensaje no encolado puede ser limpiado como si poseyera páginas de carga útil normales. Sin embargo, la propiedad zerocopy es realmente determinada por la presencia de op_mmp_znotifier, independientemente de si el mensaje ha llegado a la cola del socket. Capturar op_mmp_znotifier de antemano en rds_message_purge() y usarlo como discriminador de limpieza. Si el mensaje ya está asociado con un socket, mantener la ruta de finalización existente. De lo contrario, descartar la contabilidad de páginas fijadas directamente y liberar el notificador antes de colocar las páginas de carga útil. Esto mantiene la limpieza temprana de fallos de envío consistente con las reglas de vida útil de zerocopy sin cambiar la ruta de finalización encolada normal.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
| Attack Vector | LOCAL |
|---|---|
| Attack Complexity | LOW |
| Privileges Required | LOW |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | HIGH |
| Integrity Impact | HIGH |
| Availability Impact | HIGH |
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Type: Secondary
Exploitability Score: 1.8
Impact Score: 5.9
| Source | Type | Description |
|---|---|---|
| [email protected] | Primary |
en
NVD-CWE-noinfo
|
| 134c704f-9b21-4f2e-91b3-4a467353bcc0 | Secondary |
en
CWE-401
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36b1c86c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd3408f5d80> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd3408f6900> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd386756dc0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36b1c8900> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36b1c82c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd3408f7b00> | Operating System |
| linux | linux_kernel | 7.1 | <built-in method update of dict object at 0x7fd2d8321340> | Operating System |
| linux | linux_kernel | 7.1 | <built-in method update of dict object at 0x7fd3408f5980> | Operating System |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:* |