Podatność w jądrze Linux dotyczy nieprawidłowej kolejności stosowania mechanizmów ograniczania częstotliwości (rate limiting) dla komunikatów ICMP, co umożliwia przeprowadzenie ataków typu side-channel. Błąd sklasyfikowany jest jako CWE-203 (Observable Discrepancy), co oznacza, że atakujący może uzyskać informacje o stanie systemu na podstawie obserwowalnych różnic w zachowaniu mechanizmów limitowania.
▸ Pokaż oryginał (EN)
In the Linux kernel, the following vulnerability has been resolved: icmp: change the order of rate limits ICMP messages are ratelimited : After the blamed commits, the two rate limiters are applied in this order: 1) host wide ratelimit (icmp_global_allow()) 2) Per destination ratelimit (inetpeer based) In order to avoid side-channels attacks, we need to apply the per destination check first. This patch makes the following change : 1) icmp_global_allow() checks if the host wide limit is reached. But credits are not yet consumed. This is deferred to 3) 2) The per destination limit is checked/updated. This might add a new node in inetpeer tree. 3) icmp_global_consume() consumes tokens if prior operations succeeded. This means that host wide ratelimit is still effective in keeping inetpeer tree small even under DDOS. As a bonus, I removed icmp_global.lock as the fast path can use a lock-free operation.
Przed zastosowaniem poprawki mechanizmy rate limiting były stosowane w następującej kolejności: najpierw globalny limit dla całego hosta (icmp_global_allow()), a następnie limit per-destination oparty na strukturze inetpeer. Taka kolejność umożliwiała zewnętrznemu obserwatorowi wnioskowanie o aktywności innych połączeń na podstawie zachowania globalnego limitu. Poprawka odwraca tę kolejność: najpierw sprawdzany jest limit per-destination, następnie weryfikowany jest globalny limit hosta (bez natychmiastowej konsumpcji tokenów), a tokeny globalne są konsumowane dopiero po pomyślnym przejściu obu sprawdzeń. Dodatkowo usunięto blokadę icmp_global.lock, zastępując ją operacją lock-free w ścieżce krytycznej.
Atakujący zdalny, nieuwierzytelniony może wykorzystać tę podatność do przeprowadzenia ataku side-channel — obserwując zachowanie globalnego limitu ICMP, może wywnioskować informacje o ruchu sieciowym i stanie połączeń innych hostów komunikujących się z atakowanym systemem. Istnieje ryzyko naruszenia poufności i integralności danych sieciowych.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — poprawka dostępna w repozytoriach kernel.org pod wskazanymi commitami (483397b4ba28, 662ec52260cc, 8c2bd38b95f7, 997ba8889611, a7722921adb0). Zaleca się aktualizację jądra do wersji zawierającej wymienione poprawki.
Jądro Linux — wersje wskazane w referencjach producenta (commity poprawki dostępne w repozytorium kernel.org)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:LLinux Kernel
OSLinux3.18 – 6.1.113 (bez)6.2 – 6.6.54 (bez)6.7 – 6.10.13 (bez)6.11 – 6.11.2 (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