CVE-2026-93243
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
mm/secretmem: prawidłowo zablokowane strony konta
sekretne konta folio, traktując pamięć tak, jakby była wywoływana przez funkcję mlock() i
w ten sposób ograniczone przez limit RLIMIT_MEMLOCK.
Jednakże folio są nieuniknione i pozostają takie, dopóki i-węzeł nie zostanie usunięty
eksmitowany, eliminując zwykłą semantykę mlock() - następnie mapowanie folio
odmapowanie ich nie usuwa ich stanu, którego nie da się uniknąć, ponieważ zależy to od
AS_UNEVICTABLE, a nie PG_mlocked.
Użytkownik może zatem łatwo obejść limit RLIMIT_MEMLOCK – po prostu
map, następnie odmapuj i VmLck nie zlicza już zasięgu tajnego mema. Gorzej,
folio nie są uwzględniane w RSS procesu, co oznacza zabójcę OOM
nie będę wiedział, jak zabić proces.
Powtarzające się mapowanie/odmapowanie (lub rozwidlenie) może spowodować, że
zużycie całej dostępnej pamięci systemowej przez nieuniknione folio i
powodować niestabilność systemu.
Sekretny mem fd można przekazywać między procesami i przez fork, więc a
limit na proces po prostu nie ma sensu, więc postępuj zgodnie z powyższym zestawem
przez io_uring, perf, skbuff, iommufd i xdp, śledząc liczbę
zablokowane strony w user_struct->locked_vm.
Ponieważ śledzony zakres to w rzeczywistości czas życia i-węzła, plik RLIMIT_MEMLOCK
dotyczy użytkownika, a nie procesu, więc nie ma sensu go omijać
użytkownicy z CAP_IPC_LOCK, dlatego usuń to obejście.
Po prostu nie ma powodu, aby kontynuować oznaczanie mapowania jako mlock()'d
ponieważ wprowadza to w błąd, a cykl życia jest teraz poprawnie obsługiwany, więc
to też usuń.
Zauważ, że secretmem nie obsługuje żadnej formy obcinania (w tym
dziurkowanie), a folio nie można odzyskać, więc folio wystarczy
być rozliczane z winy i nieuwzględniane w przypadku zniszczenia i-węzła.
__secretmem_account_pages() jest mniej więcej duplikatem kodu, który
io_uring itp., ale ponieważ jest to poprawka błędu wymagająca przeniesienia,
odłóż wszelkie wysiłki związane z usuwaniem duplikatów do czasu podjęcia dalszych działań.
test_mlock_limit() potwierdza mlock_future_ok() na mmap(), jednak tak się stało
został usunięty, dlatego w celu rozwiązania problemu usuń całkowicie test. Będzie nowy test
być przesyłane osobno dla odbiorców w górę rzeki.
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org