CVE-2026-99007 in Linux
요약
\~에 의해 VulDB • 2026. 10. 23.
리눅스 커널에서 다음 취약점이 해결되었습니다:
drm/fb-helper: fbdev_probe() 실패 시 -EAGAIN뿐만 아니라 모든 경우에 대해 설정을 지연시킵니다.
__drm_fb_helper_initial_config_and_unlock()은 먼저 drm_client_modeset_probe()를 호출하여 연결된 각 출력에 대해 mode_set->mode 및 num_connectors를 모두 채웁니다. 그 후, fb_helper->fb를 생성하고 이를 drm_setup_crtcs_fb()를 통해 해당 mode_sets에 연결하기 위해 drm_fb_helper_single_fb_probe()를 호출합니다.
만약 drm_fb_helper_single_fb_probe()가 -EAGAIN 외의 다른 오류(예: dev->driver->fbdev_probe() 자체 실패)로 실패하면, 함수는 drm_setup_crtcs_fb()가 실행되기 전과 fb_helper->deferred_setup 설정 전에 중단됩니다. 그 결과 클라이언트는 모드와 커넥터는 있지만 mode_set->fb == NULL인 상태의 mode_sets를 가지게 되며, 이 fb_helper에 재시도가 필요함을 나타내는 표시가 없습니다.
__drm_fb_helper_restore_fbdev_mode_unlocked()은 fb_helper->deferred_setup가 설정된 경우에만 커밋을 건너뜁니다. 따라서 이후 .restore() 호출(이 보고서에서는 프로세스 종료 시 drm_lastclose())은 stale mode_set을 drm_client_modeset_commit() -> drm_client_modeset_commit_atomic() -> __drm_atomic_helper_set_config()를 통해 커밋하며, 이는 WARN_ON(!set->fb) 오류를 발생시킵니다.
모든 drm_fb_helper_single_fb_probe() 실패 시(단 -EAGAIN뿐만 아니라), fb_helper->deferred_setup에 표시하여 restore가 나중에 핫플러그 이벤트에서 성공적으로 재탐색 및 mode_set->fb 재생성이 될 때까지 커밋을 계속 건너뛰도록 합니다. 실제 오류 코드는 호출자에게 변경 없이 그대로 반환됩니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.