Bug 148860 - CAN-2005-0137 ia64 syscall_table DoS
Summary: CAN-2005-0137 ia64 syscall_table DoS
Alias: None
Product: Red Hat Enterprise Linux 2.1
Classification: Red Hat
Component: kernel   
(Show other bugs)
Version: 2.1
Hardware: ia64
OS: Linux
Target Milestone: ---
Assignee: Jim Paradis
QA Contact: Brian Brock
Whiteboard: reported=20050208,embargo=20050311,im...
Keywords: Security
Depends On:
TreeView+ depends on / blocked
Reported: 2005-02-16 13:30 UTC by Mark J. Cox
Modified: 2013-08-06 01:12 UTC (History)
3 users (show)

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

Attachments (Terms of Use)

External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2005:284 normal SHIPPED_LIVE Important: kernel security update 2005-04-28 04:00:00 UTC

Description Mark J. Cox 2005-02-16 13:30:47 UTC
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 13:36:48 UTC
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 10:44:09 UTC
public removing embargo

Comment 4 Jim Paradis 2005-04-19 18:38:01 UTC
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 15:10:12 UTC
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.