W jądrze Linux wykryto podatność typu double free w sterowniku sieciowym vertexcom/mse102x, dotyczącą obsługi buforów TX skb. Błąd może prowadzić do awarii systemu i potencjalnie do wykonania nieautoryzowanego kodu.
▸ Pokaż oryginał (EN)
In the Linux kernel, the following vulnerability has been resolved: net: vertexcom: mse102x: Fix possible double free of TX skb The scope of the TX skb is wider than just mse102x_tx_frame_spi(), so in case the TX skb room needs to be expanded, we should free the the temporary skb instead of the original skb. Otherwise the original TX skb pointer would be freed again in mse102x_tx_work(), which leads to crashes: Internal error: Oops: 0000000096000004 [#2] PREEMPT SMP CPU: 0 PID: 712 Comm: kworker/0:1 Tainted: G D 6.6.23 Hardware name: chargebyte Charge SOM DC-ONE (DT) Workqueue: events mse102x_tx_work [mse102x] pstate: 20400009 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : skb_release_data+0xb8/0x1d8 lr : skb_release_data+0x1ac/0x1d8 sp : ffff8000819a3cc0 x29: ffff8000819a3cc0 x28: ffff0000046daa60 x27: ffff0000057f2dc0 x26: ffff000005386c00 x25: 0000000000000002 x24: 00000000ffffffff x23: 0000000000000000 x22: 0000000000000001 x21: ffff0000057f2e50 x20: 0000000000000006 x19: 0000000000000000 x18: ffff00003fdacfcc x17: e69ad452d0c49def x16: 84a005feff870102 x15: 0000000000000000 x14: 000000000000024a x13: 0000000000000002 x12: 0000000000000000 x11: 0000000000000400 x10: 0000000000000930 x9 : ffff00003fd913e8 x8 : fffffc00001bc008 x7 : 0000000000000000 x6 : 0000000000000008 x5 : ffff00003fd91340 x4 : 0000000000000000 x3 : 0000000000000009 x2 : 00000000fffffffe x1 : 0000000000000000 x0 : 0000000000000000 Call trace: skb_release_data+0xb8/0x1d8 kfree_skb_reason+0x48/0xb0 mse102x_tx_work+0x164/0x35c [mse102x] process_one_work+0x138/0x260 worker_thread+0x32c/0x438 kthread+0x118/0x11c ret_from_fork+0x10/0x20 Code: aa1303e0 97fffab6 72001c1f 54000141 (f9400660)
Podczas przetwarzania ramki TX przez funkcję mse102x_tx_frame_spi(), w przypadku konieczności rozszerzenia przestrzeni buforu skb, sterownik błędnie zwalnia oryginalny wskaźnik TX skb zamiast tymczasowego buforu. Skutkuje to sytuacją, w której funkcja mse102x_tx_work() ponownie próbuje zwolnić już zwolniony wskaźnik. Prowadzi to do błędu double free, czego efektem są krytyczne awarie systemu (kernel panic/Oops) widoczne w śladzie stosu wywołań skb_release_data().
Atakujący lub błędna operacja sieciowa może doprowadzić do awarii systemu operacyjnego (kernel crash), a w sprzyjających warunkach potencjalnie do eskalacji uprawnień lub wykonania arbitralnego kodu w kontekście jądra.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — poprawki opublikowane w repozytorium kernel.org (commity: 1325e838, 1f26339b, 2cf0e77f, 91c9daa2). Użytkownicy dystrybucji Debian powinni zapoznać się z komunikatem debian-lts-announce z stycznia 2025.
Linux Kernel — wersje wskazane w referencjach producenta (poprawki dostępne w repozytorium kernel.org dla gałęzi stabilnych)
Opis zawiera szczegółowy ślad stosu (stack trace) z rzeczywistego wystąpienia błędu na platformie chargebyte Charge SOM DC-ONE z jądrem w wersji 6.6.23, co potwierdza reprodukowalność awarii w środowisku produkcyjnym.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux Kernel
OSLinux6.125.17 – 6.1.117 (bez)6.2 – 6.6.61 (bez)6.7 – 6.11.8 (bez)
Powiązane podatności
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP
RCE przez YAML deserialization w IBM Aspera Faspex
RCE w VMware Workspace ONE Access i Identity Manager poprzez server-side template injection
Command Injection w VMware Workspace One Access i Identity Manager