Bug 148860 - CAN-2005-0137 ia64 syscall_table DoS
CAN-2005-0137 ia64 syscall_table DoS
Product: Red Hat Enterprise Linux 2.1
Classification: Red Hat
Component: kernel (Show other bugs)
ia64 Linux
medium Severity high
: ---
: ---
Assigned To: Jim Paradis
Brian Brock
: Security
Depends On:
  Show dependency treegraph
Reported: 2005-02-16 08:30 EST by Mark J. Cox
Modified: 2013-08-05 21:12 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2005-04-28 11:10:12 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Mark J. Cox 2005-02-16 08:30:47 EST
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. **
Comment 1 Mark J. Cox 2005-02-16 08:36:48 EST
Tiny test program: should print "Got ENOSYS" and not crash (not run on
a ia64 system)
#include <sys/syscall.h>
#include <unistd.h>
#include <errno.h>
#include <asm/errno.h>

main() {
    if (syscall(1279)) {
        if (errno == ENOSYS) {
            printf("Got ENOSYS\n");
Comment 3 Mark J. Cox 2005-03-16 05:44:09 EST
public removing embargo
Comment 4 Jim Paradis 2005-04-19 14:38:01 EDT
A fix for ths problem has been committed to the RHEL2.1 source pool for kernel
version 2.4.18-e.56
Comment 5 John Flanagan 2005-04-28 11:10:12 EDT
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.


Note You need to log in before you can comment on or make changes to this bug.