KernelScan.io

HIGH

smb WriteRetry Corruption

CVE-2026-43362

CVSS 8.1 / 10.0 NVD

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H

KernelScan AI4.4MEDIUM

01

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.

02

Engine v0.2.0

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.

Affectedfs/smb/client/smb2pdu.c (SMB client)

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.

03

BranchFixed inPatch commit
6.126.12.7852327268224f
6.186.18.1992e64f1852f4
6.196.19.9aea5e37388a0
6.66.6.130438e77435aee
mainline7.0d78840a6a38d