All of lore.kernel.org
 help / color / mirror / Atom feed
From: <gregkh@linuxfoundation.org>
To: salyzyn@android.com, edumazet@google.com, eparis@parisplace.org,
	gregkh@linuxfoundation.org, jmorris@namei.org,
	paul@linuxfoundation.org, paul@paul-moore.com, sds@tycho.nsa.gov,
	serge@hallyn.com, stable@vger.kernel.org
Cc: <stable@vger.kernel.org>, <stable-commits@vger.kernel.org>
Subject: Patch "selinux: general protection fault in sock_has_perm" has been added to the 4.4-stable tree
Date: Fri, 02 Feb 2018 11:37:35 +0100	[thread overview]
Message-ID: <1517567855162242@kroah.com> (raw)
In-Reply-To: <20180201153708.63506-1-salyzyn@android.com>


This is a note to let you know that I've just added the patch titled

    selinux: general protection fault in sock_has_perm

to the 4.4-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:
     selinux-general-protection-fault-in-sock_has_perm.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


>From salyzyn@android.com  Fri Feb  2 11:25:36 2018
From: Mark Salyzyn <salyzyn@android.com>
Date: Thu,  1 Feb 2018 07:37:04 -0800
Subject: selinux: general protection fault in sock_has_perm
To: linux-kernel@vger.kernel.org
Cc: Mark Salyzyn <salyzyn@android.com>, Paul Moore <paul@linuxfoundation.org>, Greg KH <gregkh@linuxfoundation.org>, Eric Dumazet <edumazet@google.com>, Stephen Smalley <sds@tycho.nsa.gov>, selinux@tycho.nsa.gov, linux-security-module@vger.kernel.org, Eric Paris <eparis@parisplace.org>, "Serge E . Hallyn" <serge@hallyn.com>, stable <stable@vger.kernel.org>, Paul Moore <paul@paul-moore.com>, James Morris <jmorris@namei.org>
Message-ID: <20180201153708.63506-1-salyzyn@android.com>

From: Mark Salyzyn <salyzyn@android.com>

