{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2026-99007", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2026-09-25T10:25:14.385Z", "datePublished": "2026-10-23T12:20:32.381Z", "dateUpdated": "2026-10-30T12:40:51.342Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-10-30T12:40:51.342Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/fb-helper: defer setup when fbdev_probe() fails, not just on -EAGAIN\n\n__drm_fb_helper_initial_config_and_unlock() calls\ndrm_client_modeset_probe() first, which already fills in each\nmode_set->mode/num_connectors for every connected output, and only\nafterwards calls drm_fb_helper_single_fb_probe() to create\nfb_helper->fb and wire it into those mode_sets via\ndrm_setup_crtcs_fb().\n\nIf drm_fb_helper_single_fb_probe() fails with anything other than\n-EAGAIN (e.g. dev->driver->fbdev_probe() itself fails), the function\nbails out before drm_setup_crtcs_fb() runs and before setting\nfb_helper->deferred_setup. The client is left with mode_sets that\nhave a mode and connectors but mode_set->fb == NULL, and nothing\nmarks this fb_helper as needing a retry.\n\n__drm_fb_helper_restore_fbdev_mode_unlocked() only skips committing\nwhen fb_helper->deferred_setup is set, so a later .restore() call\n(drm_lastclose() on process exit, in this report) commits the stale\nmode_set through drm_client_modeset_commit() ->\ndrm_client_modeset_commit_atomic() -> __drm_atomic_helper_set_config(),\nwhich hits WARN_ON(!set->fb).\n\nMark fb_helper->deferred_setup on any drm_fb_helper_single_fb_probe()\nfailure, not just -EAGAIN, so restore keeps skipping the commit until\na later hotplug event successfully re-probes and re-populates\nmode_set->fb. The real error code is still returned to the caller\nunchanged." } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/gpu/drm/drm_fb_helper.c" ], "versions": [ { "version": "ca91a2758fcef6635626993557dd51cfbb6dd134", "lessThan": "423c871a586cff8b29f48db00e3c45c21d0e8121", "status": "affected", "versionType": "git" }, { "version": "ca91a2758fcef6635626993557dd51cfbb6dd134", "lessThan": "e5f8f6e0f0a18c77c04b757d72319d897a0b4bc1", "status": "affected", "versionType": "git" }, { "version": "ca91a2758fcef6635626993557dd51cfbb6dd134", "lessThan": "9124411cb91b129ff3ffb0d723ecba7a5bf893f9", "status": "affected", "versionType": "git" }, { "version": "ca91a2758fcef6635626993557dd51cfbb6dd134", "lessThan": "4a2006c675758f0c765b36fec6b49d17e89159cf", "status": "affected", "versionType": "git" }, { "version": "ca91a2758fcef6635626993557dd51cfbb6dd134", "lessThan": "3b303696f61461b3569019d7fcac6a646652b2b4", "status": "affected", "versionType": "git" }, { "version": "ca91a2758fcef6635626993557dd51cfbb6dd134", "lessThan": "4e7b508c7c60dec7a86b7eb2a1b7e6d174afa457", "status": "affected", "versionType": "git" }, { "version": "ca91a2758fcef6635626993557dd51cfbb6dd134", "lessThan": "d510ed273854177f0a3ed330145858b2fe667f81", "status": "affected", "versionType": "git" }, { "version": "ca91a2758fcef6635626993557dd51cfbb6dd134", "lessThan": "755c94d178b7e972bb766199d34e4ba4f63a89eb", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/gpu/drm/drm_fb_helper.c" ], "versions": [ { "version": "4.14", "status": "affected" }, { "version": "0", "lessThan": "4.14", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.273", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.224", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.191", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.160", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.113", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.18.57", "lessThanOrEqual": "6.18.*", "status": "unaffected", "versionType": "semver" }, { "version": "7.2.11", "lessThanOrEqual": "7.2.*", "status": "unaffected", "versionType": "semver" }, { "version": "7.3", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "5.10.273" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "5.15.224" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "6.1.191" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "6.6.160" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "6.12.113" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "6.18.57" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "7.2.11" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "7.3" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/423c871a586cff8b29f48db00e3c45c21d0e8121" }, { "url": "https://git.kernel.org/stable/c/e5f8f6e0f0a18c77c04b757d72319d897a0b4bc1" }, { "url": "https://git.kernel.org/stable/c/9124411cb91b129ff3ffb0d723ecba7a5bf893f9" }, { "url": "https://git.kernel.org/stable/c/4a2006c675758f0c765b36fec6b49d17e89159cf" }, { "url": "https://git.kernel.org/stable/c/3b303696f61461b3569019d7fcac6a646652b2b4" }, { "url": "https://git.kernel.org/stable/c/4e7b508c7c60dec7a86b7eb2a1b7e6d174afa457" }, { "url": "https://git.kernel.org/stable/c/d510ed273854177f0a3ed330145858b2fe667f81" }, { "url": "https://git.kernel.org/stable/c/755c94d178b7e972bb766199d34e4ba4f63a89eb" } ], "title": "drm/fb-helper: defer setup when fbdev_probe() fails, not just on -EAGAIN", "x_generator": { "engine": "bippy-1.2.0" } } } }