Odebrany

CVE-2026-89761

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

apparmor: napraw zapis poza granicami, gdy wartość null kończy etykietę vec

aa_vec_unique() null kończy się na vec[n - dups], gdy VEC_FLAG_TERMINATE
zostało zaliczone. Jeśli wszystkie komponenty są różne, duplikaty nie są usuwane,
dups wynosi 0, a terminator przechodzi do vec[n], więc osoba wywołująca musi podać
miejsce na n + 1 wpisów.

aa_label_strn_parse() ustawia swój wektor za pomocą vec_setup(profile, vec, len,
gfp), a następnie wywołuje aa_vec_unique(vec, len, VEC_FLAG_TERMINATE), ale
vec_setup() nie rezerwuje wpisu terminatora. Do LOCAL_VEC_ENTRIES
używa lokalnej tablicy wskaźników LOCAL_VEC_ENTRIES powyżej niej
przydziela dokładnie wskaźniki len. Dlatego terminator generuje jeden wpis
poza końcem tablicy lokalnej, gdy len ma wartość LOCAL_VEC_ENTRIES i jeden
wpis poza końcem alokacji, gdy len jest większy.

len pochodzi z liczby oddzielonych elementów „//&” w nazwie etykiety
i label_count_strn_entries() go nie ogranicza. Nieuprzywilejowane zadanie
dociera do analizy, pisząc do /proc/self/attr/apparmor/current lub poprzez
lsm_set_self_attr(2), oba przechodzą przez do_setattr(), a nazwa
jest analizowany przed sprawdzeniem uprawnienia do zmiany_profilu.
Ścieżka query_label() za plikiem securityfs .access, czyli
tryb 0666, w ogóle nie sprawdza uprawnień. Każdy element musi
rozwiązać na załadowany profil, dlatego wymagany jest system z załadowaną polityką.

Pozostali dwaj użytkownicy VEC_FLAG_TERMINATE pracują nad etykietą vec that
aa_label_alloc() ma już rozmiar „+ 1 dla włączonego wpisu terminatora zerowego
vec”. Zarezerwuj ten sam wpis w vec_setup() i DEFINE_VEC(). Przechodząc
len + 1 od osoby wywołującej zamiast tego przeniesie len == LOCAL_VEC_ENTRIES z
tablicę lokalną i do kzalloc().

>_ 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