REDHAT-BUG-697822: Medium severity red hat linux vulnerability
A signedness issue has been found in nextpidmap() function when the "last" parameter is negative as nextpidmap() just quietly accepted whatever "last" pid that was passed in, which is not all that safe when one of the users is /proc.
Setting fpos to negative value when accessing /proc via readdir()/getdents() resulted in sign extension of this value when map pointer was being constructed.
This later lead to #GP becasue the final pointer was not cannonical (x8664).
map = &pidns->pidmap[(last + 1)/BITSPERPAGE]; ffffffff810ac3b4: 48 63 f6 movslq %esi,%rsi <- sign extension (fpos+-) ffffffff810ac3b7: 81 e2 ff 7f 00 00 and $0x7fff,%edx ffffffff810ac3bd: 48 c1 ee 0f shr $0xf,%rsi ffffffff810ac3c1: 48 c1 e6 04 shl $0x4,%rsi ffffffff810ac3c5: 48 8d 5c 37 08 lea 0x8(%rdi,%rsi,1),%rbx ... if (unlikely(!map->page)) ffffffff810ac3cc: 48 8b 7b 08 mov 0x8(%rbx),%rdi <- #GP
Only x8664 architecture seems to be vulnerable to this particular issue (tested ppc64, s390x, ia64).
Reference: http://groups.google.com/group/fa.linux.kernel/browsethread/thread/93c1088451fd3522/4a28ecb7f755a88d?#4a28ecb7f755a88d
Upstream commit: http://git.kernel.org/linus/c78193e9 http://git.kernel.org/linus/d8bdc59f
Acknowledgements:
Red Hat would like to thank Robert Swiecki for reporting this issue.
Affected Software
Event History
Frequently Asked Questions
What is the severity of REDHAT-BUG-697822?
The severity of REDHAT-BUG-697822 is considered high due to the potential for privilege escalation.
How do I fix REDHAT-BUG-697822?
To fix REDHAT-BUG-697822, upgrade to the latest version of the Red Hat Linux Kernel that includes the related patch.
What systems are affected by REDHAT-BUG-697822?
REDHAT-BUG-697822 affects users running specific versions of the Red Hat Linux Kernel.
What are the implications of REDHAT-BUG-697822?
The implications of REDHAT-BUG-697822 include possible security vulnerabilities when accessing the /proc filesystem.
Is there a workaround for REDHAT-BUG-697822 until a fix is applied?
A temporary workaround for REDHAT-BUG-697822 involves restricting user permissions on /proc until the kernel is updated.