Critical · published June 19, 2024
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Fix seg fault in rxe_comp_queue_pkt
In rxe_comp_queue_pkt() an incoming response packet skb is enqueued to the
resp_pkts queue and then a decision is made whether to run the completer
task inline or schedule it. Finally the skb is dereferenced to bump a 'hw'
performance counter. This is wrong because if the completer task is
already running in a separate thread it may have already processed the skb
and freed it which can cause a seg fault. This has been observed
infrequently in testing at high scale.
This patch fixes this by changing the order of enqueuing the packet until
after the counter is accessed.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 4.12, < 5.4.285 | 5.4.285 |
| linux/linux_kernel | ≥ 5.5, < 5.10.227 | 5.10.227 |
| linux/linux_kernel | ≥ 5.11, < 5.15.168 | 5.15.168 |
| linux/linux_kernel | ≥ 5.16, < 6.1.93 | 6.1.93 |
| linux/linux_kernel | ≥ 6.2, < 6.6.33 | 6.6.33 |
| linux/linux_kernel | ≥ 6.7, < 6.8.12 | 6.8.12 |
| linux/linux_kernel | ≥ 6.9, < 6.9.3 | 6.9.3 |