CVE-2026-90342: bpf: Fix mmap_lock deadlock on arena lock failure

Published Sep 17, 2026
·
Updated

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

bpf: Fix mmaplock deadlock on arena lock failure

Reported by the Sashiko AI review.

arenavmfault() returns VMFAULTRETRY when it can't take arena->spinlock, but it never took mmaplock. The fault path assumes a VMFAULTRETRY handler already dropped mmaplock and re-takes it on the retry, so mmaplock gets taken twice and can deadlock:

douseraddrfault() { fault = handlemmfault(...); // calls arenavmfault() if (fault & VMFAULTRETRY) goto retry; // re-locks mmaplock mmapreadunlock(mm); }

Return VMFAULTSIGBUS instead, for two reasons:

1. We could keep VMFAULTRETRY, but then we'd have to drop the fault lock first and cap the retry ourselves, the way foliolockorretry() does.

2. A failed rawresspinlockirqsave() already means a possible deadlock was detected, so retrying just hits the same lock again.

So returning VMFAULTRETRY here is overkill.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 17, 2026
CVE Published
via MITRE·04:08 PM
Data Sourced
via MITRE·04:08 PM
Description

Frequently Asked Questions

1

What condition causes the deadlock?

The issue occurs when arena_vm_fault() cannot acquire arena->spinlock. It returns VM_FAULT_RETRY despite not having acquired mmap_lock, and the page-fault retry path then takes mmap_lock again, which can deadlock.

2

Why is retrying the fault not a safe workaround?

A failed raw_res_spin_lock_irqsave() already indicates that a possible deadlock was detected. Retrying would attempt the same lock again, so the fix returns VM_FAULT_SIGBUS rather than VM_FAULT_RETRY.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203