CVE-2026-31656
HighCVSS 7.8Summary
W jądrze Linuxa zidentyfikowano podatność związana z użyciem po zwolnieniu oraz podwójnym zmniejszeniem licznika odniesień w funkcji intel_engine_park_heartbeat. Problem występuje, gdy wątek serca i funkcja intel_engine_park_heartbeat konkurują o zwolnienie tego samego żądania, co prowadzi do błędnego odczytu wskaźnika i ponownego wywołania i915_request_put().
Risk Assessment
Podatność ta może prowadzić do nieprzewidywalnych zachowań systemu, w tym do awarii jądra, co może wpłynąć na stabilność i bezpieczeństwo całej infrastruktury IT organizacji.
Recommendation
Zaleca się aktualizację jądra Linux do wersji, w której wprowadzono poprawkę, aby zlikwidować problem z wyścigiem i zapewnić atomowe operacje na wskaźnikach.
Related vulnerabilities
- CVE-2026-87719Critical
GitLab EE versions from 18.3 before 19.1.8, 19.2 before 19.2.6, and 19.3 before 19.3.2 contain a vulnerability that, under certain conditions, allows an authenticated user with Duo Chat access to obtain Advanced Search instance configurations and sensitive credentials. Exploitation uses a specially crafted GraphQL subscription argument to bypass serialization and perform server object lookup.
- CVE-2026-85706CriticalActively exploited
GitLab CE/EE versions from 18.7 before 19.1.8, 19.2 before 19.2.6, and 19.3 before 19.3.2 contain a vulnerability in the repository commits API caused by improper path confinement and missing authentication enforcement. Under certain conditions, an unauthenticated user could read arbitrary files from the GitLab server.
- CVE-2026-90456Critical
An example environment-configuration file for a bundled inventory-management component ships with a fixed, publicly-known administrative password. A deployment that copies this example file into active configuration without running the setup routine that regenerates credentials will expose that component's administrative interface to anyone aware of the default value.
- CVE-2026-53952Critical
GetSimple CMS (v3.4.0a and below) and GetSimple CMS CE (v3.3.22 and below) contain a logic flaw allowing unauthenticated attackers to create a new administrator account. The automated control that deletes admin/setup.php after installation is neutralized by a self-exclusion bug, leaving the setup script accessible. As of publication, no patched versions are available.
- CVE-2026-79395Critical
The WS-Security (wsse:UsernameToken) verification routine in the Sofia IPC daemon in Xiongmai IP Camera XM530 firmware HMT.CM2005-v220608.1837 and earlier has an improper authentication vulnerability. A remote attacker can bypass authentication and execute privileged ONVIF actions (PTZ control, stream URL retrieval, system reboot) via a crafted SOAP request supplying the admin username with any arbitrary password when the account's stored password is empty.
- CVE-2026-62105Critical
Unauthenticated PHP Object Injection in ThemeREX Addons versions below 2.45.0.
- CVE-2026-62103Critical
Unauthenticated PHP Object Injection in Everest Forms versions 3.6.0 and below.
- CVE-2026-54072Critical
In Authorizer prior to version 2.2.1, the /authorize endpoint accepts any redirect_uri without validating it against AllowedOrigins. With response_type=token or response_type=id_token, the server appends access_token, id_token, and refresh_token as query parameters and issues a 302 redirect to the attacker-supplied URL. An unauthenticated attacker can obtain the client_id from the public /graphql endpoint.
- CVE-2026-82617Critical
The built-in name-finder patterns EMAIL and URL in Apache OpenNLP contain ambiguous nested quantifiers, enabling a ReDoS attack. A crafted input can trigger super-linear backtracking or unbounded matcher recursion, leading to CPU exhaustion or StackOverflowError. The issue affects versions 2.0.0 through 2.5.11 and 3.0.0-M1 through 3.0.0-M5.
- CVE-2026-72710Critical
SPIP before 4.4.18 contains a remote code execution vulnerability in the editer_objet action where the arg parameter resolves SQL table names without enforcing an editable columns allowlist. Attackers with a valid nonce can inject attacker-controlled rows into the spip_jobs table, and by supplying arg=job/0 with crafted fonction and args values, these are later unserialized and executed when the cron job queue is drained.
Original NVD description (English source)
In the Linux kernel, the following vulnerability has been resolved: drm/i915/gt: fix refcount underflow in intel_engine_park_heartbeat A use-after-free / refcount underflow is possible when the heartbeat worker and intel_engine_park_heartbeat() race to release the same engine->heartbeat.systole request. The heartbeat worker reads engine->heartbeat.systole and calls i915_request_put() on it when the request is complete, but clears the pointer in a separate, non-atomic step. Concurrently, a request retirement on another CPU can drop the engine wakeref to zero, triggering __engine_park() -> intel_engine_park_heartbeat(). If the heartbeat timer is pending at that point, cancel_delayed_work() returns true and intel_engine_park_heartbeat() reads the stale non-NULL systole pointer and calls i915_request_put() on it again, causing a refcount underflow: ``` <4> [487.221889] Workqueue: i915-unordered engine_retire [i915] <4> [487.222640] RIP: 0010:refcount_warn_saturate+0x68/0xb0 ... <4> [487.222707] Call Trace: <4> [487.222711] <TASK> <4> [487.222716] intel_engine_park_heartbeat.part.0+0x6f/0x80 [i915] <4> [487.223115] intel_engine_park_heartbeat+0x25/0x40 [i915] <4> [487.223566] __engine_park+0xb9/0x650 [i915] <4> [487.223973] ____intel_wakeref_put_last+0x2e/0xb0 [i915] <4> [487.224408] __intel_wakeref_put_last+0x72/0x90 [i915] <4> [487.224797] intel_context_exit_engine+0x7c/0x80 [i915] <4> [487.225238] intel_context_exit+0xf1/0x1b0 [i915] <4> [487.225695] i915_request_retire.part.0+0x1b9/0x530 [i915] <4> [487.226178] i915_request_retire+0x1c/0x40 [i915] <4> [487.226625] engine_retire+0x122/0x180 [i915] <4> [487.227037] process_one_work+0x239/0x760 <4> [487.227060] worker_thread+0x200/0x3f0 <4> [487.227068] ? __pfx_worker_thread+0x10/0x10 <4> [487.227075] kthread+0x10d/0x150 <4> [487.227083] ? __pfx_kthread+0x10/0x10 <4> [487.227092] ret_from_fork+0x3d4/0x480 <4> [487.227099] ? __pfx_kthread+0x10/0x10 <4> [487.227107] ret_from_fork_asm+0x1a/0x30 <4> [487.227141] </TASK> ``` Fix this by replacing the non-atomic pointer read + separate clear with xchg() in both racing paths. xchg() is a single indivisible hardware instruction that atomically reads the old pointer and writes NULL. This guarantees only one of the two concurrent callers obtains the non-NULL pointer and performs the put, the other gets NULL and skips it. (cherry picked from commit 13238dc0ee4f9ab8dafa2cca7295736191ae2f42)

