{"answers":{"affected":"It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-31656 in the wild and no public exploit code.","fix":"Apply the vendor's patch.","what":"CVE-2026-31656 is a high-severity use after free vulnerability in Linux kernel, published on 24 Apr 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-31656 and fix it if it is affected.\n\nWhat it is: CVE-2026-31656 is a high-severity use after free vulnerability in Linux kernel, published on 24 Apr 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-31656 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-31656/ (Markdown: https://insights.sbomify.com/CVE-2026-31656/index.md)","id":"CVE-2026-31656","markdown":"https://insights.sbomify.com/CVE-2026-31656/index.md","name":"CVE-2026-31656","record":{"aliases":["AZL-83909","BELL-CVE-2026-31656","DEBIAN-CVE-2026-31656","GHSA-4j69-96h5-q8g9","ROOT-OS-DEBIAN-11-CVE-2026-31656","ROOT-OS-DEBIAN-12-CVE-2026-31656","ROOT-OS-UBUNTU-2204-CVE-2026-31656","ROOT-OS-UBUNTU-2404-CVE-2026-31656","UBUNTU-CVE-2026-31656"],"analysis":{"component_type":"kernel","fix_type":"patch","impacts":["denial_of_service","code_execution"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Linux kernel driver","requires_auth":"low_privilege","summary":"A race condition in the Intel i915 GPU driver causes a use-after-free, potentially leading to system crashes or arbitrary code execution.","user_interaction":"not_required","vuln_class":"use_after_free"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"Linux","cpe":[{"product":"linux_kernel","vendor":"linux"}],"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-191","name":"Integer Underflow (Wrap or Wraparound)"},{"id":"CWE-362","name":"Concurrent Execution using Shared Resource with Improper Synchronization"}],"description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/i915/gt: fix refcount underflow in intel_engine_park_heartbeat\n\nA use-after-free / refcount underflow is possible when the heartbeat\nworker and intel_engine_park_heartbeat() race to release the same\nengine-\u003eheartbeat.systole request.\n\nThe heartbeat worker reads engine-\u003eheartbeat.systole and calls\ni915_request_put() on it when the request is complete, but clears\nthe pointer in a separate, non-atomic step. Concurrently, a request\nretirement on another CPU can drop the engine wakeref to zero, triggering\n__engine_park() -\u003e intel_engine_park_heartbeat(). If the heartbeat\ntimer is pending at that point, cancel_delayed_work() returns true and\nintel_engine_park_heartbeat() reads the stale non-NULL systole pointer\nand calls i915_request_put() on it again, causing a refcount underflow:\n\n```\n\u003c4\u003e [487.221889] Workqueue: i915-unordered engine_retire [i915]\n\u003c4\u003e [487.222640] RIP: 0010:refcount_warn_saturate+0x68/0xb0\n...\n\u003c4\u003e [487.222707] Call Trace:\n\u003c4\u003e [487.222711]  \u003cTASK\u003e\n\u003c4\u003e [487.222716]  intel_engine_park_heartbeat.part.0+0x6f/0x80 [i915]\n\u003c4\u003e [487.223115]  intel_engine_park_heartbeat+0x25/0x40 [i915]\n\u003c4\u003e [487.223566]  __engine_park+0xb9/0x650 [i915]\n\u003c4\u003e [487.223973]  ____intel_wakeref_put_last+0x2e/0xb0 [i915]\n\u003c4\u003e [487.224408]  __intel_wakeref_put_last+0x72/0x90 [i915]\n\u003c4\u003e [487.224797]  intel_context_exit_engine+0x7c/0x80 [i915]\n\u003c4\u003e [487.225238]  intel_context_exit+0xf1/0x1b0 [i915]\n\u003c4\u003e [487.225695]  i915_request_retire.part.0+0x1b9/0x530 [i915]\n\u003c4\u003e [487.226178]  i915_request_retire+0x1c/0x40 [i915]\n\u003c4\u003e [487.226625]  engine_retire+0x122/0x180 [i915]\n\u003c4\u003e [487.227037]  process_one_work+0x239/0x760\n\u003c4\u003e [487.227060]  worker_thread+0x200/0x3f0\n\u003c4\u003e [487.227068]  ? __pfx_worker_thread+0x10/0x10\n\u003c4\u003e [487.227075]  kthread+0x10d/0x150\n\u003c4\u003e [487.227083]  ? __pfx_kthread+0x10/0x10\n\u003c4\u003e [487.227092]  ret_from_fork+0x3d4/0x480\n\u003c4\u003e [487.227099]  ? __pfx_kthread+0x10/0x10\n\u003c4\u003e [487.227107]  ret_from_fork_asm+0x1a/0x30\n\u003c4\u003e [487.227141]  \u003c/TASK\u003e\n```\n\nFix this by replacing the non-atomic pointer read + separate clear with\nxchg() in both racing paths. xchg() is a single indivisible hardware\ninstruction that atomically reads the old pointer and writes NULL. This\nguarantees only one of the two concurrent callers obtains the non-NULL\npointer and performs the put, the other gets NULL and skips it.\n\n(cherry picked from commit 13238dc0ee4f9ab8dafa2cca7295736191ae2f42)","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/i915/gt: fix refcount underflow in intel_engine_park_heartbeat","id":"CVE-2026-31656","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":"linux:linux_kernel","products":["linux:linux_kernel"],"type":"use_after_free","year":"2026"},"n_packages":0,"n_references":8,"next":{"headline":"batman-adv: hold claim backbone gateways by reference","id":"CVE-2026-31657"},"packages":[],"prev":{"headline":"pmdomain: imx8mp-blk-ctrl: Keep the NOC_HDCP clock enabled","id":"CVE-2026-31655"},"products":["Linux"],"published":"2026-04-24","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 Intel i915 GPU driver causes a use-after-free, potentially leading to system crashes or arbitrary code execution.","url":"https://insights.sbomify.com/CVE-2026-31656/"}