netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] dccp: handle invalid feature options length
@ 2011-05-06 13:27 Dan Rosenberg
  2011-05-06 13:53 ` Gerrit Renker
  2011-05-06 19:57 ` Gerrit Renker
  0 siblings, 2 replies; 5+ messages in thread
From: Dan Rosenberg @ 2011-05-06 13:27 UTC (permalink / raw)
  To: gerrit, davem; +Cc: dccp, netdev, linux-kernel, security

A length of zero (after subtracting two for the type and len fields) for
the DCCPO_{CHANGE,CONFIRM}_{L,R} options will cause an underflow due to
the subtraction.  The subsequent code may read past the end of the
options value buffer when parsing.  I'm unsure of what the consequences
of this might be, but it's probably not good.

Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
Cc: stable@kernel.org
---
 net/dccp/options.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/net/dccp/options.c b/net/dccp/options.c
index f06ffcf..4b2ab65 100644
--- a/net/dccp/options.c
+++ b/net/dccp/options.c
@@ -123,6 +123,8 @@ int dccp_parse_options(struct sock *sk, struct dccp_request_sock *dreq,
 		case DCCPO_CHANGE_L ... DCCPO_CONFIRM_R:
 			if (pkt_type == DCCP_PKT_DATA)      /* RFC 4340, 6 */
 				break;
+			if (len == 0)
+				goto out_invalid_option;
 			rc = dccp_feat_parse_options(sk, dreq, mandatory, opt,
 						    *value, value + 1, len - 1);
 			if (rc)

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

end of thread, other threads:[~2011-05-06 20:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-06 13:27 [PATCH] dccp: handle invalid feature options length Dan Rosenberg
2011-05-06 13:53 ` Gerrit Renker
2011-05-06 14:43   ` Dan Rosenberg
2011-05-06 19:57 ` Gerrit Renker
2011-05-06 20:04   ` David Miller

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).