From: Marcelo Ricardo Leitner <mleitner@redhat.com>
To: Vlad Yasevich <vyasevic@redhat.com>
Cc: Xin Long <lucien.xin@gmail.com>,
network dev <netdev@vger.kernel.org>,
davem@davemloft.net
Subject: Re: [PATCH net v3] sctp: asconf's process should verify address parameter is in the beginning
Date: Wed, 26 Aug 2015 17:59:25 -0300 [thread overview]
Message-ID: <20150826205925.GL1873@localhost.localdomain> (raw)
In-Reply-To: <55DE24AD.5090507@redhat.com>
On Wed, Aug 26, 2015 at 04:42:21PM -0400, Vlad Yasevich wrote:
> On 08/26/2015 04:35 PM, Xin Long wrote:
> > in sctp_process_asconf(), we get address parameter from the beginning of
> > the addip params. but we never check if it's really there. if the addr
> > param is not there, it still can pass sctp_verify_asconf(), then to be
> > handled by sctp_process_asconf(), it will not be safe.
> >
> > so add a code in sctp_verify_asconf() to check the address parameter is in
> > the beginning, or return false to send abort.
> >
> > v2->v3:
> > * put the check in the loop, add the check for multiple address parameters.
>
>
> Please split the multiple address detection from first address detection.
> They are 2 different bugs and each one deserves a separate commit and
> changelog.
See below, thx.
>
> Thanks
> -vlad
>
> > v1->v2:
> > * put the check behind the params' length verify.
> >
> > Signed-off-by: Xin Long <lucien.xin@gmail.com>
> > Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
> > ---
> > net/sctp/sm_make_chunk.c | 14 ++++++++++++--
> > 1 file changed, 12 insertions(+), 2 deletions(-)
> >
> > diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
> > index 06320c8..4068fe1 100644
> > --- a/net/sctp/sm_make_chunk.c
> > +++ b/net/sctp/sm_make_chunk.c
> > @@ -3130,14 +3130,24 @@ bool sctp_verify_asconf(const struct sctp_association *asoc,
> > case SCTP_PARAM_ERR_CAUSE:
> > break;
> > case SCTP_PARAM_IPV4_ADDRESS:
> > + if (addr_param_seen) {
> > + /* peer placed multiple address parameters into
> > + * the same asconf. reject it.
> > + */
> > + return false;
> > + }
> > if (length != sizeof(sctp_ipv4addr_param_t))
> > return false;
> > - addr_param_seen = true;
> > + if (param.v == addip->addip_hdr.params)
> > + addr_param_seen = true;
> > break;
I know I had suggested using addr_param_seen to check for multiple
occurrences, but now realized we can simplify this with something like:
+ if (param.v != addip->addip_hdr.params)
+ return false;
addr_param_seen = true;
Then the check against addr_param_seen is not needed and do both checks
at once.
Thanks,
Marcelo
> > case SCTP_PARAM_IPV6_ADDRESS:
> > + if (addr_param_seen)
> > + return false;
> > if (length != sizeof(sctp_ipv6addr_param_t))
> > return false;
> > - addr_param_seen = true;
> > + if (param.v == addip->addip_hdr.params)
> > + addr_param_seen = true;
> > break;
> > case SCTP_PARAM_ADD_IP:
> > case SCTP_PARAM_DEL_IP:
> >
>
next prev parent reply other threads:[~2015-08-26 20:59 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-26 20:35 [PATCH net v3] sctp: asconf's process should verify address parameter is in the beginning Xin Long
2015-08-26 20:42 ` Vlad Yasevich
2015-08-26 20:59 ` Marcelo Ricardo Leitner [this message]
2015-08-26 21:09 ` lucien xin
2015-08-26 21:37 ` Vlad Yasevich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150826205925.GL1873@localhost.localdomain \
--to=mleitner@redhat.com \
--cc=davem@davemloft.net \
--cc=lucien.xin@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=vyasevic@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.