netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] net/sctp: Make sha1 as default algorithm if fips is enabled
@ 2023-06-01 18:17 Ashwin Dayanand Kamat
  2023-06-02 15:15 ` Simon Horman
  0 siblings, 1 reply; 4+ messages in thread
From: Ashwin Dayanand Kamat @ 2023-06-01 18:17 UTC (permalink / raw)
  To: Vlad Yasevich, Neil Horman, Marcelo Ricardo Leitner,
	David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	linux-sctp, netdev, linux-kernel
  Cc: Ashwin Dayanand Kamat, Simon Horman, amakhalov, vsirnapalli,
	akaher, tkundu, keerthanak

MD5 is not FIPS compliant. But still md5 was used as the
default algorithm for sctp if fips was enabled.
Due to this, listen() system call in ltp tests was
failing for sctp in fips environment, with below error message.

[ 6397.892677] sctp: failed to load transform for md5: -2

Fix is to not assign md5 as default algorithm for sctp
if fips_enabled is true. Instead make sha1 as default algorithm.
The issue fixes ltp testcase failure "cve-2018-5803 sctp_big_chunk"

Signed-off-by: Ashwin Dayanand Kamat <kashwindayan@vmware.com>
---
v3:
* Resolved hunk failures.
* Changed the ratelimited notice to be more meaningful.
* Used ternary condition for if/else condtion.
v2:
* The listener can still fail if fips mode is enabled after
  that the netns is initialized.
* Fixed this in sctp_listen_start() as suggested by
  Paolo Abeni <pabeni@redhat.com>
---
 net/sctp/socket.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index cda8c2874691..d7cde9cc706e 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -49,6 +49,7 @@
 #include <linux/poll.h>
 #include <linux/init.h>
 #include <linux/slab.h>
+#include <linux/fips.h>
 #include <linux/file.h>
 #include <linux/compat.h>
 #include <linux/rhashtable.h>
@@ -8501,6 +8502,15 @@ static int sctp_listen_start(struct sock *sk, int backlog)
 	struct crypto_shash *tfm = NULL;
 	char alg[32];
 
+	if (fips_enabled && !strcmp(sp->sctp_hmac_alg, "md5")) {
+		sp->sctp_hmac_alg = IS_ENABLED(CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1) ?
+				    "sha1" : NULL;
+
+		net_info_ratelimited("changing the hmac algorithm to %s "
+				     "as md5 is not supported when fips is enabled",
+				      sp->sctp_hmac_alg);
+	}
+
 	/* Allocate HMAC for generating cookie. */
 	if (!sp->hmac && sp->sctp_hmac_alg) {
 		sprintf(alg, "hmac(%s)", sp->sctp_hmac_alg);
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-06-22 14:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-01 18:17 [PATCH v3] net/sctp: Make sha1 as default algorithm if fips is enabled Ashwin Dayanand Kamat
2023-06-02 15:15 ` Simon Horman
2023-06-02 23:16   ` Xin Long
2023-06-22 14:54     ` Ashwin Dayanand Kamat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).