Patch "SUNRPC: Fix integer overflow in decode_rc_list()" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    SUNRPC: Fix integer overflow in decode_rc_list()

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     sunrpc-fix-integer-overflow-in-decode_rc_list.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 5e8b28c01c57ad46aa850b7f3a7988729a4b1c6e
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date:   Thu Sep 19 11:50:33 2024 +0300

    SUNRPC: Fix integer overflow in decode_rc_list()
    
    [ Upstream commit 6dbf1f341b6b35bcc20ff95b6b315e509f6c5369 ]
    
    The math in "rc_list->rcl_nrefcalls * 2 * sizeof(uint32_t)" could have an
    integer overflow.  Add bounds checking on rc_list->rcl_nrefcalls to fix
    that.
    
    Fixes: 4aece6a19cf7 ("nfs41: cb_sequence xdr implementation")
    Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
    Signed-off-by: Anna Schumaker <anna.schumaker@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
index 04d27f0ed39ac..1b860995e6bcf 100644
--- a/fs/nfs/callback_xdr.c
+++ b/fs/nfs/callback_xdr.c
@@ -372,6 +372,8 @@ static __be32 decode_rc_list(struct xdr_stream *xdr,
 
 	rc_list->rcl_nrefcalls = ntohl(*p++);
 	if (rc_list->rcl_nrefcalls) {
+		if (unlikely(rc_list->rcl_nrefcalls > xdr->buf->len))
+			goto out;
 		p = xdr_inline_decode(xdr,
 			     rc_list->rcl_nrefcalls * 2 * sizeof(uint32_t));
 		if (unlikely(p == NULL))




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux