In the Linux kernel, the following vulnerability has been resolved: crypto: virtio - Add spinlock protection with virtqueue notification When VM boots with one virtio-crypto PCI device and builtin backend, run openssl benchmark command with multiple processes, such as openssl speed -evp aes-128-cbc -engine afalg -seconds 10 -multi 32 openssl processes will hangup and there is error reported like this: virtio_crypto virtio0: dataq.0:id 3 is not a head! It seems that the data virtqueue need protection when it is handled for virtio done notification. If the spinlock protection is added in virtcrypto_done_task(), openssl benchmark with multiple processes works well.
Se ha resuelto la siguiente vulnerabilidad en el kernel de Linux: crypto: virtio - Añadir protección con spinlock con notificación de virtqueue Cuando una VM arranca con un dispositivo PCI virtio-crypto y un backend integrado, ejecutar el comando de benchmark de OpenSSL con múltiples procesos, como openssl speed -evp aes-128-cbc -engine afalg -seconds 10 -multi 32 los procesos de OpenSSL se colgarán y se reporta un error como este: virtio_crypto virtio0: dataq.0:id 3 is not a head! Parece que el virtqueue de datos necesita protección cuando se maneja para la notificación de finalización de virtio. Si se añade la protección con spinlock en virtcrypto_done_task(), el benchmark de OpenSSL con múltiples procesos funciona correctamente.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
| Attack Vector | LOCAL |
|---|---|
| Attack Complexity | LOW |
| Privileges Required | LOW |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | NONE |
| Integrity Impact | NONE |
| Availability Impact | HIGH |
| Source | Type | Description |
|---|---|---|
| [email protected] | Primary |
en
NVD-CWE-noinfo
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x7f7636c0ff80> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7f763a7e24c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7f763a7e0fc0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7f763a7e0900> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7f7636c0dd80> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7f7636c0e700> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7f763a7e2840> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7f763a7e2000> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7f763a7e22c0> | 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:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |