# CVE-2026-46066: ceph: fix num_ops off-by-one when crypto allocation fails

CVE-2026-46066 is fixed in 19 products on 1 platform, first by ALAS2023-2026-1754, released May 25, 2026. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2026-46066
- Priority: Routine
- CVSS: 5.5 (Moderate)
- EPSS: 0.0012
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: May 25, 2026
- Weakness: Off-by-one Error
- Vendor advisory: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-46066

## Description

In the Linux kernel, the following vulnerability has been resolved:  ceph: fix num_ops off-by-one when crypto allocation fails  move_dirty_folio_in_page_array() may fail if the file is encrypted, the dirty folio is not the first in the batch, and it fails to allocate a bounce buffer to hold the ciphertext. When that happens, ceph_process_folio_batch() simply redirties the folio and flushes the current batch -- it can retry that folio in a future batch.  However, if this failed folio is not contiguous with the last folio that did make it into the batch, then ceph_process_folio_batch() has already incremented `ceph_wbc->num_ops`; because it doesn't follow through and add the discontiguous folio to the array, ceph_submit_write() -- which expects that `ceph_wbc->num_ops` accurately reflects the number of contiguous ranges (and therefore the required number of "write extent" ops) in the writeback -- will panic the kernel:      BUG_ON(ceph_wbc->op_idx + 1 != req->r_num_ops);  This issue can be reproduced on affected kernels by writing to fscrypt-enabled CephFS file(s) with a 4KiB-written/4KiB-skipped/repeat pattern (total filesize should not matter) and gradually increasing the system's memory pressure until a bounce buffer allocation fails.  Fix this crash by decrementing `ceph_wbc->num_ops` back to the correct value when move_dirty_folio_in_page_array() fails, but the folio already started counting a new (i.e. still-empty) extent.  The defect corrected by this patch has existed since 2022 (see first `Fixes:`), but another bug blocked multi-folio encrypted writeback until recently (see second `Fixes:`). The second commit made it into 6.18.16, 6.19.6, and 7.0-rc1, unmasking the panic in those versions. This patch therefore fixes a regression (panic) introduced by cac190c7674f.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | bpftool6.18 amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | bpftool6.18-debuginfo amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel-livepatch-6.18.30-61.116 amzn 2023 | 1:1.0-0.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel6.18 amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel6.18-debuginfo amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel6.18-debuginfo-common-aarch64 amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel6.18-debuginfo-common-x86_64 amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel6.18-devel amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel6.18-headers amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel6.18-modules-extra amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel6.18-modules-extra-common amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel6.18-tools amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel6.18-tools-debuginfo amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | kernel6.18-tools-devel amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | linux Debian 13.5 (trixie) | 6.12.115-2 | [DEBIAN-CVE-2026-46066](https://patchblox.com/security/data/fix/linux/debian-cve-2026-46066.md) | May 27, 2026 |
| Linux | linux Debian 14 | 7.0.4-1 | [DEBIAN-CVE-2026-46066](https://patchblox.com/security/data/fix/linux/debian-cve-2026-46066.md) | May 27, 2026 |
| Linux | perf6.18 amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | perf6.18-debuginfo amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | python3-perf6.18 amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |
| Linux | python3-perf6.18-debuginfo amzn 2023 | 1:6.18.30-61.116.amzn2023 | [ALAS2023-2026-1754](https://patchblox.com/security/data/fix/linux/alas2023-2026-1754.md) | May 25, 2026 |

---

Data as of 2026-11-08T13:06:02Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
