CVEvulnerability
CVE-2025-38100
5.5 MEDIUM
Official page ↗
- Status
- Modified
- Published
- 2025-07-03
- Last modified
- 2026-06-17
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- CVSS 3.1 ([email protected])
- 5.5 MEDIUM — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Weaknesses
- CWE-476
Description
In the Linux kernel, the following vulnerability has been resolved:
x86/iopl: Cure TIF_IO_BITMAP inconsistencies
io_bitmap_exit() is invoked from exit_thread() when a task exists or
when a fork fails. In the latter case the exit_thread() cleans up
resources which were allocated during fork().
io_bitmap_exit() invokes task_update_io_bitmap(), which in turn ends up
in tss_update_io_bitmap(). tss_update_io_bitmap() operates on the
current task. If current has TIF_IO_BITMAP set, but no bitmap installed,
tss_update_io_bitmap() crashes with a NULL pointer dereference.
There are two issues, which lead to that problem:
1) io_bitmap_exit() should not invoke task_update_io_bitmap() when
the task, which is cleaned up, is not the current task. That's a
clear indicator for a cleanup after a failed fork().
2) A task should not have TIF_IO_BITMAP set and neither a bitmap
installed nor IOPL emulation level 3 activated.
This happens when a kernel thread is created in the context of
a user space thread, which has TIF_IO_BITMAP set as the thread
flags are copied and the IO bitmap pointer is cleared.
Other than in the failed fork() case this has no impact because
kernel threads including IO workers never return to user space and
therefore never invoke tss_update_io_bitmap().
Cure this by adding the missing cleanups and checks:
1) Prevent io_bitmap_exit() to invoke task_update_io_bitmap() if
the to be cleaned up task is not the current task.
2) Clear TIF_IO_BITMAP in copy_thread() unconditionally. For user
space forks it is set later, when the IO bitmap is inherited in
io_bitmap_share().
For paranoia sake, add a warning into tss_update_io_bitmap() to catch
the case, when that code is invoked with inconsistent state.
Affected configurations
• linux linux kernel (>= 5.5 < 5.10.239)
• linux linux kernel (>= 5.11 < 5.15.186)
• linux linux kernel (>= 5.16 < 6.1.142)
• linux linux kernel (>= 6.2 < 6.6.94)
• linux linux kernel (>= 6.7 < 6.12.34)
• linux linux kernel (>= 6.13 < 6.15.3)
• debian debian linux 11.0
Related
Weakness · CWE (1)
- CWE-476 NULL Pointer Dereference weakness
References
- https://git.kernel.org/stable/c/2cfcbe1554c119402e7382de974c26b0549899fe Patch
- https://git.kernel.org/stable/c/2dace5e016c991424a3dc6e83b1ae5dca8992d08 Patch
- https://git.kernel.org/stable/c/73cfcc8445585b8af7e18be3c9246b851fdf336c Patch
- https://git.kernel.org/stable/c/8b68e978718f14fdcb080c2a7791c52a0d09bc6d Patch
- https://git.kernel.org/stable/c/aa5ce1485562f20235b4c759eee5ab0c41d2c220 Patch
- https://git.kernel.org/stable/c/b3b3b6366dc8eb5b22edba9adc4bff3cdacfd64c Patch
- https://git.kernel.org/stable/c/d64b7b05a827f98d068f412969eef65489b0cf03 Patch
- https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html Mailing List, Third Party Advisory
- https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html Mailing List, Third Party Advisory
- https://cert-portal.siemens.com/productcert/html/ssa-082556.html cert-portal.siemens.com