Skip to main content

Linux Kernel CVE-2025-71070

HIGH
2026-01-13 416baaa9-dc9f-4396-8d5f-8c081fb06d67
High
Disputed · 7.8 Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Share

Severity by source

Sources disagree (Low–High)
Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.8 HIGH

Local vector and low privileges because attacker must control a ublk server; low complexity and high C/I/A from illegitimate copy access to completed request memory.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat
3.3 LOW
qualitative

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

6
Analysis Updated
Jul 30, 2026 - 06:58 vuln.today
v3 (cvss_changed)
Analysis Updated
Jul 30, 2026 - 06:57 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Jul 30, 2026 - 06:37 vuln.today
cvss_changed
CVSS changed
Jul 30, 2026 - 06:37 NVD
7.8 (HIGH)
Analysis Generated
Mar 12, 2026 - 21:54 vuln.today
CVE Published
Jan 13, 2026 - 16:16 nvd
N/A

DescriptionCVE.org

In the Linux kernel, the following vulnerability has been resolved:

ublk: clean up user copy references on ublk server exit

If a ublk server process releases a ublk char device file, any requests dispatched to the ublk server but not yet completed will retain a ref value of UBLK_REFCOUNT_INIT. Before commit e63d2228ef83 ("ublk: simplify aborting ublk request"), __ublk_fail_req() would decrement the reference count before completing the failed request. However, that commit optimized __ublk_fail_req() to call __ublk_complete_rq() directly without decrementing the request reference count. The leaked reference count incorrectly allows user copy and zero copy operations on the completed ublk request. It also triggers the WARN_ON_ONCE(refcount_read(&io->ref)) warnings in ublk_queue_reinit() and ublk_deinit_queue(). Commit c5c5eb24ed61 ("ublk: avoid ublk_io_release() called after ublk char dev is closed") already fixed the issue for ublk devices using UBLK_F_SUPPORT_ZERO_COPY or UBLK_F_AUTO_BUF_REG. However, the reference count leak also affects UBLK_F_USER_COPY, the other reference-counted data copy mode. Fix the condition in ublk_check_and_reset_active_ref() to include all reference-counted data copy modes. This ensures that any ublk requests still owned by the ublk server when it exits have their reference counts reset to 0.

AnalysisAI

Local privilege-adjacent memory corruption in the Linux kernel ublk (userspace block driver) subsystem allows a ublk server process to trigger use-after-free-style access on completed I/O requests by exiting while requests are still in flight. The regression, introduced by commit e63d2228ef83 which stopped decrementing the request reference count in __ublk_fail_req(), leaves a leaked UBLK_REFCOUNT_INIT reference that permits illegitimate user-copy and zero-copy operations on already-completed requests and trips WARN_ON_ONCE reference-count assertions during queue teardown. It carries a CVSS 7.8 (high) with local vector and low privileges, EPSS is negligible at 0.03% (7th percentile), and there is no public exploit identified at time of analysis.

Technical ContextAI

ublk is the Linux kernel's userspace block-device framework, where a userspace 'ublk server' services block I/O dispatched via a character device (/dev/ublkcN). To move data between kernel and userspace efficiently, ublk supports reference-counted data-copy modes: UBLK_F_SUPPORT_ZERO_COPY, UBLK_F_AUTO_BUF_REG, and UBLK_F_USER_COPY. Each in-flight request holds a refcount (io->ref) initialized to UBLK_REFCOUNT_INIT. Commit e63d2228ef83 ('ublk: simplify aborting ublk request') optimized __ublk_fail_req() to call __ublk_complete_rq() directly without first dropping the request reference, so when the server releases the char device with requests still outstanding, the reference is leaked. An earlier fix (c5c5eb24ed61) reset the reference for the zero-copy and auto-buf-reg modes but omitted the USER_COPY mode. The root cause is an object-lifetime/reference-counting error (CWE class akin to CWE-416 Use-After-Free / CWE-911 improper reference count), allowing operations on a request whose lifecycle should already be finished. The current fix broadens the condition in ublk_check_and_reset_active_ref() to cover all reference-counted copy modes so residual refs are reset to 0 on server exit.

Affected ProductsAI

The Linux kernel's ublk driver is affected on versions that include commit e63d2228ef83 ('ublk: simplify aborting ublk request') up to the fix, specifically for devices using the UBLK_F_USER_COPY data-copy mode (the zero-copy and auto-buf-reg modes were already remediated by commit c5c5eb24ed61). Fixed stable commits are published at https://git.kernel.org/stable/c/13456b4f1033d911f8bf3a0a1195656f293ba0f6 and https://git.kernel.org/stable/c/daa24603d9f0808929514ee62ced30052ca7221c. Ubuntu tracks this in USN-8177-1 (https://ubuntu.com/security/notices/USN-8177-1), and VulDB entry 340635 (https://vuldb.com/vuln/340635) provides additional cross-referencing. Exact affected version ranges depend on which stable trees backported the regressing commit; no CPE strings were provided in the input, so precise version boundaries should be confirmed against each distribution's kernel changelog.

RemediationAI

Apply the Linux kernel patch that fixes ublk_check_and_reset_active_ref() to reset references for all reference-counted data-copy modes, delivered via stable commits https://git.kernel.org/stable/c/13456b4f1033d911f8bf3a0a1195656f293ba0f6 and https://git.kernel.org/stable/c/daa24603d9f0808929514ee62ced30052ca7221c; on Ubuntu, upgrade to the fixed kernel package per USN-8177-1 (https://ubuntu.com/security/notices/USN-8177-1) and reboot. Patch is available from the vendor, but no single upstream release tag was provided in the input, so confirm the exact patched kernel version against your distribution's advisory before deploying. Where immediate patching is not possible, the most effective compensating control is to avoid enabling or exposing ublk: do not load the ublk_drv module and restrict access to /dev/ublk-control and the ublk char devices to trusted operators only, since exploitation requires running a ublk server; the trade-off is loss of ublk-backed block devices for workloads that rely on them. Specifically avoid the UBLK_F_USER_COPY mode on unpatched kernels if ublk must remain in use.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 16.0 Not-Affected

Share

CVE-2025-71070 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy