CVE-2026-89767
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
ovl: napraw funkcję double end_creating() na ścieżce niezgodności składania
ovl_create_real() uwalnia nową wersję dwukrotnie po złożeniu sprawy
kontrola spójności kończy się niepowodzeniem. Gałąź S_IFDIR wywołuje funkcję end_creating() i
ustawia err, a następnie przechodzi do zwykłego out: label, który wywołuje
end_creating() ponownie na tym samym dentrze:
przypadek S_IFDIR:
newdentry = ovl_do_mkdir(ofs, dir, newdentry, attr->mode);
err = PTR_ERR_OR_ZERO(nowydentry);
if (!err && ofs->casefold != ovl_dentry_casefolded(newdentry)) {
pr_warn_ratelimited(...);
end_creating(newdentry); /* pierwszy */
błąd = -EINVAL;
}
przerwa;
...
jeśli (błąd)
wyjść;
...
wyjście:
jeśli (błąd) {
end_creating(newdentry); /* drugi, ten sam ząb */
zwróć ERR_PTR(błąd);
}
end_creating() to end_dirop(), która wykonuje funkcję inode_unlock() na obiekcie nadrzędnym
i dput() na dentry, więc i_rwsem katalogu nadrzędnego jest odblokowane
dwa razy i zęby zakłada się dwukrotnie. Drugie odblokowanie zwalnia blokadę
tego się nie trzyma i to właśnie klinuje pod tym każde późniejsze dzieło
rodzic, a druga metoda dput() usuwa referencję, która nigdy nie została wykorzystana.
Gałąź została dodana przez zatwierdzenie dfc7da402ccc („ovl: Sprawdź, czy nie ma folderu
spójność przy tworzeniu nowych zębów”) jako nagą funkcję dput(), która już
dwukrotnie opublikował odniesienie; zatwierdzić fe497f0759e0 („VFS: zmień
vfs_mkdir(), aby odblokować w przypadku niepowodzenia.”) przekonwertował obie witryny na
end_creating(), dodając podwójne odblokowanie.
Jest to osiągalne dla nieuprzywilejowanego użytkownika. Konsystencja składana
warstwy są sprawdzane w czasie montowania w ovl_parse_layer() i ponownie
każde wyszukiwanie w ovl_lookup_single(), ale ofs->workdir jest wewnętrznym
podkatalog „work” utworzony w katalogu roboczym dostarczonym przez użytkownika i to
podkatalog nie jest ponownie sprawdzany. Oznaczenie go jako złożonego po zamontowaniu
dlatego każda funkcja ovl_create_temp() dziedziczy nieprawidłowy stan - i
ta ścieżka dochodzi do ovl_create_real() poprzez ovl_start_creating_temp(),
która używa start_creating() z wygenerowaną nazwą i dlatego nigdy nie uruchamia funkcji
kontrola czasu wyszukiwania.
przestań udostępniać -Urm
mount -t tmpfs -o casefold=utf8-12.1.0 tmpfs mnt
mkdir -p mnt/dolny/d mnt/górny mnt/work mnt/scalony
mount -t nakładka ovl -o dolny katalog=mnt/niższy,\
górny katalog=mnt/górny, katalog_pracy=mnt/mnt_pracy/scalony
chattr +F mnt/praca/praca
mkdir mnt/merged/d/sub # kopiowanie katalogu
overlayfs: błędna odziedziczona rozkładówka (praca/#5)
a następna kopia blokuje się na zawsze w i_rwsem rodzica:
mkdir D start_creating+0x65/0xb0
ovl_start_creating_temp+0xb0/0xe0 [nakładka]
ovl_create_temp+0xa3/0x1d0 [nakładka]
ovl_copy_up_one+0x1f1c/0x21c0 [nakładka]
ovl_copy_up_flags+0xf5/0x140 [nakładka]
ovl_create_object+0xb7/0x220 [nakładka]
ovl_mkdir+0x23/0x40 [nakładka]
Upuść funkcję end_creating() z gałęzi i wyślij polecenie: bądź właścicielem czyszczenia,
co już robi każda inna ścieżka błędu w tej funkcji.
>_ 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