First published: Thu Nov 04 2010(Updated: )
Description of problem: packet_getname_spkt() doesn't initialize all members of sa_data field of sockaddr struct if strlen(dev->name) < 13. This structure is then copied to userland. It leads to leaking of contents of kernel stack memory. We have to fully fill sa_data with strncpy() instead of strlcpy(). The same with packet_getname(): it doesn't initialize sll_pkttype field of sockaddr_ll. Set it to zero. Reference: <a href="http://marc.info/?l=linux-netdev&m=128854507220908&w=2">http://marc.info/?l=linux-netdev&m=128854507220908&w=2</a> <a href="http://seclists.org/oss-sec/2010/q4/94">http://seclists.org/oss-sec/2010/q4/94</a> Acknowledgements: Red Hat would like to thank Vasiliy Kulikov of Openwall for reporting this issue.
Credit: secalert@redhat.com secalert@redhat.com
Affected Software | Affected Version | How to fix |
---|---|---|
debian/linux-2.6 | ||
Linux Linux kernel | =2.6.37-rc1 | |
Linux Linux kernel | <2.6.37 | |
Linux Linux kernel | =2.6.37 | |
SUSE Linux Enterprise Server | =10-sp3 | |
SUSE Linux Enterprise Server | =9 | |
openSUSE openSUSE | =11.2 | |
openSUSE openSUSE | =11.3 | |
SUSE Linux Enterprise Desktop | =10-sp3 | |
SUSE Linux Enterprise Software Development Kit | =10-sp3 | |
Suse Linux Enterprise Real Time Extension | =11-sp1 | |
Debian Debian Linux | =5.0 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.