diff --git a/net/sctp/input.c b/net/sctp/input.c
index 9dcc18db99186ccee40067966c14b15d5576668b..90848d937b9b8971d8787733de18b9dbd43a22c3 100644
--- a/net/sctp/input.c
+++ b/net/sctp/input.c
@@ -1008,6 +1008,9 @@ static struct sctp_association *__sctp_rcv_asconf_lookup(
 	union sctp_addr_param *param;
 	union sctp_addr paddr;
 
+	if (ntohs(ch->length) < sizeof(*asconf) + sizeof(struct sctp_paramhdr))
+		return NULL;
+
 	/* Skip over the ADDIP header and find the Address parameter */
 	param = (union sctp_addr_param *)(asconf + 1);