Jason Baron noted that this issue also affected RHEL3 +++ This bug was initially created as a clone of Bug #148860 +++ Mike O'Connor mentioned to vendor-sec on Feb08: The number of entries in the syscall_table is incorrect. The exception handling code assumes that there are 255 entries but there are only 254. If any user issues syscall number 1024+255 (1279), the exception handler jumps to garbage, and voila -- instead of ENOSYS, you get a DoS. This looks valid, arch/ia64/kernel/entry.S only contains 255 entries (see end of file) and is missing a "data8 ia64_ni_syscall" from the end. DoS itself not verified but should be easily reproducable. ** Currently embargoed, no date yet set. **
"below is the tested rhel3 version of the patch. -Jason" --- linux-2.4.21/arch/ia64/kernel/entry.S.bak +++ linux-2.4.21/arch/ia64/kernel/entry.S @@ -1305,3 +1305,4 @@ sys_call_table: data8 ia64_ni_syscall data8 ia64_ni_syscall data8 ia64_ni_syscall + data8 ia64_ni_syscall
A fix for this problem was committed to the RHEL3 E5 patch pool on 13-Apr-2005 (in kernel version 2.4.21-27.0.3.EL).
A fix for this problem was also committed to the RHEL3 U5 patch pool on 15-Apr-2005 (in kernel version 2.4.21-32.EL).
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2005-293.html
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2005-294.html