HIGH
rds ZerocopyMsg UAF
CVE-2026-43502
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
KernelScan AI5.1MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: net/rds: handle zerocopy send cleanup before the message is queued A zerocopy send can fail after user pages have been pinned but before the message is attached to the sending socket. The purge path currently infers zerocopy state from rm->m_rs, so an unqueued message can be cleaned up as if it owned normal payload pages. However, zerocopy ownership is really determined by the presence of op_mmp_znotifier, regardless of whether the message has reached the socket queue. Capture op_mmp_znotifier up front in rds_message_purge() and use it as the cleanup discriminator. If the message is already associated with a socket, keep the existing completion path. Otherwise, drop the pinned page accounting directly and release the notifier before putting the payload pages. This keeps early send failure cleanup consistent with the zerocopy lifetime rules without changing the normal queued completion path.
02KernelScan AI Analysis
Risk summary
A missing cleanup path in the RDS zerocopy send purge logic causes a kernel resource leak when send operations fail after user pages are pinned but before the message is queued. The notifier structure and pinned page accounting are leaked, allowing an unprivileged local attacker to exhaust kernel memory or physical page pools and cause a denial of service.
Vulnerability analysis
The vulnerability exists in rds_message_purge(), which historically inferred zerocopy state from socket association (rm->m_rs). For messages that fail before reaching the socket queue, the purge path skipped zerocopy cleanup, leaking the rds_znotifier and leaving user pages pinned without updating the mm accounting. The fix captures op_mmp_znotifier early and performs direct cleanup for unqueued zerocopy messages. Because the bug is reachable through local socket operations without privileges, any untrusted local user or container workload can trigger the leak.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 5.10 | 5.10.258 | e9aefdc5c53f |
| 5.15 | 5.15.209 | 46662f7dc594 |
| 6.1 | 6.1.175 | 1e262db7675e |
| 6.12 | 6.12.88 | 3abc8983b2ba |
| 6.18 | 6.18.30 | 14ef6fd18db2 |
| 6.6 | 6.6.140 | 21d70744e6d3 |
| 7.0 | 7.0.7 | 0f5c185fc79a |
| mainline | 7.1-rc3 | 44b550d88b26 |