CVE-2026-72484
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
staging: most: video: avoid double free on video register failure
comp_register_videodev() allocates a video_device with video_device_alloc() and releases it if video_register_device() fails.
This can double free the video_device when __video_register_device() reaches device_register() and that call fails:
video_register_device() -> __video_register_device() -> device_register() fails -> put_device(&vdev->dev) -> v4l2_device_release() -> vdev->release(vdev) -> video_device_release(vdev)
comp_register_videodev() -> video_device_release(mdev->vdev)
Use video_device_release_empty() while registering the device so that registration failure paths do not free mdev->vdev through vdev->release(). comp_register_videodev() then releases mdev->vdev exactly once on failure. Restore video_device_release() after successful registration so the registered device keeps its normal lifetime handling.
This issue was found by a static analysis tool I am developing.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | eab231c0398a91fbd294672bfe9e0ff45b368246 < 009d58b73500d0b49f6ae3833f8afcb0ebd9ddbb | affected |
| Linux | Linux | eab231c0398a91fbd294672bfe9e0ff45b368246 < 430ad4ea06a0767fb44a08e2212ceb3a996607ee | affected |
| Linux | Linux | eab231c0398a91fbd294672bfe9e0ff45b368246 < 46ea51f5b2ee1a3b40c05b7c750cbc5cabe94062 | affected |
| Linux | Linux | eab231c0398a91fbd294672bfe9e0ff45b368246 < 4928096212b78262dbbeab3b3abf2352278ce22d | affected |
| Linux | Linux | eab231c0398a91fbd294672bfe9e0ff45b368246 < 80ed79787da3311f76b4d71d0ce7ab992a9e134d | affected |
| Linux | Linux | eab231c0398a91fbd294672bfe9e0ff45b368246 < 43078449ad6236d839e4d707954d2e36b10a6706 | affected |
| Linux | Linux | eab231c0398a91fbd294672bfe9e0ff45b368246 < 7fc162453cfb7b8e93edb16287a84ba0130cac38 | affected |
| Linux | Linux | eab231c0398a91fbd294672bfe9e0ff45b368246 < 7cb1c5b32a2bfde961fff8d5204526b609bcb30a | affected |
| Linux | Linux | 4.9 | affected |
| Linux | Linux | 0 < 4.9 | unaffected |
| Linux | Linux | 5.10.261 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.212 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.178 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.145 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.97 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.40 <= 6.18.* | unaffected |
| Linux | Linux | 7.1.5 <= 7.1.* | unaffected |
| Linux | Linux | 7.2 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/009d58b73500d0b49f6ae3833f8afcb0ebd9ddbb
- https://git.kernel.org/stable/c/430ad4ea06a0767fb44a08e2212ceb3a996607ee
- https://git.kernel.org/stable/c/46ea51f5b2ee1a3b40c05b7c750cbc5cabe94062
- https://git.kernel.org/stable/c/4928096212b78262dbbeab3b3abf2352278ce22d
- https://git.kernel.org/stable/c/80ed79787da3311f76b4d71d0ce7ab992a9e134d
- https://git.kernel.org/stable/c/43078449ad6236d839e4d707954d2e36b10a6706
- https://git.kernel.org/stable/c/7fc162453cfb7b8e93edb16287a84ba0130cac38
- https://git.kernel.org/stable/c/7cb1c5b32a2bfde961fff8d5204526b609bcb30a
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.