CVE-2026-74434
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
rxrpc: Don't move a peeked OOB message onto the pending queue
rxrpc_recvmsg_oob() takes a received oob message off recvmsg_oobq and, if a response is needed, moves it onto the pending_oobq tree. However, only the unlink from recvmsg_oobq is guarded by MSG_PEEK; the move onto pending_oobq always runs.
As a result, reading a challenge with MSG_PEEK leaves the skb on recvmsg_oobq while also adding it to pending_oobq. Since struct sk_buff's rbnode shares storage with its next and prev pointers, rb_insert_color() overwrites the list linkage, and the skb, which holds a single reference, becomes reachable from both queues at once.
When the socket is closed both queues are drained in turn. While draining recvmsg_oobq, __skb_unlink() follows the next and prev pointers that rbnode has overwritten and writes to a bad address. Also, as the skb holds a single reference but is freed from each queue, both the skb and the connection reference it holds are released twice. This leads to memory corruption and to a use-after-free caused by the connection refcount underflow.
MSG_PEEK does not consume the message from the queue, so only unlink it from recvmsg_oobq and then move it onto pending_oobq or free it when the message is actually consumed.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 5800b1cf3fd8ccab752a101865be1e76dac33142 < 9ada3931beb37068fcb725b34b0398457009f343 | affected |
| Linux | Linux | 5800b1cf3fd8ccab752a101865be1e76dac33142 < 5f470cc883416fea6d3bce18ef96bf91dd49ffc3 | affected |
| Linux | Linux | 5800b1cf3fd8ccab752a101865be1e76dac33142 < 5801cff7d5d7b4e9d877dfb627b23eb63167f02c | affected |
| Linux | Linux | 6.16 | affected |
| Linux | Linux | 0 < 6.16 | unaffected |
| Linux | Linux | 6.18.40 <= 6.18.* | unaffected |
| Linux | Linux | 7.1.5 <= 7.1.* | unaffected |
| Linux | Linux | 7.2-rc1 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/9ada3931beb37068fcb725b34b0398457009f343
- https://git.kernel.org/stable/c/5f470cc883416fea6d3bce18ef96bf91dd49ffc3
- https://git.kernel.org/stable/c/5801cff7d5d7b4e9d877dfb627b23eb63167f02c
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.