{"answers":{"affected":"It affects 2 products.","exploited":"There is no known exploitation of CVE-2026-53145 in the wild and no public exploit code.","fix":"Apply the vendor's patch.","what":"CVE-2026-53145 is a high-severity vulnerability in Linux kernel, published on 25 Jun 2026. It can only be exploited from the same machine or local network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-53145 and fix it if it is affected.\n\nWhat it is: CVE-2026-53145 is a high-severity vulnerability in Linux kernel, published on 25 Jun 2026. It can only be exploited from the same machine or local network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-53145 in the wild and no public exploit code.\n\nAffected product: Linux kernel. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-53145/ (Markdown: https://insights.sbomify.com/CVE-2026-53145/index.md)","id":"CVE-2026-53145","markdown":"https://insights.sbomify.com/CVE-2026-53145/index.md","name":"CVE-2026-53145","record":{"aliases":["BELL-CVE-2026-53145","DEBIAN-CVE-2026-53145","GHSA-x237-c35r-5vq5","UBUNTU-CVE-2026-53145"],"analysis":{"component_type":"kernel","fix_type":"patch","impacts":["privilege_escalation","code_execution"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Linux kernel DRM","requires_auth":"low_privilege","summary":"A race condition in the Linux kernel DRM GEM change_handle ioctl allows attackers to trigger memory corruption, potentially leading to privilege escalation or code execution.","user_interaction":"not_required","vuln_class":"race_condition"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"Linux","cpe":[{"product":"linux_kernel","vendor":"linux"},{"product":"enterprise_linux","vendor":"redhat"}],"cvss":{"score":7.8,"severity":"high","source":"cna","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"},"cwes":[{"id":"CWE-367","name":"Time-of-check Time-of-use (TOCTOU) Race Condition"}],"description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/gem: Try to fix change_handle ioctl, attempt 4\n\n[airlied: just added some comments on how to reenable]\nOn-list because the cat is out of the bag and we're clearly not good\nenough to figure this out in private. The story thus far:\n\n5e28b7b94408 (\"drm: Set old handle to NULL before prime swap in\nchange_handle\") tried to fix a race condition between the gem_close and\ngem_change_handle ioctls, but got a few things wrong:\n\n- There's a confusion with the local variable handle, which is actually\n  the new handle, and so the two-stage trick was actually applied to the\n  wrong idr slot. 7164d78559b0 (\"drm/gem: fix race between\n  change_handle and handle_delete\") tried to fix that by adding yet\n  another code block, but forgot to add the error handling. Which meant\n  we now have two paths, both kinda wrong.\n\n- dc366607c41c (\"drm: Replace old pointer to new idr\") tried to apply\n  another fix, but inconsistently, again because of the handle confusion\n  - this would be the right fix (kinda, somewhat, it's a mess) if we'd\n  do the two-stage approach for the new handle. Except that wasn't the\n  intent of the original fix.\n\nWe also didn't have an igt merged for the original ioctl, which is a big\nno-go. This was attempted to address off-list in the original bugfix,\nand amd QA people claimed the bug was fixed now. Very clearly that's not\nthe case. Here's my attempt to sort this out:\n\n- Rename the local variable to new_handle, the old aliasing with\n  args-\u003ehandle is just too dangerously confusing.\n\n- Merge the gem obj lookup with the two-stage idr_replace so that we\n  avoid getting ourselves confused there.\n\n- This means we don't have a surplus temporary reference anymore, only\n  an inherited from the idr. A concurrent gem_close on the new_handle\n  could steal that. Fix that with the same two-stage approach\n  create_tail uses. This is a bit overkill as documented in the comment,\n  but I also don't trust my ability to understand this all correctly, so\n  go with the established pattern we have from other ioctls instead for\n  maximum paranoia.\n\n- Adjust error paths. I've tried to make the error and success paths\n  common, because they are identical except for which handle is removed\n  and on which we call idr_replace to (re)install the object again. But\n  that made things messier to read, so I've left it at the more verbose\n  version, which unfortunately hides the symmetry in the entire code\n  flow a bit.\n\n- While at it, also replace the 7 space indent with 1 tab.\n\nAnd finally, because I flat out don't trust my abilities here at all\nanymore:\n\n- Disable the ioctl until we have the igt situation and everything else\n  sorted out on-list and with full consensus.\n\nv2:\n\nSashiko noticed that I didn't handle the error path for idr_replace\ncorrectly, it must be checked with IS_ERR_OR_NULL like in\ngem_handle_delete. So yeah, definitely should just the existing paths\n1:1 because this is endless amounts of tricky.\n\nAlso add the Fixes: line for the original ioctl, I forgot that too.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"drm/gem: Try to fix change_handle ioctl, attempt 4","id":"CVE-2026-53145","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":"linux:linux_kernel","products":["linux:linux_kernel","redhat:enterprise_linux"],"type":"race_condition","year":"2026"},"n_packages":0,"n_references":3,"next":{"headline":"thunderbolt: Limit XDomain response copy to actual frame size","id":"CVE-2026-53146"},"packages":[],"prev":{"headline":"drm/amdkfd: fix NULL dereference in get_queue_ids()","id":"CVE-2026-53144"},"products":["Linux"],"published":"2026-06-25","related":[{"cvss_score":8.8,"headline":"Linux Kernel Out-of-Bounds Write","id":"CVE-2026-53266","kev_date_added":"2026-09-18","published":"2026-06-25"},{"cvss_score":8.8,"headline":"Linux Kernel Improper Input Validation","id":"CVE-2013-6282","kev_date_added":"2022-09-15","published":"2013-11-19"},{"cvss_score":8.4,"headline":"Linux Kernel Heap-Based Buffer Overflow","id":"CVE-2022-0185","kev_date_added":"2024-08-21","published":"2022-02-11"},{"cvss_score":8.4,"headline":"Linux Kernel Privilege Escalation","id":"CVE-2013-2094","kev_date_added":"2022-09-15","published":"2013-05-14"},{"cvss_score":7.8,"headline":"Linux Kernel Unspecified","id":"CVE-2026-53362","kev_date_added":"2026-08-27","published":"2026-07-04"},{"cvss_score":7.8,"headline":"Linux Kernel Missing Initialization of a Variable","id":"CVE-2026-46300","kev_date_added":"2026-10-28","published":"2026-05-23"},{"cvss_score":7.8,"headline":"Linux Kernel Race Condition","id":"CVE-2025-39964","kev_date_added":"2026-09-18","published":"2025-10-13"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-10-19","vendors":["Linux"]},"summary":"A race condition in the Linux kernel DRM GEM change_handle ioctl allows attackers to trigger memory corruption, potentially leading to privilege escalation or code execution.","url":"https://insights.sbomify.com/CVE-2026-53145/"}