W jądrze Linux (Linux Kernel) w sterowniku clk-bcm2711-dvp występuje podatność związana z dostępem do tablicy przed inicjalizacją jej licznika elementów, sklasyfikowana jako CWE-400 (niekontrolowane zużycie zasobów). Podatność otrzymała ocenę CVSS 9.8 (CRITICAL), co wskazuje na potencjalnie poważne konsekwencje dla systemów ją zawierających.
▸ Pokaż oryginał (EN)
In the Linux kernel, the following vulnerability has been resolved: clk: bcm: dvp: Assign ->num before accessing ->hws Commit f316cdff8d67 ("clk: Annotate struct clk_hw_onecell_data with __counted_by") annotated the hws member of 'struct clk_hw_onecell_data' with __counted_by, which informs the bounds sanitizer about the number of elements in hws, so that it can warn when hws is accessed out of bounds. As noted in that change, the __counted_by member must be initialized with the number of elements before the first array access happens, otherwise there will be a warning from each access prior to the initialization because the number of elements is zero. This occurs in clk_dvp_probe() due to ->num being assigned after ->hws has been accessed: UBSAN: array-index-out-of-bounds in drivers/clk/bcm/clk-bcm2711-dvp.c:59:2 index 0 is out of range for type 'struct clk_hw *[] __counted_by(num)' (aka 'struct clk_hw *[]') Move the ->num initialization to before the first access of ->hws, which clears up the warning.
Commit f316cdff8d67 oznaczył pole `hws` struktury `clk_hw_onecell_data` adnotacją `__counted_by`, która informuje mechanizm sprawdzania granic (bounds sanitizer) o liczbie elementów w tablicy. W funkcji `clk_dvp_probe()` pole `->num` (przechowujące liczbę elementów) było przypisywane dopiero po pierwszym dostępie do tablicy `->hws`, co powoduje, że w momencie dostępu liczba elementów wynosi zero. Skutkuje to wyzwalaniem ostrzeżenia UBSAN o dostępie poza granice tablicy (array-index-out-of-bounds) przy każdym dostępie przed inicjalizacją licznika. Poprawka polega na przeniesieniu inicjalizacji `->num` przed pierwsze odwołanie do `->hws`.
Atakujący lub złośliwy kod mogący wywołać odpowiednią ścieżkę w sterowniku może doprowadzić do niekontrolowanego zużycia zasobów lub niestabilności systemu; w skrajnym przypadku możliwe jest naruszenie poufności, integralności i dostępności systemu, co odzwierciedla wektor CVSS (C:H/I:H/A:H).
Należy zastosować patche dostępne u producenta zgodnie z referencjami (commity: 0dc913217fb7, 9368cdf90f52, a1dd92fca0d6 w stabilnych gałęziach Linux Kernel dostępnych pod adresami git.kernel.org wskazanymi w referencjach).
Linux Kernel — wersje wskazane w referencjach producenta (sterownik drivers/clk/bcm/clk-bcm2711-dvp.c); dotyczy platform opartych na Broadcom BCM2711 (np. Raspberry Pi 4).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux Kernel
OSLinux6.6 – 6.6.34 (bez)6.7 – 6.9.5 (bez)
Powiązane podatności
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP
IBM Aspera Faspex 4.4.2 Patch Level 1 and earlier could allow a remote attacker to execute arbitrary code on t...
VMware Workspace ONE Access and Identity Manager contain a remote code execution vulnerability due to server-s...
VMware Workspace One Access, Access Connector, Identity Manager, and Identity Manager Connector address have a...