CVE-2026-97570
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
bnxt_en: Powiązane identyfikatory SW TPA, aby zapobiec awariom
FW obsługuje do 1024 jednoczesnych TPA, więc identyfikator FW TPA mieści się w zakresie
0..1023 (patrz zatwierdzenie ec4d8e7cf024 („bnxt_en: Dodaj logikę mapowania identyfikatora TPA dla
57500 żetonów.”). bnxt_alloc_agg_idx ma za zadanie zawinąć identyfikator FW do pliku a
identyfikator oprogramowania używany do indeksowania rxr->rx_tpa i generowania mapowania
pomiędzy identyfikatorami FW a opakowanym identyfikatorem oprogramowania.
W modelu 57608 z wersją oprogramowania sprzętowego 233 oprogramowanie ogłasza numer 32
równoczesne TPA. Od chwili zatwierdzenia w ramach poprawek bp->max_tpa na tej karcie sieciowej
jest ustawiony na 32.
Jeśli identyfikator oprogramowania z bnxt_alloc_agg_idx jest większy niż 31, powoduje to
w tej linii ładowany jest nieprawidłowy adres:
tpa_info = &rxr->rx_tpa[agg_id];
ponieważ rx_tpa jest przydzielany tylko z wpisami bp->max_tpa (32). Pisze
do tpa_info w dalszej części kodu są poza zakresem.
Ten błąd powoduje awarię podczas uruchamiania:
Ups: ogólny błąd ochrony, wyłuskanie wskaźnika NULL jądra 0x8: 0000 [#1] SMP NOPTI
RIP: 0010:bnxt_rx_pkt+0xc0/0x1560
RSP: 0018:ffffc900009b8c78 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000048 RCX: 0000000206682516
RDX: ffffc900009b8db4 RSI: 0000000000000000 RDI: 01ffffff038fe1c0
RBP: ffffc9006e687480 R08: ffffc9006e687000 R09: 0000000000003048
R10: 0000000000000480 R11: ffff8881c6083900 R12: 0000000006682516
R13: ffff8881c6095400 R14: 0000000000000016 R15: ffff8881c6b66680
FS: 0000000000000000(0000) GS:ffff88fef3c77000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fc8bda40584 CR3: 000000807c812001 CR4: 0000000008772ef0
PKRU: 55555554
Zadzwoń do śledzenia:
<przerwanie>
? __netif_receive_skb_list_core+0x1ca/0x250
__bnxt_poll_work+0x152/0x280
bnxt_poll_p5+0x1cd/0x480
__napi_poll+0x30/0x180
net_rx_action+0x20b/0x3b0
? note_gp_changes+0x53/0xe0
? tick_setup_sched_timer+0x180/0x180
? __napi_schedule+0x9a/0xb0
? bnxt_msix+0x24/0x30
handle_softirqs+0xdd/0x2c0
__irq_exit_rcu.llvm.3171231171502365008+0x47/0xf0
wspólne_przerwanie+0x85/0x90
</IRQ>
<ZADANIE>
asm_common_interrupt+0x22/0x40
Ten ślad stosu pochodzi z awarii wywołanej, gdy rx_tpa jest poza granicami
jest dereferencjonowany. Wspomniany powyżej nieprawidłowy zapis milczy w tej kwestii
konkretny wypadek.
Napraw to, przydzielając rx_tpa z bp->max_tpa zaokrąglonymi w górę do następnego
potęga 2 wpisów (bp->max_tpa_roundup_size) i maskowanie identyfikatora FW TPA
przy tym rozmiarze, więc opakowany identyfikator nigdy nie będzie mógł indeksować poza końcem
tablica.
>_ 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