]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[PATCH] SCTP: Validate the parameter length in HB-ACK chunk (CVE-2006-1857)
authorVladislav Yasevich <vladislav.yasevich@hp.com>
Fri, 19 May 2006 21:25:53 +0000 (14:25 -0700)
committerChris Wright <chrisw@sous-sol.org>
Sat, 20 May 2006 22:00:34 +0000 (15:00 -0700)
If SCTP receives a badly formatted HB-ACK chunk, it is possible
that we may access invalid memory and potentially have a buffer
overflow.  We should really make sure that the chunk format is
what we expect, before attempting to touch the data.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
net/sctp/sm_statefuns.c

index 8cdba51ec0766a4d333ddc30e7ba4b756fe7802f..9395e098ae297ef3083244fc934d5ff21f2e0e38 100644 (file)
@@ -1030,6 +1030,12 @@ sctp_disposition_t sctp_sf_backbeat_8_3(const struct sctp_endpoint *ep,
                                                  commands);
 
        hbinfo = (sctp_sender_hb_info_t *) chunk->skb->data;
+       /* Make sure that the length of the parameter is what we expect */
+       if (ntohs(hbinfo->param_hdr.length) !=
+                                   sizeof(sctp_sender_hb_info_t)) {
+               return SCTP_DISPOSITION_DISCARD;
+       }
+
        from_addr = hbinfo->daddr;
        link = sctp_assoc_lookup_paddr(asoc, &from_addr);