In the Linux kernel, the following vulnerability has been resolved:
fbdev: hyperv_fb: Allow graceful removal of framebuffer
When a Hyper-V framebuffer device is unbind, hyperv_fb driver tries to release the framebuffer forcefully. If this framebuffer is in use it produce the following WARN and hence this framebuffer is never released.
[ 44.111220] WARNING: CPU: 35 PID: 1882 at drivers/video/fbdev/core/fbinfo.c:70 framebufferrelease+0x2c/0x40 < snip > [ 44.111289] Call Trace: [ 44.111290] <TASK> [ 44.111291] ? showregs+0x6c/0x80 [ 44.111295] ? _warn+0x8d/0x150 [ 44.111298] ? framebufferrelease+0x2c/0x40 [ 44.111300] ? reportbug+0x182/0x1b0 [ 44.111303] ? handlebug+0x6e/0xb0 [ 44.111306] ? excinvalidop+0x18/0x80 [ 44.111308] ? asmexcinvalidop+0x1b/0x20 [ 44.111311] ? framebufferrelease+0x2c/0x40 [ 44.111313] ? hvfbremove+0x86/0xa0 [hypervfb] [ 44.111315] vmbusremove+0x24/0x40 [hvvmbus] [ 44.111323] deviceremove+0x40/0x80 [ 44.111325] devicereleasedriverinternal+0x20b/0x270 [ 44.111327] ? busfind_device+0xb3/0xf0
Fix this by moving the release of framebuffer and assosiated memory to fbops.fbdestroy function, so that framebuffer framework handles it gracefully.
While we fix this, also replace manual registrations/unregistration of framebuffer with devmregisterframebuffer.
[
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4545e2aa121aea304d33903099c03e29ed4fe50a",
"signature_type": "Function",
"id": "CVE-2025-21976-02f7c57e",
"target": {
"function": "hvfb_remove",
"file": "drivers/video/fbdev/hyperv_fb.c"
},
"digest": {
"length": 383.0,
"function_hash": "4723937194981309835601563176638893945"
},
"deprecated": false
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a7b583dc99c6cf4a96877017be1d08247e1ef2c7",
"signature_type": "Function",
"id": "CVE-2025-21976-0521d480",
"target": {
"function": "hvfb_remove",
"file": "drivers/video/fbdev/hyperv_fb.c"
},
"digest": {
"length": 383.0,
"function_hash": "4723937194981309835601563176638893945"
},
"deprecated": false
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ea2f45ab0e53b255f72c85ccd99e2b394fc5fceb",
"signature_type": "Line",
"id": "CVE-2025-21976-0e033053",
"target": {
"file": "drivers/video/fbdev/hyperv_fb.c"
},
"digest": {
"line_hashes": [
"255271629970840444459931929482554237423",
"155132735019990250823920034479904214824",
"92024950652233186978634578680971484702",
"110096427894966600932499321358452850365",
"136179657463301112017334245657137683134",
"330926436966910744786992427881929153101",
"229111067236857937349733401661563387159",
"293693877700702415171117687194477363695",
"329250281698873047162194650837994224066",
"95174197051183411380285872099965436372",
"50219213689285972088035714147789527940",
"206571877941868401480064915622866356893",
"311262387233600008543486087649935669096",
"268554210364986211638472641393903039505",
"256174547368992140233381370494240960841",
"288436947148882576345158198401054699198",
"220142174506305666789251538370622967954",
"15434405990131881930065879511872847404",
"260573424494323627904571476939660251794",
"46625573129927011582190047257281144696",
"257391517529756882552899075268875483108",
"29124675417065050017414877817897962434",
"302030890170360865091836438277420716591"
],
"threshold": 0.9
},
"deprecated": false
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4545e2aa121aea304d33903099c03e29ed4fe50a",
"signature_type": "Line",
"id": "CVE-2025-21976-1c76148e",
"target": {
"file": "drivers/video/fbdev/hyperv_fb.c"
},
"digest": {
"line_hashes": [
"255271629970840444459931929482554237423",
"155132735019990250823920034479904214824",
"92024950652233186978634578680971484702",
"110096427894966600932499321358452850365",
"136179657463301112017334245657137683134",
"330926436966910744786992427881929153101",
"229111067236857937349733401661563387159",
"293693877700702415171117687194477363695",
"329250281698873047162194650837994224066",
"95174197051183411380285872099965436372",
"50219213689285972088035714147789527940",
"206571877941868401480064915622866356893",
"311262387233600008543486087649935669096",
"268554210364986211638472641393903039505",
"256174547368992140233381370494240960841",
"288436947148882576345158198401054699198",
"220142174506305666789251538370622967954",
"15434405990131881930065879511872847404",
"260573424494323627904571476939660251794",
"46625573129927011582190047257281144696",
"257391517529756882552899075268875483108",
"29124675417065050017414877817897962434",
"302030890170360865091836438277420716591"
],
"threshold": 0.9
},
"deprecated": false
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a7b583dc99c6cf4a96877017be1d08247e1ef2c7",
"signature_type": "Line",
"id": "CVE-2025-21976-3aaf4622",
"target": {
"file": "drivers/video/fbdev/hyperv_fb.c"
},
"digest": {
"line_hashes": [
"255271629970840444459931929482554237423",
"155132735019990250823920034479904214824",
"92024950652233186978634578680971484702",
"110096427894966600932499321358452850365",
"136179657463301112017334245657137683134",
"330926436966910744786992427881929153101",
"229111067236857937349733401661563387159",
"293693877700702415171117687194477363695",
"329250281698873047162194650837994224066",
"95174197051183411380285872099965436372",
"50219213689285972088035714147789527940",
"206571877941868401480064915622866356893",
"311262387233600008543486087649935669096",
"268554210364986211638472641393903039505",
"256174547368992140233381370494240960841",
"288436947148882576345158198401054699198",
"220142174506305666789251538370622967954",
"15434405990131881930065879511872847404",
"260573424494323627904571476939660251794",
"46625573129927011582190047257281144696",
"257391517529756882552899075268875483108",
"29124675417065050017414877817897962434",
"302030890170360865091836438277420716591"
],
"threshold": 0.9
},
"deprecated": false
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4545e2aa121aea304d33903099c03e29ed4fe50a",
"signature_type": "Function",
"id": "CVE-2025-21976-71bd9aaf",
"target": {
"function": "hvfb_probe",
"file": "drivers/video/fbdev/hyperv_fb.c"
},
"digest": {
"length": 2691.0,
"function_hash": "299325663225230532529321498979864529535"
},
"deprecated": false
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a7b583dc99c6cf4a96877017be1d08247e1ef2c7",
"signature_type": "Function",
"id": "CVE-2025-21976-735af5f9",
"target": {
"function": "hvfb_probe",
"file": "drivers/video/fbdev/hyperv_fb.c"
},
"digest": {
"length": 2691.0,
"function_hash": "299325663225230532529321498979864529535"
},
"deprecated": false
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ea2f45ab0e53b255f72c85ccd99e2b394fc5fceb",
"signature_type": "Function",
"id": "CVE-2025-21976-b25f7d7b",
"target": {
"function": "hvfb_remove",
"file": "drivers/video/fbdev/hyperv_fb.c"
},
"digest": {
"length": 383.0,
"function_hash": "4723937194981309835601563176638893945"
},
"deprecated": false
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ea2f45ab0e53b255f72c85ccd99e2b394fc5fceb",
"signature_type": "Function",
"id": "CVE-2025-21976-c822798a",
"target": {
"function": "hvfb_probe",
"file": "drivers/video/fbdev/hyperv_fb.c"
},
"digest": {
"length": 2691.0,
"function_hash": "299325663225230532529321498979864529535"
},
"deprecated": false
}
]