CVE-2026-99007 in Linux
Sumário
de VulDB • 24/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
drm/fb-helper: adiar o setup quando fbdev_probe() falhar, não apenas em caso de -EAGAIN
__drm_fb_helper_initial_config_and_unlock() chama drm_client_modeset_probe() primeiro, que já preenche cada mode_set->mode/num_connectors para todas as saídas conectadas, e somente depois chama drm_fb_helper_single_fb_probe() para criar fb_helper->fb e vinculá-lo aos mode_sets via drm_setup_crtcs_fb().
Se o drm_fb_helper_single_fb_probe() falhar com algo diferente de -EAGAIN (por exemplo, se dev->driver->fbdev_probe() falhar), a função encerra antes que o drm_setup_crtcs_fb() seja executado e antes de definir fb_helper->deferred_setup. O cliente fica com mode_sets que possuem um modo e conectores, mas mode_set->fb == NULL, e nada marca esse fb_helper como necessitando de uma nova tentativa (retry).
__drm_fb_helper_restore_fbdev_mode_unlocked() apenas ignora o commit quando fb_helper->deferred_setup está definido; portanto, uma chamada posterior .restore() (drm_lastclose() na saída do processo, neste relatório) realiza o commit do mode_set obsoleto através de drm_client_modeset_commit() -> drm_client_modeset_commit_atomic() -> __drm_atomic_helper_set_config(), o que aciona WARN_ON(!set->fb).
Defina fb_helper->deferred_setup em qualquer falha do drm_fb_helper_single_fb_probe(), não apenas para -EAGAIN, para que a restauração continue ignorando o commit até que um evento de hotplug posterior realize com sucesso uma nova sondagem (re-probe) e repopule mode_set->fb. O código de erro real é ainda retornado ao chamador inalterado.
If you want to get best quality of vulnerability data, you may have to visit VulDB.