Patch "tipc: only accept encrypted MSG_CRYPTO msgs" has been added to the 5.10-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

    tipc: only accept encrypted MSG_CRYPTO msgs

to the 5.10-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:
     tipc-only-accept-encrypted-msg_crypto-msgs.patch
and it can be found in the queue-5.10 subdirectory.

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



commit e034eb7cda0c45a01d7755867145f11fd1ff9a0d
Author: Xin Long <lucien.xin@xxxxxxxxx>
Date:   Mon Nov 15 07:45:24 2021 -0500

    tipc: only accept encrypted MSG_CRYPTO msgs
    
    [ Upstream commit 271351d255b09e39c7f6437738cba595f9b235be ]
    
    The MSG_CRYPTO msgs are always encrypted and sent to other nodes
    for keys' deployment. But when receiving in peers, if those nodes
    do not validate it and make sure it's encrypted, one could craft
    a malicious MSG_CRYPTO msg to deploy its key with no need to know
    other nodes' keys.
    
    This patch is to do that by checking TIPC_SKB_CB(skb)->decrypted
    and discard it if this packet never got decrypted.
    
    Note that this is also a supplementary fix to CVE-2021-43267 that
    can be triggered by an unencrypted malicious MSG_CRYPTO msg.
    
    Fixes: 1ef6f7c9390f ("tipc: add automatic session key exchange")
    Acked-by: Ying Xue <ying.xue@xxxxxxxxxxxxx>
    Acked-by: Jon Maloy <jmaloy@xxxxxxxxxx>
    Signed-off-by: Xin Long <lucien.xin@xxxxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/tipc/link.c b/net/tipc/link.c
index c92e6984933cb..29591955d08a5 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -1258,8 +1258,11 @@ static bool tipc_data_input(struct tipc_link *l, struct sk_buff *skb,
 		return false;
 #ifdef CONFIG_TIPC_CRYPTO
 	case MSG_CRYPTO:
-		tipc_crypto_msg_rcv(l->net, skb);
-		return true;
+		if (TIPC_SKB_CB(skb)->decrypted) {
+			tipc_crypto_msg_rcv(l->net, skb);
+			return true;
+		}
+		fallthrough;
 #endif
 	default:
 		pr_warn("Dropping received illegal msg type\n");



[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