Linux kernel: net/irda/af_irda.c: irda_getsockopt() stack infoleak
From: sohu0106 <hidden>
Date: 2017-08-03 14:00:45
From: sohu0106 <hidden>
Date: 2017-08-03 14:00:45
Sometimes irda_getsockopt() doesn't initialize all members of list field of irda_device_list struct. This structure is then copied to userland. It leads to leaking of contents of kernel stack memory. 2 net/irda/af_irda.c
@@ -2248,6 +2248,8 @@ static int irda_getsockopt(struct socket *sock, int level, int optname,err = -EINVAL; goto out; } + + memset( &list, 0, sizeof(struct irda_device_list) ); /* Ask lmp for the current discovery log */ discoveries = irlmp_get_discoveries(&list.len, self->mask.word,