CVE-2024-40916
ŚrednieCVSS 5.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
W jądrze Linux rozwiązano problem w sterowniku drm/exynos dla HDMI, gdzie w przypadku niepowodzenia odczytu EDID i braku dostępnych trybów wyświetlania, jądro DRM dodawało sztuczny tryb 1024x786, którego niektóre układy Exynos HDMI nie obsługują. Powodowało to błędy i ostrzeżenia, w tym przekroczenie czasu oczekiwania na VSYNC. Poprawka polega na zgłoszeniu bezpiecznego trybu 640x480 jako rozwiązania zastępczego.
Ocena ryzyka
Na urządzeniach z układem Exynos (np. Exynos4) może dochodzić do błędów wyświetlania, ostrzeżeń jądra i problemów z inicjalizacją grafiki, co może prowadzić do niestabilności systemu lub braku obrazu.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej tę poprawkę, aby uniknąć problemów z wyświetlaniem na platformach Exynos.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-99259Nieznane
W jądrze Linux w sterowniku soc/tegra: pmc występuje problem z niezainicjalizowaną zmienną early_pmc->rate dla starszych 32-bitowych urządzeń Tegra. Zmienna nigdy nie jest ustawiana i pozostaje równa 0, co powoduje wyzwalanie ostrzeżenia w funkcji tegra_pmc_enter_suspend_mode(). Błąd pojawił się po zmianie sterownika PMC na dynamiczne tworzenie kontekstu, gdzie zaktualizowano rate tylko w nowym kontekście.
- CVE-2026-99258Nieznane
W jądrze Linux funkcja hv_apicid_to_vp_index() używa per-CPU stron wejściowych i wyjściowych hiperwywołań. W maszynie wirtualnej SEV-SNP CoCo bez paravisora strona wyjściowa nie jest alokowana, więc hipervisor zapisuje wynikowy indeks VP do niezaalokowanej pamięci gościa. Poprawka polega na użyciu tej samej strony wejściowej również jako wyjściowej.
- CVE-2026-99257Nieznane
W jądrze Linux mechanizm współdzielonych GPIO oparty na tablicach wyszukiwania platformy wymaga powiązanego struct device. Wywołanie wyszukiwania oparte na fwnode bez powiązanego urządzenia powoduje dereferencję wskaźnika NULL. Poprawka dodaje sprawdzenie, które pozwala jąderu łagodnie obsłużyć tę sytuację błędem.
- CVE-2026-99256Nieznane
W jądrze Linux moduł dm cache używał rw_semaphore do blokady background_work_lock, mimo że blokady zapisu rw_semaphore mają ścisłą semantykę właściciela. Proces blokujący nie zawsze był tym samym, który zwalniał blokadę, co przy CONFIG_DEBUG_RWSEMS wyzwalało ostrzeżenie podczas suspend/resume urządzenia cache. Poprawka zastępuje rw_semaphore spinlockiem i kolejką oczekujących.
- CVE-2026-99251Nieznane
W jądrze Linux funkcja init_vp_index() zawiera pętlę ponawiania, która usuwa CPU z danego węzła NUMA, jeśli są już w alokowanej masce cpumask lub poza maską housekeeping HK_TYPE_MANAGED_IRQ. Jeśli maska housekeeping nie zawiera żadnego CPU w danym węźle, pętla staje się nieskończona. Poprawka pomija węzły NUMA bez CPU housekeeping i wcześniej przerywa działanie, gdy brak jest online CPU housekeeping.
- CVE-2026-99250Nieznane
W jądrze Linux wątki jądra (kthreads) NBCON odpowiedzialne za drukowanie konsoli są uruchamiane bardzo wcześnie przez early_initcall(). Asynchroniczne włączanie i wyłączanie przerwań podczas wczesnego rozruchu może zakłócać konfigurację SMP na niektórych platformach sprzętowych, powodując zawieszanie się systemu. Poprawka opóźnia uruchomienie tych wątków do momentu zakończenia wszystkich arch initcalli.
- CVE-2026-99249Nieznane
W jądrze Linux funkcja zap_pid_ns_processes() oczekująca na zwolnienie PID-ów w przestrzeni nazw nie była przerywalna przez mechanizm zamrażania (freezer). Gdy tracer spoza przestrzeni nazw nie odbiera zombie, oczekiwanie nie ma górnej granicy, a każda próba zawieszenia systemu kończy się niepowodzeniem. Poprawka wprowadza stany TASK_FREEZABLE w pętlach oczekiwania, aby freezer mógł zamrozić zadania.
- CVE-2026-99248Nieznane
W jądrze Linux w sterowniku i2c: xiic przywrócono ręczne zarządzanie runtime PM zamiast wersji opartej na devres, aby naprawić lawinę ostrzeżeń clk. Zarządzane zwalnianie zasobów wyłączało runtime PM w niewłaściwej kolejności, co powodowało podwójne wyłączenie zegara i ostrzeżenia "clkN already disabled" przy każdym usuwaniu urządzenia.
- CVE-2026-99247Nieznane
W jądrze Linux, jeśli alokacja bufora śledzenia nie powiedzie się podczas wczesnego rozruchu, tracing_disabled pozostaje ustawione, a lista zdarzeń globalnego trace array pozostaje niezainicjalizowana. Funkcja tracer_init_tracefs_work_func() uruchamiana asynchronicznie nie sprawdza tego stanu i wywołuje event_trace_init() oraz init_tracer_tracefs(), co prowadzi do dereferencji NULL i Oops podczas rozruchu. Poprawka sprawdza tracing_disabled na początku funkcji roboczej.
- CVE-2026-99215Nieznane
W jądrze Linux w podsystemie power supply występuje luka use-after-free. Jeśli zasilacz zostanie wyrejestrowany (power_supply_unregister) w trakcie wykonywania callbacku external_power_changed(), sterownik może zwolnić dane, do których callback nadal próbuje uzyskać dostęp, co prowadzi do awarii jądra (NULL pointer dereference).
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: drm/exynos: hdmi: report safe 640x480 mode as a fallback when no EDID found When reading EDID fails and driver reports no modes available, the DRM core adds an artificial 1024x786 mode to the connector. Unfortunately some variants of the Exynos HDMI (like the one in Exynos4 SoCs) are not able to drive such mode, so report a safe 640x480 mode instead of nothing in case of the EDID reading failure. This fixes the following issue observed on Trats2 board since commit 13d5b040363c ("drm/exynos: do not return negative values from .get_modes()"): [drm] Exynos DRM: using 11c00000.fimd device for DMA mapping operations exynos-drm exynos-drm: bound 11c00000.fimd (ops fimd_component_ops) exynos-drm exynos-drm: bound 12c10000.mixer (ops mixer_component_ops) exynos-dsi 11c80000.dsi: [drm:samsung_dsim_host_attach] Attached s6e8aa0 device (lanes:4 bpp:24 mode-flags:0x10b) exynos-drm exynos-drm: bound 11c80000.dsi (ops exynos_dsi_component_ops) exynos-drm exynos-drm: bound 12d00000.hdmi (ops hdmi_component_ops) [drm] Initialized exynos 1.1.0 20180330 for exynos-drm on minor 1 exynos-hdmi 12d00000.hdmi: [drm:hdmiphy_enable.part.0] *ERROR* PLL could not reach steady state panel-samsung-s6e8aa0 11c80000.dsi.0: ID: 0xa2, 0x20, 0x8c exynos-mixer 12c10000.mixer: timeout waiting for VSYNC ------------[ cut here ]------------ WARNING: CPU: 1 PID: 11 at drivers/gpu/drm/drm_atomic_helper.c:1682 drm_atomic_helper_wait_for_vblanks.part.0+0x2b0/0x2b8 [CRTC:70:crtc-1] vblank wait timed out Modules linked in: CPU: 1 PID: 11 Comm: kworker/u16:0 Not tainted 6.9.0-rc5-next-20240424 #14913 Hardware name: Samsung Exynos (Flattened Device Tree) Workqueue: events_unbound deferred_probe_work_func Call trace: unwind_backtrace from show_stack+0x10/0x14 show_stack from dump_stack_lvl+0x68/0x88 dump_stack_lvl from __warn+0x7c/0x1c4 __warn from warn_slowpath_fmt+0x11c/0x1a8 warn_slowpath_fmt from drm_atomic_helper_wait_for_vblanks.part.0+0x2b0/0x2b8 drm_atomic_helper_wait_for_vblanks.part.0 from drm_atomic_helper_commit_tail_rpm+0x7c/0x8c drm_atomic_helper_commit_tail_rpm from commit_tail+0x9c/0x184 commit_tail from drm_atomic_helper_commit+0x168/0x190 drm_atomic_helper_commit from drm_atomic_commit+0xb4/0xe0 drm_atomic_commit from drm_client_modeset_commit_atomic+0x23c/0x27c drm_client_modeset_commit_atomic from drm_client_modeset_commit_locked+0x60/0x1cc drm_client_modeset_commit_locked from drm_client_modeset_commit+0x24/0x40 drm_client_modeset_commit from __drm_fb_helper_restore_fbdev_mode_unlocked+0x9c/0xc4 __drm_fb_helper_restore_fbdev_mode_unlocked from drm_fb_helper_set_par+0x2c/0x3c drm_fb_helper_set_par from fbcon_init+0x3d8/0x550 fbcon_init from visual_init+0xc0/0x108 visual_init from do_bind_con_driver+0x1b8/0x3a4 do_bind_con_driver from do_take_over_console+0x140/0x1ec do_take_over_console from do_fbcon_takeover+0x70/0xd0 do_fbcon_takeover from fbcon_fb_registered+0x19c/0x1ac fbcon_fb_registered from register_framebuffer+0x190/0x21c register_framebuffer from __drm_fb_helper_initial_config_and_unlock+0x350/0x574 __drm_fb_helper_initial_config_and_unlock from exynos_drm_fbdev_client_hotplug+0x6c/0xb0 exynos_drm_fbdev_client_hotplug from drm_client_register+0x58/0x94 drm_client_register from exynos_drm_bind+0x160/0x190 exynos_drm_bind from try_to_bring_up_aggregate_device+0x200/0x2d8 try_to_bring_up_aggregate_device from __component_add+0xb0/0x170 __component_add from mixer_probe+0x74/0xcc mixer_probe from platform_probe+0x5c/0xb8 platform_probe from really_probe+0xe0/0x3d8 really_probe from __driver_probe_device+0x9c/0x1e4 __driver_probe_device from driver_probe_device+0x30/0xc0 driver_probe_device from __device_attach_driver+0xa8/0x120 __device_attach_driver from bus_for_each_drv+0x80/0xcc bus_for_each_drv from __device_attach+0xac/0x1fc __device_attach from bus_probe_device+0x8c/0x90 bus_probe_device from deferred_probe_work_func+0 ---truncated---
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

