Bug 148860 - CAN-2005-0137 ia64 syscall_table DoS
Summary: CAN-2005-0137 ia64 syscall_table DoS
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 2.1
Classification: Red Hat
Component: kernel   
(Show other bugs)
Version: 2.1
Hardware: ia64
OS: Linux
medium
high
Target Milestone: ---
Assignee: Jim Paradis
QA Contact: Brian Brock
URL:
Whiteboard: reported=20050208,embargo=20050311,im...
Keywords: Security
Depends On:
Blocks:
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:
Environment:
Last Closed: 2005-04-28 15:10:12 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
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.

http://rhn.redhat.com/errata/RHSA-2005-284.html



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