drm/hyperv: validate resolution_count and fix WIN8 fallback
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.15.210, 6.1.176, 6.6.143, 6.12.93, 6.18.35, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/hyperv: validate resolution_count and fix WIN8 fallback A SYNTHVID_RESOLUTION_RESPONSE with resolution_count > 64 walks past the supported_resolution[SYNTHVID_MAX_RESOLUTION_COUNT] array in the parse loop. Bound resolution_count against the array size, folded into the existing zero-check. When the WIN10 resolution probe fails, the caller in hyperv_connect_vsp() left hv->screen_*_max / preferred_* unpopulated, which sets mode_config.max_width / max_height to 0 and makes drm_internal_framebuffer_create() reject every userspace framebuffer with -EINVAL. The pre-WIN10 branch had the same gap for preferred_width / preferred_height. Use a single post-probe fallback guarded by screen_width_max == 0 so both paths converge on the WIN8 defaults.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 76c56a5affeba1e163b66b9d8cc192e6154466f0 · fixed in 96f7de3172d4aa878b7f87173b2b3507c350fcd6; From 76c56a5affeba1e163b66b9d8cc192e6154466f0 · fixed in bc573752f3dac0d1ab8df7078c1851bc76717653; From 76c56a5affeba1e163b66b9d8cc192e6154466f0 · fixed in 1fb565b77b8f44afabb02de6310065f109d89e94; From 76c56a5affeba1e163b66b9d8cc192e6154466f0 · fixed in a321c908f2eeea01539668eb270d074d9b88e490; From 76c56a5affeba1e163b66b9d8cc192e6154466f0 · fixed in 9c698b2c43c2667c34f5336bf46ad5786216ac2a; From 76c56a5affeba1e163b66b9d8cc192e6154466f0 · fixed in 8a114b25b5521eae451b13bce98ae978624962e5; From 76c56a5affeba1e163b66b9d8cc192e6154466f0 · fixed in 13d33b9ef67066c77c84273fac5a1d3fde3533d1
- Linux Linux
5.14
- KernelLinux
From 5.14.0 · fixed in 5.15.210; From 5.16.0 · fixed in 6.1.176; From 6.2.0 · fixed in 6.6.143; From 6.7.0 · fixed in 6.12.93; From 6.13.0 · fixed in 6.18.35; From 6.19.0 · fixed in 7.0.12
References 7
git.kernel.org
- stable/c/96f7de3172d4aa878b7f87173b2b3507c350fcd6
- stable/c/bc573752f3dac0d1ab8df7078c1851bc76717653
- stable/c/1fb565b77b8f44afabb02de6310065f109d89e94
- stable/c/a321c908f2eeea01539668eb270d074d9b88e490
- stable/c/9c698b2c43c2667c34f5336bf46ad5786216ac2a
- stable/c/8a114b25b5521eae451b13bce98ae978624962e5
- stable/c/13d33b9ef67066c77c84273fac5a1d3fde3533d1