From patchwork Thu Jan 26 18:54:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thadeu Lima de Souza Cascardo X-Patchwork-Id: 1732443 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=VDatkfjl; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4P2qff2YV7z23gY for ; Fri, 27 Jan 2023 05:55:54 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1pL7PX-0007v2-Bz; Thu, 26 Jan 2023 18:55:47 +0000 Received: from smtp-relay-canonical-1.internal ([10.131.114.174] helo=smtp-relay-canonical-1.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1pL7PV-0007s6-Ji for kernel-team@lists.ubuntu.com; Thu, 26 Jan 2023 18:55:45 +0000 Received: from quatroqueijos.. (unknown [179.93.156.234]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-1.canonical.com (Postfix) with ESMTPSA id 6D5893FDA3 for ; Thu, 26 Jan 2023 18:55:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1674759345; bh=zlGZ+RGhqPhCrU8Re5ALT1HzRA7+sfbqKU6ZzO55tQc=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=VDatkfjlO19Gp3cMVGCTnNOMyfAGYJgNTSKE7fn7hjzH8cYq5QcqRNG+FOqpQvwI4 8uK1JT/l3OB0d3cYjI9BYMF6OGeDJP/GkFpeQQz/KsQVLnGV7braJ78HQxKPrm9wjt 29AE5sDZhgikeY+2si5ylOe0Pwpxva1kvDco+cagfa3YsgvoR1HZCoFg/56v8ja8Np 9lrI/pycqr9Mw29IUGc8USM+Np+eJ0mO6EqgwJZZ577EUrLINL2XXsevmxsPAihmkN JFQFsLFUD8+Sy55bSiwiM9+ObC2KKXvpPTAoEK8C7VIZtaBN/n4KuN8RnnBV4gyZZp lvLjuP7JQw+9A== From: Thadeu Lima de Souza Cascardo To: kernel-team@lists.ubuntu.com Subject: [UBUNTU Kinetic/OEM-6.0/Lunar/Unstable 2/2] net/ulp: use consistent error code when blocking ULP Date: Thu, 26 Jan 2023 15:54:56 -0300 Message-Id: <20230126185456.986615-7-cascardo@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230126185456.986615-1-cascardo@canonical.com> References: <20230126185456.986615-1-cascardo@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Paolo Abeni The referenced commit changed the error code returned by the kernel when preventing a non-established socket from attaching the ktls ULP. Before to such a commit, the user-space got ENOTCONN instead of EINVAL. The existing self-tests depend on such error code, and the change caused a failure: RUN global.non_established ... tls.c:1673:non_established:Expected errno (22) == ENOTCONN (107) non_established: Test failed at step #3 FAIL global.non_established In the unlikely event existing applications do the same, address the issue by restoring the prior error code in the above scenario. Note that the only other ULP performing similar checks at init time - smc_ulp_ops - also fails with ENOTCONN when trying to attach the ULP to a non-established socket. Reported-by: Sabrina Dubroca Fixes: 2c02d41d71f9 ("net/ulp: prevent ULP without clone op from entering the LISTEN status") Signed-off-by: Paolo Abeni Reviewed-by: Sabrina Dubroca Link: https://lore.kernel.org/r/7bb199e7a93317fb6f8bf8b9b2dc71c18f337cde.1674042685.git.pabeni@redhat.com Signed-off-by: Jakub Kicinski (cherry picked from commit 8ccc99362b60c6f27bb46f36fdaaccf4ef0303de) CVE-2023-0461 Signed-off-by: Thadeu Lima de Souza Cascardo --- net/ipv4/tcp_ulp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ipv4/tcp_ulp.c b/net/ipv4/tcp_ulp.c index 05b6077b9f2c..2aa442128630 100644 --- a/net/ipv4/tcp_ulp.c +++ b/net/ipv4/tcp_ulp.c @@ -139,7 +139,7 @@ static int __tcp_set_ulp(struct sock *sk, const struct tcp_ulp_ops *ulp_ops) if (sk->sk_socket) clear_bit(SOCK_SUPPORT_ZC, &sk->sk_socket->flags); - err = -EINVAL; + err = -ENOTCONN; if (!ulp_ops->clone && sk->sk_state == TCP_LISTEN) goto out_err;