HIGH
smb WriteRetry Corruption
CVE-2026-43362
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H
KernelScan AI4.4MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: smb: client: fix in-place encryption corruption in SMB2_write() SMB2_write() places write payload in iov[1..n] as part of rq_iov. smb3_init_transform_rq() pointer-shares rq_iov, so crypt_message() encrypts iov[1] in-place, replacing the original plaintext with ciphertext. On a replayable error, the retry sends the same iov[1] which now contains ciphertext instead of the original data, resulting in corruption. The corruption is most likely to be observed when connections are unstable, as reconnects trigger write retries that re-send the already-encrypted data. This affects SFU mknod, MF symlinks, etc. On kernels before 6.10 (prior to the netfs conversion), sync writes also used this path and were similarly affected. The async write path wasn't unaffected as it uses rq_iter which gets deep-copied. Fix by moving the write payload into rq_iter via iov_iter_kvec(), so smb3_init_transform_rq() deep-copies it before encryption.
02KernelScan AI Analysis
Risk summary
SMB client users face data corruption when writing to encrypted SMB3 shares during network instability. The vulnerability causes retry operations to send already-encrypted data instead of original plaintext, corrupting written files. This affects any system using SMB3 encryption with unstable network connections.
Vulnerability analysis
The root cause is in SMB2_write() where write payload is placed in iov[1..n] and encrypted in-place by crypt_message(). On network errors requiring retries, the same iov buffer is reused but now contains ciphertext instead of the original data, causing corruption. The fix moves the payload to rq_iter via iov_iter_kvec() so smb3_init_transform_rq() deep-copies it before encryption, preserving the original for retries. Attack surface is local SMB client usage requiring low privileges.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 6.12 | 6.12.78 | 52327268224f |
| 6.18 | 6.18.19 | 92e64f1852f4 |
| 6.19 | 6.19.9 | aea5e37388a0 |
| 6.6 | 6.6.130 | 438e77435aee |
| mainline | 7.0 | d78840a6a38d |