drm: Fix drm_pending_vblank_event leak in error path for out_fence_ptr
- 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 4.10, 5.10.271, 5.15.222, 6.1.189, 6.6.158, and 3 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
Summary
In the Linux kernel, the following vulnerability has been resolved: drm: Fix drm_pending_vblank_event leak in error path for out_fence_ptr When an out_fence_ptr is provided but DRM_MODE_PAGE_FLIP_EVENT is not set, a drm_pending_vblank_event will be allocated. If later, there is an allocation failure or another failure at setup_out_fence(), that event will not have base.fence set and it will not be released at complete_signaling(). Release the event and set crtc_state->event to NULL just like in the DRM_MODE_PAGE_FLIP_EVENT case when there is a failure at drm_event_reserve_init(). That is, prepare_signaling() releases the event and there is nothing to be done at complete_signaling(). Use drm_event_cancel_free() as that will also undo drm_event_reserve_init() in case it has been called.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 92c715fca907686f5298220ece53423e38ba3aed · fixed in 3d6576ed3de01e8a378397b7020e33ae3d40aa6c; From 92c715fca907686f5298220ece53423e38ba3aed · fixed in 86c33f740aa27e9cdc1259f0cc59c9c58f545e4b; From 92c715fca907686f5298220ece53423e38ba3aed · fixed in 88c450e23b8fd4f1dcd329562f5e81ef05f3d941; From 92c715fca907686f5298220ece53423e38ba3aed · fixed in 780716e2e019186fa6e5aad097a44b87b0b5388f; From 92c715fca907686f5298220ece53423e38ba3aed · fixed in d0be0516b5224eb5b6f42f8564a8deadb20ae16b; From 92c715fca907686f5298220ece53423e38ba3aed · fixed in daefd7ff159b0d1fb8c9e64430dcbe2aca1bdd09; From 92c715fca907686f5298220ece53423e38ba3aed · fixed in b9a68a9ccaada15d8dd0102c188cc6b868ff800b; From 92c715fca907686f5298220ece53423e38ba3aed · fixed in 9eb1a393c89a79c4210230d23e7d88d239c61d7b; From 4.9.10 · fixed in 4.10
- Linux Linux
4.10
- KernelLinux
From 4.10.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.54; From 6.19.0 · fixed in 7.2.8
References 8
git.kernel.org
- stable/c/3d6576ed3de01e8a378397b7020e33ae3d40aa6c
- stable/c/86c33f740aa27e9cdc1259f0cc59c9c58f545e4b
- stable/c/88c450e23b8fd4f1dcd329562f5e81ef05f3d941
- stable/c/780716e2e019186fa6e5aad097a44b87b0b5388f
- stable/c/d0be0516b5224eb5b6f42f8564a8deadb20ae16b
- stable/c/daefd7ff159b0d1fb8c9e64430dcbe2aca1bdd09
- stable/c/b9a68a9ccaada15d8dd0102c188cc6b868ff800b
- stable/c/9eb1a393c89a79c4210230d23e7d88d239c61d7b