CVE-2026-93203
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
batman-adv: bla: unikaj uszkodzenia CRC z powodu równoległego dodania roszczenia
batadv_bla_add_claim() służy do dodawania roszczeń i modyfikowania szkieletu
roszczenia dotyczące ramek CLAIM ze zdalnych szkieletów i pakietów lokalnych. Kiedy to
rozpatrzy roszczenie, też musi to zrobić
* dodaj CRC nowego roszczenia do podstawowego CRC
* usuń CRC już istniejącego roszczenia ze starego szkieletu i dodaj go
do nowego kręgosłupa
Ale kiedy „nowy” kod roszczenia działał równolegle z „zmianą
backbone”, może się zdarzyć, że CRC będzie nieprawidłowe, ponieważ plik
backbone_gw roszczenia został zmieniony dwukrotnie w „nowej” ścieżce kodu roszczenia:
* CPU0 tworzy oświadczenie dla bramy A i publikuje je w oświadczeniu
hasz. CRC16 adresu nie zostało jeszcze dodane do crc A pod adresem
ten punkt.
* Stwierdzono, że CPU1 przetwarza ramkę żądania bramy B dla tego samego klienta
właśnie opublikowane roszczenie i dokonuje zmiany własności: it
przełącza wskaźnik na B, usuwa crc16 z crc A - co
nigdy go nie zawierał - i dodaje go do crc B.
* CPU0 kontynuuje pracę za gałęzią tworzenia, bezwarunkowo się przełącza
wskaźnik z powrotem do A bez kompensowania crc B (jego usunięcie_crc
ma wartość false dla ścieżki tworzenia) i na koniec dodaje crc16 do A
crc
CRC jest wówczas błędny w obu przypadkach:
* roszczenie należy do A: ale CRC nie jest częścią CRC szkieletu A
* roszczenie nie należy do B: CRC jest nadal częścią CRC szkieletu B
Ta błędna suma CRC nigdy nie jest obliczana ponownie na podstawie przechowywanych roszczeń. Dla lokalnych
roszczeń dotyczących szkieletu, nie można ich również odzyskać za pomocą synchronizacji.
Aby tego uniknąć, podziel funkcjonalność na wyraźnie oddzielne części:
* nowe roszczenie, które zawsze dodaje CRC roszczenia do CRC szkieletu (ale nigdy
zmienia już ustawiony backbone_gw roszczenia)
* aktualizacja istniejącego roszczenia, która automatycznie zmienia plik backbone_gw
wpis i aktualizuje oba szkieletowe CRC tylko wtedy, gdy nastąpiła rzeczywista zmiana
>_ Referencje
- https://git.kernel.org/stable/c/08645ab95768b88e2ff85a89211994651710465b
- https://git.kernel.org/stable/c/1d390db003cbb52cdd86837608bff3794501a5ea
- https://git.kernel.org/stable/c/3d4a9ae2c69c0fe4c3c69587288241243bb7a39b
- https://git.kernel.org/stable/c/8bcfa58c4277bff1882a23547c37ab08aa1de12f
- https://git.kernel.org/stable/c/a3e07db74f22a85aeeb51c600da5c98b9cbca11f
- https://git.kernel.org/stable/c/ad982d925f00d860d2467811256ffadcccd9e4a7
- https://git.kernel.org/stable/c/d5b0e7574da5a485f4dbec32a15911900a4487c2
- https://git.kernel.org/stable/c/e54602d9e38db8573f2097d60c7ea8be0a5af1fa
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