Skip to contentSkip to conversation

Patch "dm ioctl: prevent stack leak in dm ioctl call" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message May 5, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

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

dm ioctl: prevent stack leak in dm ioctl call

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:
dm-ioctl-prevent-stack-leak-in-dm-ioctl-call.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 <[email protected]> know about it.

Quoted 1 line

From 4617f564c06117c7d1b611be49521a4430042287 Mon Sep 17 00:00:00 2001

From: Adrian Salido <[email protected]>
Date: Thu, 27 Apr 2017 10:32:55 -0700
Subject: dm ioctl: prevent stack leak in dm ioctl call

From: Adrian Salido <[email protected]>

commit 4617f564c06117c7d1b611be49521a4430042287 upstream.

When calling a dm ioctl that doesn't process any data (IOCTL_FLAGS_NO_PARAMS), the contents of the data field in struct dm_ioctl are left initialized. Current code is incorrectly extending the size of data copied back to user, causing the contents of kernel stack to be leaked to user. Fix by only copying contents before data and allow the functions processing the ioctl to override.

---
 drivers/md/dm-ioctl.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/md/dm-ioctl.c +1 -1
@@ -1843,7 +1843,7 @@ static int ctl_ioctl(uint command, struc
 	if (r)
 		goto out;
 
-	param->data_size = sizeof(*param);
+	param->data_size = offsetof(struct dm_ioctl, data);
 	r = fn(param, input_param_size);
 
 	if (unlikely(param->flags & DM_BUFFER_FULL_FLAG) &&

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/dm-ioctl-prevent-stack-leak-in-dm-ioctl-call.patch