Podatność w podsystemie TLS jądra Linux dotyczy nieprawidłowej obsługi sytuacji, gdy kolejka żądań kryptograficznych jest pełna i zwracany jest kod -EBUSY zamiast -EINPROGRESS. Błąd może prowadzić do niestabilności systemu lub innych poważnych skutków, co przy ocenie CVSS 9.8 klasyfikuje go jako krytyczny.
▸ Pokaż oryginał (EN)
In the Linux kernel, the following vulnerability has been resolved: net: tls: handle backlogging of crypto requests Since we're setting the CRYPTO_TFM_REQ_MAY_BACKLOG flag on our requests to the crypto API, crypto_aead_{encrypt,decrypt} can return -EBUSY instead of -EINPROGRESS in valid situations. For example, when the cryptd queue for AESNI is full (easy to trigger with an artificially low cryptd.cryptd_max_cpu_qlen), requests will be enqueued to the backlog but still processed. In that case, the async callback will also be called twice: first with err == -EINPROGRESS, which it seems we can just ignore, then with err == 0. Compared to Sabrina's original patch this version uses the new tls_*crypt_async_wait() helpers and converts the EBUSY to EINPROGRESS to avoid having to modify all the error handling paths. The handling is identical.
Gdy flaga CRYPTO_TFM_REQ_MAY_BACKLOG jest ustawiona dla żądań do API kryptograficznego, funkcje crypto_aead_encrypt i crypto_aead_decrypt mogą zwrócić kod -EBUSY zamiast -EINPROGRESS w sytuacjach, gdy kolejka cryptd (np. dla AESNI) jest zapełniona. Żądania są wówczas umieszczane w backlogu i przetwarzane asynchronicznie, jednak asynchroniczny callback jest wywoływany dwukrotnie — najpierw z błędem -EINPROGRESS, a następnie z wartością 0 (sukces). Oryginalny kod nie obsługiwał poprawnie tego scenariusza, co skutkowało błędem typu CWE-755 (niewłaściwa obsługa wyjątkowych warunków).
Atakujący zdalny, bez uwierzytelnienia, może potencjalnie doprowadzić do naruszenia poufności, integralności oraz dostępności systemu, co odpowiada pełnemu kompromitowaniu zgodnie z wektorem CVSS 9.8.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — poprawki zostały opublikowane jako commity w stabilnym repozytorium jądra Linux pod adresami wskazanymi w sekcji referencji. Zaleca się aktualizację jądra do wersji zawierającej wymienione łatki.
Jądro Linux (Linux Kernel) — konkretne wersje wskazane w referencjach producenta (commity dostępne w repozytorium kernel.org)
Poprawka bazuje na pomocnikach tls_*crypt_async_wait() i konwertuje kod błędu EBUSY na EINPROGRESS, eliminując konieczność modyfikacji wszystkich ścieżek obsługi błędów. W opisie wymieniono Sabrinę jako autorkę oryginalnej wersji patcha.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux Kernel
OSLinux4.16.0 – 6.1.84 (bez)6.2.0 – 6.6.18 (bez)6.7.0 – 6.7.6 (bez)
Powiązane podatności
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP
RCE przez YAML deserialization w IBM Aspera Faspex
RCE w VMware Workspace ONE Access i Identity Manager poprzez server-side template injection
Command Injection w VMware Workspace One Access i Identity Manager