Patch "xfrm: policy: check policy direction value" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
xfrm: policy: check policy direction value
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
xfrm-policy-check-policy-direction-value.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
7bab09631c2a303f87a7eb7e3d69e888673b9b7eMon Sep 17 00:00:00 2001
From: Vladis Dronov <[email protected]>
Date: Wed, 2 Aug 2017 19:50:14 +0200
Subject: xfrm: policy: check policy direction value
From: Vladis Dronov <[email protected]>
commit 7bab09631c2a303f87a7eb7e3d69e888673b9b7e upstream.
The 'dir' parameter in xfrm_migrate() is a user-controlled byte which is used as an array index. This can lead to an out-of-bound access, kernel lockup and DoS. Add a check for the 'dir' value.
This fixes CVE-2017-11600.
References: https://bugzilla.redhat.com/show_bug.cgi?id=1474928
--- net/xfrm/xfrm_policy.c | 6 ++++++ 1 file changed, 6 insertions(+)
net/xfrm/xfrm_policy.c +6 -0
@@ -3308,9 +3308,15 @@ int xfrm_migrate(const struct xfrm_selecstruct xfrm_state *x_new[XFRM_MAX_DEPTH ];struct xfrm_migrate *mp; +/* Stage 0 - sanity checks */ if ((err =xfrm_migrate_check (m, num_migrate)) <0 ) goto out; +if (dir >=XFRM_POLICY_MAX ) { + err = -EINVAL ; + goto out; + } +/* Stage 1 - find policy */ if ((pol =xfrm_migrate_policy_find (sel, dir, type, net)) ==NULL ) { err = -ENOENT ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/xfrm-policy-check-policy-direction-value.patch