Skip to content

Commit 7446344

Browse files
mstsirkingregkh
authored andcommitted
vhost: fix info leak due to uninitialized memory
commit 670ae9c upstream. struct vhost_msg within struct vhost_msg_node is copied to userspace. Unfortunately it turns out on 64 bit systems vhost_msg has padding after type which gcc doesn't initialize, leaking 4 uninitialized bytes to userspace. This padding also unfortunately means 32 bit users of this interface are broken on a 64 bit kernel which will need to be fixed separately. Fixes: CVE-2018-1118 Cc: [email protected] Reported-by: Kevin Easton <[email protected]> Signed-off-by: Michael S. Tsirkin <[email protected]> Reported-by: [email protected] Signed-off-by: Michael S. Tsirkin <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent d37c95f commit 7446344

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/vhost/vhost.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2382,6 +2382,9 @@ struct vhost_msg_node *vhost_new_msg(struct vhost_virtqueue *vq, int type)
23822382
struct vhost_msg_node *node = kmalloc(sizeof *node, GFP_KERNEL);
23832383
if (!node)
23842384
return NULL;
2385+
2386+
/* Make sure all padding within the structure is initialized. */
2387+
memset(&node->msg, 0, sizeof node->msg);
23852388
node->vq = vq;
23862389
node->msg.type = type;
23872390
return node;

0 commit comments

Comments
 (0)