In the absence of commit a4298e4522d6 ("net: add SOCK_RCU_FREE socket
flag") and all the associated infrastructure changes to take advantage
of a RCU grace period before freeing, there is a heightened
possibility that a security check is performed while an ill-timed
setsockopt call races in from user space.  It then is prudent to null
check sk_security, and if the case, reject the permissions.

Because of the nature of this problem, hard to duplicate, no clear
path, this patch is a simplified band-aid for stable trees lacking the
infrastructure for the series of commits leading up to providing a
suitable RCU grace period.  This adjustment is orthogonal to
infrastructure improvements that may nullify the needed check, but
could be added as good code hygiene in all trees.

general protection fault: 0000 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 14233 Comm: syz-executor2 Not tainted 4.4.112-g5f6325b #28
task: ffff8801d1095f00 task.stack: ffff8800b5950000
RIP: 0010:[<ffffffff81b69b7e>]  [<ffffffff81b69b7e>] sock_has_perm+0x1fe/0x3e0 security/selinux/hooks.c:4069
RSP: 0018:ffff8800b5957ce0  EFLAGS: 00010202
RAX: dffffc0000000000 RBX: 1ffff10016b2af9f RCX: ffffffff81b69b51
RDX: 0000000000000002 RSI: 0000000000000000 RDI: 0000000000000010
RBP: ffff8800b5957de0 R08: 0000000000000001 R09: 0000000000000001
R10: 0000000000000000 R11: 1ffff10016b2af68 R12: ffff8800b5957db8
R13: 0000000000000000 R14: ffff8800b7259f40 R15: 00000000000000d7
FS:  00007f72f5ae2700(0000) GS:ffff8801db300000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000a2fa38 CR3: 00000001d7980000 CR4: 0000000000160670
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Stack:
 ffffffff81b69a1f ffff8800b5957d58 00008000b5957d30 0000000041b58ab3
 ffffffff83fc82f2 ffffffff81b69980 0000000000000246 ffff8801d1096770
 ffff8801d3165668 ffffffff8157844b ffff8801d1095f00
 ffff880000000001
Call Trace:
[<ffffffff81b6a19d>] selinux_socket_setsockopt+0x4d/0x80 security/selinux/hooks.c:4338
[<ffffffff81b4873d>] security_socket_setsockopt+0x7d/0xb0 security/security.c:1257
[<ffffffff82df1ac8>] SYSC_setsockopt net/socket.c:1757 [inline]
[<ffffffff82df1ac8>] SyS_setsockopt+0xe8/0x250 net/socket.c:1746
[<ffffffff83776499>] entry_SYSCALL_64_fastpath+0x16/0x92
Code: c2 42 9b b6 81 be 01 00 00 00 48 c7 c7 a0 cb 2b 84 e8
f7 2f 6d ff 49 8d 7d 10 48 b8 00 00 00 00 00 fc ff df 48 89
fa 48 c1 ea 03 <0f> b6 04 02 84 c0 74 08 3c 03 0f 8e 83 01 00
00 41 8b 75 10 31
RIP  [<ffffffff81b69b7e>] sock_has_perm+0x1fe/0x3e0 security/selinux/hooks.c:4069
RSP <ffff8800b5957ce0>
---[ end trace 7b5aaf788fef6174 ]---

Signed-off-by: Mark Salyzyn <salyzyn@android.com>
Acked-by: Paul Moore <paul@paul-moore.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Stephen Smalley <sds@tycho.nsa.gov>
Cc: selinux@tycho.nsa.gov
Cc: linux-security-module@vger.kernel.org
Cc: Eric Paris <eparis@parisplace.org>
Cc: Serge E. Hallyn <serge@hallyn.com>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 security/selinux/hooks.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -4032,6 +4032,8 @@ static int sock_has_perm(struct task_str
 	struct lsm_network_audit net = {0,};
 	u32 tsid = task_sid(task);
 
+	if (!sksec)
+		return -EFAULT;
 	if (sksec->sid == SECINITSID_KERNEL)
 		return 0;
 


Patches currently in stable-queue which might be from salyzyn@android.com are

queue-4.4/selinux-general-protection-fault-in-sock_has_perm.patch

      parent reply	other threads:[~2018-02-02 10:37 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-01 15:37 [PATCH v2] general protection fault in sock_has_perm Mark Salyzyn
2018-02-01 15:37 ` Mark Salyzyn
2018-02-01 16:00 ` Paul Moore
2018-02-01 16:00   ` Paul Moore
2018-02-01 16:20   ` Mark Salyzyn
2018-02-01 16:20     ` Mark Salyzyn
2018-02-01 16:50     ` Paul Moore
2018-02-01 16:50       ` Paul Moore
2018-02-01 17:02     ` Stephen Smalley
2018-02-01 17:02       ` Stephen Smalley
2018-02-01 17:23       ` Mark Salyzyn
2018-02-01 17:23         ` Mark Salyzyn
2018-02-01 17:04     ` Greg KH
2018-02-01 17:04       ` Greg KH
2018-02-02 10:27 ` Greg KH
2018-02-02 10:27   ` Greg KH
2018-02-02 10:35 ` Patch "selinux: general protection fault in sock_has_perm" has been added to the 3.18-stable tree gregkh
2018-02-02 10:37 ` gregkh [this message]

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=1517567855162242@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=edumazet@google.com \
    --cc=eparis@parisplace.org \
    --cc=jmorris@namei.org \
    --cc=paul@linuxfoundation.org \
    --cc=paul@paul-moore.com \
    --cc=salyzyn@android.com \
    --cc=sds@tycho.nsa.gov \
    --cc=serge@hallyn.com \
    --cc=stable-commits@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /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.