Skip to content
Noroxi
NVD / CVE Program· CNA Linux

CVE-2026-53145: drm/gem: Try to fix change_handle ioctl, attempt 4

Noroxi assessment

Priority: Monitor (action score 31/100)

  • The sources we track (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) show no public exploit code or exploitation in the wild.
  • Probability of exploitation in the next 30 days: 0.13% (FIRST EPSS).
  • Someone with local access to the system can trigger it. A low-privileged account is enough. No user action is required. No special conditions are required; it is repeatable.
  • Fixed version: Linux Linux 1a4f03d22fb655e5f192244fb2c87d8066fcfca2, 1d9b93df7fc768228906e24220591ec1cddad391, 6.18.36.

Low priority for now. Upgrade to Linux Linux 1a4f03d22fb655e5f192244fb2c87d8066fcfca2, 1d9b93df7fc768228906e24220591ec1cddad391, 6.18.36 or later.

Generated automatically from the record's data: CVSS (NVD and CNA), CISA KEV and SSVC, FIRST EPSS, exploit sources, fixed versions. How we calculate it

Primary sources: NVD · CVE.org · FIRST EPSS

In the Linux kernel, the following vulnerability has been resolved: drm/gem: Try to fix change_handle ioctl, attempt 4 [airlied: just added some comments on how to reenable] On-list because the cat is out of the bag and we're clearly not good enough to figure this out in private. The story thus far: 5e28b7b94408 ("drm: Set old handle to NULL before prime swap in change_handle") tried to fix a race condition between the gem_close and gem_change_handle ioctls, but got a few things wrong: - There's a confusion with the local variable handle, which is actually the new handle, and so the two-stage trick was actually applied to the wrong idr slot. 7164d78559b0 ("drm/gem: fix race between change_handle and handle_delete") tried to fix that by adding yet another code block, but forgot to add the error handling. Which meant we now have two paths, both kinda wrong. - dc366607c41c ("drm: Replace old pointer to new idr") tried to apply another fix, but inconsistently, again because of the handle confusion - this would be the right fix (kinda, somewhat, it's a mess) if we'd do the two-stage approach for the new handle. Except that wasn't the intent of the original fix. We also didn't have an igt merged for the original ioctl, which is a big no-go. This was attempted to address off-list in the original bugfix, and amd QA people claimed the bug was fixed now. Very clearly that's not the case. Here's my attempt to sort this out: - Rename the local variable to new_handle, the old aliasing with args->handle is just too dangerously confusing. - Merge the gem obj lookup with the two-stage idr_replace so that we avoid getting ourselves confused there. - This means we don't have a surplus temporary reference anymore, only an inherited from the idr. A concurrent gem_close on the new_handle could steal that. Fix that with the same two-stage approach create_tail uses. This is a bit overkill as documented in the comment, but I also don't trust my ability to understand this all correctly, so go with the established pattern we have from other ioctls instead for maximum paranoia. - Adjust error paths. I've tried to make the error and success paths common, because they are identical except for which handle is removed and on which we call idr_replace to (re)install the object again. But that made things messier to read, so I've left it at the more verbose version, which unfortunately hides the symmetry in the entire code flow a bit. - While at it, also replace the 7 space indent with 1 tab. And finally, because I flat out don't trust my abilities here at all anymore: - Disable the ioctl until we have the igt situation and everything else sorted out on-list and with full consensus. v2: Sashiko noticed that I didn't handle the error path for idr_replace correctly, it must be checked with IS_ERR_OR_NULL like in gem_handle_delete. So yeah, definitely should just the existing paths 1:1 because this is endless amounts of tricky. Also add the Fixes: line for the original ioctl, I forgot that too.

HighCVSS 7.8 · v3.1—No exploit Fix available
Published
Jun 25, 2026
Updated
Oct 19, 2026
EPSS
0.1% · 3th percentile

Report tools

JSON

Action score

31

Monitor

Low priority for now.

CVSS
31 / 40 · 7.8 / 10
CISA KEV
0 / 30 · Not listed
EPSS
0 / 30 · 0.1%

CISA SSVC decision

Exploitation
none
Automatable
no
Technical impact
total

Vulnrichment: CISA's decision-tree inputs.

CNA vs NVD score

NVD
—
CNA · Linux
7.8
NVD has not scored this yet; the score shown is the CNA’s.

The score given by the assigning authority versus NVD’s independent score. A gap means the severity is contested.

Get told when this record changes

  • Not in KEV: no record of exploitation in the wild
  • No public exploit code on record
  • A fix has been released

If any of these changes, we'll tell you in the daily email digest.

Follow CVE-2026-53145

When you'll hear from us

  • when it enters CISA KEV
  • when exploit code appears or is weaponized
  • when the record is updated (including a fixed version)
  • when EPSS rises 20 points in a week

One daily email digest (06:00 UTC); connect a webhook for KEV listings and weaponized exploits instantly.

Your free account also gets you

Running WordPress? Scan your site free with WP Lens

  • Stack alerts: add the products and versions you run, get the new CVEs that affect them
  • Uptime monitoring: 1 site, instant email when it goes down
  • Add your domain: subdomains and takeover risk scanned every week (1 domain)
  • 10 scans an hour on the security tools (3 a day without an account), an API key and MCP
  • All your scans in one panel: findings, what changed in the last scan, a report per domain or per client (PDF, share link)
All free tools

Sign up with email · Have an account? Sign in

Free account, no card. Unfollow any time.

Running WordPress? Scan your site free with WP Lens

Is your version affected? Check it

Noroxi analysis

What does it mean in your environment?

The assessment above is generated automatically from the record's data; it doesn't know your environment. Our team verifies on your systems whether this vulnerability is actually exploitable and which mitigation is enough.

We use this product, ask for help

Affected systems

Is your version affected?

Pick the product and type the version you run. It's compared with this record's version ranges in your browser; the version isn't sent anywhere.

VendorProduct
linuxlinux kernel
redhatenterprise linux

Affected versions

NVD version ranges (for catalog products). Add the product to your stack with a version and matching uses these.

  • linux linux kernel7.0.9 and later · before 7.0.13
  • linux linux kernel6.18.32 and later · before 6.18.36
  • linux linux kernel7.1
  • redhat enterprise linux10.0
  • redhat enterprise linux7.0
  • redhat enterprise linux8.0
  • redhat enterprise linux9.0

Versions reported by the vendor

Affected version ranges reported by the assigning authority (Linux). Independent of NVD's CPE analysis and usually ahead of it.

  • Linux Linux

    • 318b995cffcfcaa69a234d28123a3f4ae186a9df, 38f12d0e10d83b66fa1466400d876a3a8da31542, 0dfa42cfe4dbe114533480503934f43e33c1e83d, cde2c9257cbe8463b9dcf7b1075177b72b5fd938affected
    • 672464dd53231509c9c771110798c56d4660e19e and later · before c0639ede2f24ac224b2079cd35ecd5fd8ad4e3cdaffected · git
    • 61bd96d3e5472c253f9c1ab77608f0c8aaa9d025 and later · before 1d9b93df7fc768228906e24220591ec1cddad391affected · git
    • 5e28b7b94408897e41c63477aabc9e1db439bc8c and later · before 1a4f03d22fb655e5f192244fb2c87d8066fcfca2affected · git
    • 6.18.32 and later · before 6.18.36affected · semver
    • 7.0.9 and later · before 7.0.13affected · semver

Package-level exposure

OSV and GitHub Advisory data: ecosystem, package and range. SBOM matching uses this table.

EcosystemPackageAffected rangeFix
Debian:14linuxbefore 7.0.13-17.0.13-1

Other highest-scoring records for the same primary product.

  • CVE-2026-31431crypto: algif_aead - Revert to operating out-of-placeKEV
    90Now
  • CVE-2022-0847A flaw was found in the way the "flags" member of the new pipe buffer structure was lacking proper initialization in copy_page_to_iter_pipe KEV
    89Now
  • CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV
    85Now

Published before and after this one in the same product

  • ← EarlierCVE-2026-53133Jun 25, 2026 · RDMA/umem: Fix truncation for block sizes >= 4G
    31Monitor
  • ← EarlierCVE-2026-53134Jun 25, 2026 · netfilter: nft_fib: fix stale stack leak via the OIFNAME register
    22Monitor
  • Later →CVE-2026-53146Jun 25, 2026 · thunderbolt: Limit XDomain response copy to actual frame size
    28Monitor

Remediation

Which version to upgrade to

Fix versions compiled from the vendor, package registries and Microsoft. Verify the vendor's note before upgrading.

Product / packageFixed versionSource
Linux Linux1a4f03d22fb655e5f192244fb2c87d8066fcfca2Vendor (CNA)
Linux Linux1d9b93df7fc768228906e24220591ec1cddad391Vendor (CNA)
Linux Linux6.18.36Vendor (CNA)
Linux Linux7.0.13Vendor (CNA)
Linux Linuxc0639ede2f24ac224b2079cd35ecd5fd8ad4e3cdVendor (CNA)
debian:linux7.0.13-1 · Debian:14Package registry (OSV)

Exploit status

No known public exploit

No public exploit has been observed yet. That doesn't mean you're safe, only that the bar is a little higher.

Research context

For pentesters and researchers: attack profile, score disagreement, timeline, patch commits, credits, variant and chain candidates, bug bounty scope. All derived from existing data; no exploit code.

Timeline

From publication to today: proof of concept, Metasploit module, CISA KEV and fix record. Dates are as reported by the sources.

No dated events beyond publication.

EPSS, last 120 days

FIRST EPSS daily score; only changes of 0.01 or more are recorded (step chart).

Patch and commit links

Commit, PR and diff links among the references. A starting point for patch-diffing and variant hunting; fixes, not exploits.

No commit or PR link among the references.

Finders, reporters and analysts named in the CNA record. Click a name for that researcher’s other records.

No credits in the CNA record.

Variant candidates

Same product, same weakness class, within 18 months. If the patch missed the root cause, the sibling bug is here.

  • CVE-2025-38352338 days apartposix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del()KEV
    61This week
  • CVE-2026-6409124 days apartbatman-adv: tt: fix TOCTOU race for reported vlans
    39Monitor
  • CVE-2026-6403424 days apartnet: mana: Fix TOCTOU double-fetch of hwc_msg_id from DMA buffer
    37Monitor
  • CVE-2026-6393724 days apartKVM: SEV: Use READ_ONCE() when reading entries/indices from PSC buffer
    35Monitor
  • CVE-2026-6386724 days apartmptcp: close TOCTOU race while computing rcv_wnd
    32Monitor
  • CVE-2026-532500 days apartxsk: cache csum_start/csum_offset to fix TOCTOU in xsk_skb_metadata()
    31Monitor

Chain candidates

An authentication bypass and a privilege-requiring bug in the same product, published close together: combined they may become an unauthenticated path.

—

Bug bounty scope

No known public program.

Source: bounty-targets-data (public HackerOne, Bugcrowd, Intigriti, YesWeHack listings).

Technical details

Attack conditions

  • Someone with local access to the system can trigger it.
  • A low-privileged account is enough.
  • No user action is required.
  • No special conditions are required; it is repeatable.

If successful

Confidentiality
high · data can be read
Integrity
high · data or configuration can be modified
Availability
high · the service can be disrupted
Attack vector
Local
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality impact
High
Integrity impact
High
Availability impact
High

CVSS vector

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

nvd-secondary

Attack context

MITRE CAPEC attack patterns and ATT&CK techniques for this weakness class (CWE). A starting point for detection rules and threat hunting.

Change log

  1. SSVC exploitation— → none
  2. Fix✗ → ✓

For records you follow, these changes also arrive as notifications. →

References

All records