Odebrany

CVE-2026-89649

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ę:

ceph: ograniczona długość wartości xattr w __build_xattrs()

__build_xattrs() dekoduje dostarczony przez MDS obiekt blob xattr o jednym atrybucie
czas. Dla każdego atrybutu odczytuje 32-bitową długość nazwy, przesuwając się dalej
name bytes, odczytuje wartość o długości 32 bitów, zapisuje wskaźnik wartości i
przesuwa się poza bajty wartości. Odczytywane są dwa pola długości
ceph_decode_32_safe(), ale same bajty wartości są przesunięte
z pustym „p += len” i bez ceph_decode_need() sprawdź, czy bajty „len”
pozostać w kropli.

Dla każdego atrybutu z wyjątkiem ostatniego, następna iteracja
ceph_decode_32_safe() na następującej długości nazwy pośrednio sprawdza
że poprzednia wartość nie przekroczyła końca obiektu blob. Finał
atrybut nie ma następcy, więc długość jego zdekodowanej wartości nigdy nie jest sprawdzana
względem granic kropel. Może to zrobić złośliwy lub zagrożony serwer metadanych
ustaw długość wartości ostatniego atrybutu na większą niż faktyczna liczba bajtów
obecny w kropli.

Obiekt blob jest dedykowaną alokacją kvmalloc() dostosowaną do długości przewodu
(ceph_buffer_new() w ceph_fill_inode()). __set_xattr() rejestruje
oversize size w xattr->val_len dosłownie, a później uruchamia się getxattr(2).
memcpy(value, xattr->val, xattr->val_len) do bufora dostarczonego przez użytkownika,
kopiowanie bajtów poza koniec alokacji z powrotem do przestrzeni użytkownika.

Zagrożenie: złośliwy serwer metadanych ujawnia sąsiadujące bajty sterty jądra
do użytkownika lokalnego poprzez getxattr(2) w pliku CephFS. Dodaj brakujące
ceph_decode_need(), więc wartość końcowa przekracza dopuszczalną długość
atrybut nie jest dekodowany i zwraca -EIO zamiast być przechowywany.

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