Description
In the Linux kernel, the following vulnerability has been resolved: libceph: Fix potential out-of-bounds access in __ceph_x_decrypt() In __ceph_x_decrypt(), a part of the buffer p is interpreted as a ceph_x_encrypt_header, and the magic field of this struct is accessed. This happens without any guarantee that the buffer is large enough to hold this struct. The function parameter ciphertext_len represents the length of the ciphertext to decrypt and is guaranteed to be at most the remaining size of the allocated buffer p. However, this value is not necessarily greater than sizeof(ceph_x_encrypt_header). E.g., a message frame of type FRAME_TAG_AUTH_REPLY_MORE, that is just as long to hold the ciphertext at its end with a ciphertext_len of 8 or less, can trigger an out-of-bounds memory access when accessing hdr->magic. This patch fixes the issue by adding a check to ensure that the decrypted plaintext in the buffer is large enough to represent at least the ceph_x_encrypt_header.
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
e15fd0a11db00fc7f470a9fc804657ec3f6d04a5 to < c417b7d2d1c7fdc25af24490201320e36a3cc21daffectede15fd0a11db00fc7f470a9fc804657ec3f6d04a5 to < 759053333a40c6997c2917dcd6160bfe40d2b42eaffectede15fd0a11db00fc7f470a9fc804657ec3f6d04a5 to < ebc7eddf6225b87e3aae720875f9dd40cb6b1cefaffectede15fd0a11db00fc7f470a9fc804657ec3f6d04a5 to < 5df268406ef38d0f92547959296577c7077dacdcaffectede15fd0a11db00fc7f470a9fc804657ec3f6d04a5 to < c7e9b53aebe401970f1b5f5a01b4e021b18e8bb2affectede15fd0a11db00fc7f470a9fc804657ec3f6d04a5 to < 821365487aa58d06bda65c676ba215d506ba9768affected2982b9c92a66604ffb9fb2db54cf735133d1ef56affected4.9.6 to < 4.10affected
Linux Linux
Default version status: affected
4.10affected0 to < 4.10unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.57 to ≤ 6.18.*unaffected7.0.10 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c417b7d2d1c7fdc25af24490201320e36a3cc21d ↗
- https://git.kernel.org/stable/c/759053333a40c6997c2917dcd6160bfe40d2b42e ↗
- https://git.kernel.org/stable/c/ebc7eddf6225b87e3aae720875f9dd40cb6b1cef ↗
- https://git.kernel.org/stable/c/5df268406ef38d0f92547959296577c7077dacdc ↗
- https://git.kernel.org/stable/c/c7e9b53aebe401970f1b5f5a01b4e021b18e8bb2 ↗
- https://git.kernel.org/stable/c/821365487aa58d06bda65c676ba215d506ba9768 ↗