CVE-2026-53403
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
fbdev: Fix fb_new_modelist to prevent null-ptr-deref in fb_videomode_to_var
info->var, a framebuffer's current mode, is expected to have a matching entry in info->modelist. var_to_display() relies on this and treats a failed fb_match_mode() as "This should not happen". fb_set_var() keeps it true by adding the mode to the list on every change, and do_register_framebuffer() does the same at registration.
store_modes() replaces the modelist from userspace. fb_new_modelist() validates the new modes but does not check that info->var still has a match. It relies on fbcon_new_modelist() to re-point consoles, but that only handles consoles mapped to the framebuffer. With fbcon unbound there are none, so info->var is left describing a mode that is no longer in the list.
A later console takeover runs var_to_display(), where fb_match_mode() returns NULL and leaves fb_display[i].mode NULL. fbcon_switch() passes it to display_to_var(), and fb_videomode_to_var() dereferences the NULL mode.
Keep the current mode in the list in fb_new_modelist(), the same way fb_set_var() does.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 1458a4d804550b7101e8bb02c1cb941088e4c0c7 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 8707f02ac9f5f632039b60df2c9f3dc914709f72 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 0d8c7f21ad8529d5c181e61f86be35b887ae2e4d | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 7640b4f68acb54c2c4f6b4a8aee0e9849dacd929 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 4f1a7fe8ba845cb7d39580755f78c3b7b9a0b61e | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < eea16b6f805c0b1fb2f72f0f771088ea45356956 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 88913059c77e171f44ba829282d42dde0d458811 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 7f08fc10fa3d3366dc3af723970bd03d7d6d10e3 | affected |
| Linux | Linux | 2.6.12 | affected |
| Linux | Linux | 0 < 2.6.12 | unaffected |
| Linux | Linux | 5.10.260 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.211 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.177 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.144 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.95 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.38 <= 6.18.* | unaffected |
| Linux | Linux | 7.1.3 <= 7.1.* | unaffected |
| Linux | Linux | 7.2-rc1 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/1458a4d804550b7101e8bb02c1cb941088e4c0c7
- https://git.kernel.org/stable/c/8707f02ac9f5f632039b60df2c9f3dc914709f72
- https://git.kernel.org/stable/c/0d8c7f21ad8529d5c181e61f86be35b887ae2e4d
- https://git.kernel.org/stable/c/7640b4f68acb54c2c4f6b4a8aee0e9849dacd929
- https://git.kernel.org/stable/c/4f1a7fe8ba845cb7d39580755f78c3b7b9a0b61e
- https://git.kernel.org/stable/c/eea16b6f805c0b1fb2f72f0f771088ea45356956
- https://git.kernel.org/stable/c/88913059c77e171f44ba829282d42dde0d458811
- https://git.kernel.org/stable/c/7f08fc10fa3d3366dc3af723970bd03d7d6d10e3
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.