Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1656741

[PATCH 2/5] vt: fix unchecked __put_user() in tioclinux ioctls

From Adam Borowski <kilobyte@angband.pl>
Newsgroups linux.kernel
Subject [PATCH 2/5] vt: fix unchecked __put_user() in tioclinux ioctls
Date 2017-06-03 09:40 +0200
Message-ID <tObPc-45V-11@gated-at.bofh.it> (permalink)
References <tObPc-45V-5@gated-at.bofh.it> <tObPc-45V-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Only read access is checked before this call.

Actually, at the moment this is not an issue, as every in-tree arch does
the same manual checks for VERIFY_READ vs VERIFY_WRITE, relying on the MMU
to tell them apart, but this wasn't the case in the past and may happen
again on some odd arch in the future.

If anyone cares about 3.7 and earlier, this is a security hole (untested)
on real 80386 CPUs.

Signed-off-by: Adam Borowski <kilobyte@angband.pl>
CC: stable@vger.kernel.org # v3.7-
---
 drivers/tty/vt/vt.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 9309c7da660a..2ebaba16f785 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -2709,13 +2709,13 @@ int tioclinux(struct tty_struct *tty, unsigned long arg)
 	 * related to the kernel should not use this.
 	 */
 			data = vt_get_shift_state();
-			ret = __put_user(data, p);
+			ret = put_user(data, p);
 			break;
 		case TIOCL_GETMOUSEREPORTING:
 			console_lock();	/* May be overkill */
 			data = mouse_reporting();
 			console_unlock();
-			ret = __put_user(data, p);
+			ret = put_user(data, p);
 			break;
 		case TIOCL_SETVESABLANK:
 			console_lock();
@@ -2724,7 +2724,7 @@ int tioclinux(struct tty_struct *tty, unsigned long arg)
 			break;
 		case TIOCL_GETKMSGREDIRECT:
 			data = vt_get_kmsg_redirect();
-			ret = __put_user(data, p);
+			ret = put_user(data, p);
 			break;
 		case TIOCL_SETKMSGREDIRECT:
 			if (!capable(CAP_SYS_ADMIN)) {
-- 
2.11.0

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 1/5] vt: use copy_from/to_user instead of __get/put_user for scrnmap ioctls Adam Borowski <kilobyte@angband.pl> - 2017-06-03 09:40 +0200
  [PATCH 5/5] vt: drop access_ok() calls in unimap ioctls Adam Borowski <kilobyte@angband.pl> - 2017-06-03 09:40 +0200
  [PATCH 2/5] vt: fix unchecked __put_user() in tioclinux ioctls Adam Borowski <kilobyte@angband.pl> - 2017-06-03 09:40 +0200
  [PATCH 3/5] vt: use copy_to_user instead of __put_user in GIO_UNIMAP ioctl Adam Borowski <kilobyte@angband.pl> - 2017-06-03 09:40 +0200
    Re: [PATCH 3/5] vt: use copy_to_user instead of __put_user in  GIO_UNIMAP ioctl Alan Cox <gnomes@lxorguk.ukuu.org.uk> - 2017-06-05 18:40 +0200
      Re: [PATCH 3/5] vt: use copy_to_user instead of __put_user in  GIO_UNIMAP ioctl Al Viro <viro@ZenIV.linux.org.uk> - 2017-06-06 01:10 +0200
  [PATCH 4/5] vt: use memdup_user in PIO_UNIMAP ioctl Adam Borowski <kilobyte@angband.pl> - 2017-06-03 09:40 +0200

csiph-web