Commit 5c37253
committed
tls: adjust recv return with async crypto and failed copy to userspace
jira VULN-136507
cve-pre CVE-2025-39682
commit-author Sabrina Dubroca <sd@queasysnail.net>
commit 85eef9a
process_rx_list may not copy as many bytes as we want to the userspace
buffer, for example in case we hit an EFAULT during the copy. If this
happens, we should only count the bytes that were actually copied,
which may be 0.
Subtracting async_copy_bytes is correct in both peek and !peek cases,
because decrypted == async_copy_bytes + peeked for the peek case: peek
is always !ZC, and we can go through either the sync or async path. In
the async case, we add chunk to both decrypted and
async_copy_bytes. In the sync case, we add chunk to both decrypted and
peeked. I missed that in commit 6caaf10 ("tls: fix peeking with
sync+async decryption").
Fixes: 4d42cd6 ("tls: rx: fix return value for async crypto")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/1b5a1eaab3c088a9dd5d9f1059ceecd7afe888d1.1711120964.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 85eef9a)
Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>1 parent 9c5015e commit 5c37253
1 file changed
+3
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2117 | 2117 | | |
2118 | 2118 | | |
2119 | 2119 | | |
| 2120 | + | |
| 2121 | + | |
| 2122 | + | |
2120 | 2123 | | |
2121 | 2124 | | |
2122 | 2125 | | |
| |||
0 commit comments