Podatność w module netfilter jądra Linux (nft_set_pipapo_avx2) powoduje nieprawidłowe dopasowanie elementu zestawu reguł podczas przetwarzania wielopolowych kluczy z użyciem instrukcji AVX2. Błąd może prowadzić do naruszenia integralności reguł filtrowania sieciowego oraz potencjalnie do obejścia polityki bezpieczeństwa sieci.
▸ Pokaż oryginał (EN)
In the Linux kernel, the following vulnerability has been resolved: netfilter: nft_set_pipapo_avx2: don't return non-matching entry on expiry New test case fails unexpectedly when avx2 matching functions are used. The test first loads a ranomly generated pipapo set with 'ipv4 . port' key, i.e. nft -f foo. This works. Then, it reloads the set after a flush: (echo flush set t s; cat foo) | nft -f - This is expected to work, because its the same set after all and it was already loaded once. But with avx2, this fails: nft reports a clashing element. The reported clash is of following form: We successfully re-inserted a . b c . d Then we try to insert a . d avx2 finds the already existing a . d, which (due to 'flush set') is marked as invalid in the new generation. It skips the element and moves to next. Due to incorrect masking, the skip-step finds the next matching element *only considering the first field*, i.e. we return the already reinserted "a . b", even though the last field is different and the entry should not have been matched. No such error is reported for the generic c implementation (no avx2) or when the last field has to use the 'nft_pipapo_avx2_lookup_slow' fallback. Bisection points to 7711f4bb4b36 ("netfilter: nft_set_pipapo: fix range overlap detection") but that fix merely uncovers this bug. Before this commit, the wrong element is returned, but erronously reported as a full, identical duplicate. The root-cause is too early return in the avx2 match functions. When we process the last field, we should continue to process data until the entire input size has been consumed to make sure no stale bits remain in the map.
Podczas wygaśnięcia wpisu (expiry) w zestawie pipapo z kluczem wielopolowym (np. 'ipv4 . port'), funkcja dopasowania AVX2 przedwcześnie kończy przetwarzanie ostatniego pola, nie konsumując całego wejściowego rozmiaru danych. W efekcie w mapie wynikowej mogą pozostać nieaktualne bity (stale bits), co powoduje zwrócenie błędnie dopasowanego elementu uwzględniającego jedynie pierwsze pole klucza. Skutkuje to fałszywym wykryciem kolizji lub zwróceniem nieodpowiedniego elementu zestawu — błąd nie występuje w implementacji generycznej (bez AVX2) ani przy użyciu ścieżki zastępczej 'nft_pipapo_avx2_lookup_slow'.
Atakujący lub użytkownik lokalny może doprowadzić do nieprawidłowego działania reguł netfilter, co może skutkować naruszeniem integralności polityki filtrowania pakietów (obejście reguł) oraz potencjalnym wpływem na dostępność lub poufność ruchu sieciowego.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (commity: 07de44424bb7, 0abbc43f71d9, 3d53f9aafd46, d3c0037ffe12, fa4f1f52528c w stabilnych gałęziach jądra Linux). Do czasu aktualizacji można rozważyć wyłączenie obsługi AVX2 w module nft_set_pipapo lub ograniczenie możliwości ładowania reguł netfilter przez nieuprzywilejowanych użytkowników.
Jądro Linux z obsługą AVX2 i modułem netfilter nft_set_pipapo_avx2; konkretne wersje wskazane w referencjach producenta (patche dostępne w stabilnych gałęziach jądra Linux).
Błąd ujawniony przez regresję testową — przed poprawką commit 7711f4bb4b36 ('netfilter: nft_set_pipapo: fix range overlap detection') błędny element był zwracany, lecz nieprawidłowo klasyfikowany jako pełny duplikat, co maskowało rzeczywisty problem.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:LLinux Kernel
OSLinux7.05.7 – 6.6.136 (bez)6.7 – 6.12.83 (bez)6.13 – 6.18.24 (bez)6.19 – 6.19.14 (bez)
Powiązane podatności
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP
IBM Aspera Faspex 4.4.2 Patch Level 1 and earlier could allow a remote attacker to execute arbitrary code on t...
VMware Workspace ONE Access and Identity Manager contain a remote code execution vulnerability due to server-s...
VMware Workspace One Access, Access Connector, Identity Manager, and Identity Manager Connector address have a...