[SRU][N:linux-hwe-6.17][PATCH 0/2] CVE-2026-43499, CVE-2026-53163

Fedor Veselovskii asetium at gmail.com
Sun Jul 19 23:19:49 UTC 2026


From: fviolence <asetium at gmail.com>

https://ubuntu.com/security/CVE-2026-43499
https://ubuntu.com/security/CVE-2026-53163

[ Impact ]

Noble linux-hwe-6.17 is vulnerable to CVE-2026-43499. During futex PI proxy
lock rollback, remove_waiter() can operate on current instead of waiter->task.
This can dequeue without holding the correct pi_lock, leave a dangling
pi_blocked_on pointer, and run priority-chain adjustment for the wrong task,
creating a use-after-free condition.

The first fix exposes a separate error path in which waiter->task can still be
NULL because the waiter was never enqueued. That regression is tracked as
CVE-2026-53163, so the second patch is mandatory and must be applied together
with the first.

[ Fix ]

Patch 1 changes remove_waiter() to use waiter->task consistently.

Patch 2 guards the never-enqueued NULL waiter case and changes
rt_mutex_start_proxy_lock() to invoke remove_waiter() only for negative return
values. A positive return means the proxy task acquired the lock immediately
and no waiter cleanup is required.

[ Test Plan ]

- Built Ubuntu linux-hwe-6.17 amd64 packages successfully.
- Booted the resulting generic kernel and exercised normal server workloads.
- Ran the complete futex selftest suite as root successfully.
- Repeated the complete root futex suite 20 times; every run completed with
  status 0. One CPU-count-dependent test was skipped on the four-CPU test
  system; there were no failures or errors.
- Ran the complete epoll selftest suite: 64 passed, 0 failed, 0 skipped.
- Ran stress-ng with two epoll workers for 10 minutes with verification:
  0 failures.
- Kernel taint remained 0. No kernel oops, use-after-free report, NULL pointer
  dereference, call trace, lockup, hung task, or futex/rtmutex warning was
  observed.
- No failed systemd services were present and normal container workloads
  remained operational.

[ Where problems could occur ]

The changes affect rtmutex PI waiter removal and FUTEX_REQUEUE_PI rollback.
A regression could appear as incorrect priority inheritance, a waiter left in
an rtmutex tree, a stale pi_blocked_on pointer, deadlock, task hang, or a NULL
pointer dereference during proxy-lock error handling.

[ Other Info ]

CVE-2026-53163 is a mandatory follow-up to the CVE-2026-43499 fix. The two
patches must be reviewed and applied as one ordered series.

Davidlohr Bueso (1):
  locking/rtmutex: Skip remove_waiter() when waiter is not enqueued

Keenan Dong (1):
  rtmutex: Use waiter::task instead of current in remove_waiter()

 kernel/locking/rtmutex.c     | 16 +++++++++++-----
 kernel/locking/rtmutex_api.c |  2 +-
 2 files changed, 12 insertions(+), 6 deletions(-)

-- 
2.43.0




More information about the kernel-team mailing list