Description
In the Linux kernel, the following vulnerability has been resolved: nvme-tcp: fix usage of page_frag_cache nvme uses page_frag_cache to preallocate PDU for each preallocated request of block device. Block devices are created in parallel threads, consequently page_frag_cache is used in not thread-safe manner. That leads to incorrect refcounting of backstore pages and premature free. That can be catched by !sendpage_ok inside network stack: WARNING: CPU: 7 PID: 467 at ../net/core/skbuff.c:6931 skb_splice_from_iter+0xfa/0x310. tcp_sendmsg_locked+0x782/0xce0 tcp_sendmsg+0x27/0x40 sock_sendmsg+0x8b/0xa0 nvme_tcp_try_send_cmd_pdu+0x149/0x2a0 Then random panic may occur. Fix that by serializing the usage of page_frag_cache.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
4e893ca8117022de68ce1b61c0309e3d17bb8a25 to < d19f98c79f1b7e09e4cdf5c20d626e571e487467affected4e893ca8117022de68ce1b61c0309e3d17bb8a25 to < 64561afb42d8390695bf810d9bbd087cbca00291affected4e893ca8117022de68ce1b61c0309e3d17bb8a25 to < 0a9750263ffacbbd2048a391fd4bd22e2146c57daffected4e893ca8117022de68ce1b61c0309e3d17bb8a25 to < 6e4cf281558709b92ec2ca3054fe2ffc69266ef9affected4e893ca8117022de68ce1b61c0309e3d17bb8a25 to < 36ac05f7cfd59d90c597071304b14e98090d5dd1affectedc57506918b078ecab7dedebef0f34dbc23ae2e46affected6.6.160 to < 6.7affected
Linux Linux
Default version status: affected
6.12affected0 to < 6.12unaffected6.12.108 to ≤ 6.12.*unaffected6.18.49 to ≤ 6.18.*unaffected7.1.13 to ≤ 7.1.*unaffected7.2.3 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/d19f98c79f1b7e09e4cdf5c20d626e571e487467 ↗
- https://git.kernel.org/stable/c/64561afb42d8390695bf810d9bbd087cbca00291 ↗
- https://git.kernel.org/stable/c/0a9750263ffacbbd2048a391fd4bd22e2146c57d ↗
- https://git.kernel.org/stable/c/6e4cf281558709b92ec2ca3054fe2ffc69266ef9 ↗
- https://git.kernel.org/stable/c/36ac05f7cfd59d90c597071304b14e98090d5dd1 ↗