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.
Affected Software | Affected Version | How to fix |
---|---|---|
Red Hat Linux |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
The severity of REDHAT-BUG-649715 is considered to be high due to the potential leakage of kernel stack memory.
To fix REDHAT-BUG-649715, ensure that the sa_data field of the sockaddr struct is fully initialized using strncpy() when copying data to userland.
REDHAT-BUG-649715 affects Red Hat Linux systems that rely on the packet_getname_spkt() function.
Failure to address REDHAT-BUG-649715 can lead to unauthorized access to sensitive information stored in kernel memory.
Yes, Red Hat has released patches to address REDHAT-BUG-649715, and users are encouraged to apply them.