Skip to contentSkip to conversation

ipc: shm: fix information leak to userland

PATCH In review Vasiliy Kulikov 2 participants 3 messages Oct 30, 2010 Kernel janitors

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ipc: shm: fix information leak to userland

Structure shmid_ds is copied to userland with shm_unused{,2,3} fields unitialized. It leads to leaking of contents of kernel stack memory.

---
Compile tested.

 ipc/shm.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
ipc/shm.c +1 -0
index fd658a1..7d3bb22 100644
@@ -479,6 +479,7 @@ static inline unsigned long copy_shmid_to_user(void __user *buf, struct shmid64_
 	    {
 		struct shmid_ds out;
 
+		memset(&out, 0, sizeof(out));
 		ipc64_perm_to_ipc_perm(&in->shm_perm, &out.shm_perm);
 		out.shm_segsz	= in->shm_segsz;
 		out.shm_atime	= in->shm_atime;
Signature · 1 line
1.7.0.4
#1 lore raw
Quoted 2 lines · Vasiliy Kulikov

Structure shmid_ds is copied to userland with shm_unused{,2,3} fields unitialized. It leads to leaking of contents of kernel stack memory.

ACK; send to Linus and add Cc: [email protected]

#2 lore raw

PATCH 1/1 ipc: shm: fix information leak to userland

Structure shmid_ds is copied to userland with shm_unused{,2,3} fields unitialized. It leads to leaking of contents of kernel stack memory.

---
Compile tested.

 ipc/shm.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
ipc/shm.c +1 -0
index fd658a1..7d3bb22 100644
@@ -479,6 +479,7 @@ static inline unsigned long copy_shmid_to_user(void __user *buf, struct shmid64_
 	    {
 		struct shmid_ds out;
 
+		memset(&out, 0, sizeof(out));
 		ipc64_perm_to_ipc_perm(&in->shm_perm, &out.shm_perm);
 		out.shm_segsz	= in->shm_segsz;
 		out.shm_atime	= in->shm_atime;
Signature · 1 line
1.7.0.4