Kevin Easton 142b79aa0b af_key: Always verify length of provided sadb_key
commit 4b66af2d6356a00e94bcdea3e7fea324e8b5c6f4 upstream.

Key extensions (struct sadb_key) include a user-specified number of key
bits.  The kernel uses that number to determine how much key data to copy
out of the message in pfkey_msg2xfrm_state().

The length of the sadb_key message must be verified to be long enough,
even in the case of SADB_X_AALG_NULL.  Furthermore, the sadb_key_len value
must be long enough to include both the key data and the struct sadb_key
itself.

Introduce a helper function verify_key_len(), and call it from
parse_exthdrs() where other exthdr types are similarly checked for
correctness.

Signed-off-by: Kevin Easton <kevin@guarana.org>
Reported-by: syzbot+5022a34ca5a3d49b84223653fab632dfb7b4cf37@syzkaller.appspotmail.com
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Zubin Mithra <zsm@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-06-16 09:52:32 +02:00
..
2018-05-16 10:08:44 +02:00
2016-12-03 23:54:25 -05:00
2017-11-15 15:53:17 +01:00
2018-04-13 19:48:29 +02:00
2016-10-20 11:23:08 -04:00
2018-05-30 07:50:28 +02:00
2018-06-13 16:16:42 +02:00
2018-05-30 07:50:32 +02:00
2018-05-30 07:50:25 +02:00
2018-04-24 09:34:17 +02:00
2016-08-17 19:36:23 -04:00
2016-08-17 19:36:23 -04:00