Description
In the Linux kernel, the following vulnerability has been resolved: smb: client: close completed creates on compound wait errors compound_send_recv() waits for responses in order. If a later wait is interrupted, or if a later MID fails during response synchronization, an earlier CREATE may already have opened a remote handle. The earlier mid is then released without invoking handle_cancelled_mid(), leaving the remote handle open because no FID was copied to the caller. Mark completed earlier mids as cancelled when a compound wait or MID synchronization aborts. Keep their response buffers attached while the MIDs are synchronized, and transfer them only after synchronization of the processed responses, so the release path can inspect successful CREATE responses and queue SMB2_close() after a later failure. Account for a remote open only after the close work is allocated and before it is queued, since the caller has not yet updated num_remote_opens. Mark the create+close compound used by smb2_unlink() so it is not closed again. Non-CREATE responses and compounds that already include a close keep their existing behavior.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
e0bba0b8548179b696e86c158ea8f45f2ef6ad14 to < 8afc80156b1d9e2cfd02d42c255305fad95b59fcaffectede0bba0b8548179b696e86c158ea8f45f2ef6ad14 to < 2cb07d1a6a30283dbfc809c8036bc1fd103d59faaffectede0bba0b8548179b696e86c158ea8f45f2ef6ad14 to < 224b56b7c02b2bfb1f5bee18d5f56ae6b052be44affectede0bba0b8548179b696e86c158ea8f45f2ef6ad14 to < 253612499ce9b4cd7bb922fe507ec204bddd9313affectede0bba0b8548179b696e86c158ea8f45f2ef6ad14 to < 6c5c547f037bc18f0b8d0b5db5a648f8f630ce85affected
Linux Linux
Default version status: affected
4.19affected0 to < 4.19unaffected6.6.160 to ≤ 6.6.*unaffected6.12.113 to ≤ 6.12.*unaffected6.18.56 to ≤ 6.18.*unaffected7.2.9 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/8afc80156b1d9e2cfd02d42c255305fad95b59fc ↗
- https://git.kernel.org/stable/c/2cb07d1a6a30283dbfc809c8036bc1fd103d59fa ↗
- https://git.kernel.org/stable/c/224b56b7c02b2bfb1f5bee18d5f56ae6b052be44 ↗
- https://git.kernel.org/stable/c/253612499ce9b4cd7bb922fe507ec204bddd9313 ↗
- https://git.kernel.org/stable/c/6c5c547f037bc18f0b8d0b5db5a648f8f630ce85 ↗