Vulnerabilities > CVE-2001-1391 - Off-by-one Error vulnerability in Linux Kernel

047910
CVSS 5.5 - MEDIUM
Attack vector
LOCAL
Attack complexity
LOW
Privileges required
LOW
Confidentiality impact
NONE
Integrity impact
HIGH
Availability impact
NONE
local
low complexity
linux
CWE-193
nessus

Summary

Off-by-one vulnerability in CPIA driver of Linux kernel before 2.2.19 allows users to modify kernel memory.

Vulnerable Configurations

Part Description Count
OS
Linux
211

Common Weakness Enumeration (CWE)

Nessus

  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DSA-047.NASL
    descriptionThe kernels used in Debian GNU/Linux 2.2 have been found to have multiple security problems. This is a list of problems based on the 2.2.19 release notes as found on http://www.linux.org.uk/ : - binfmt_misc used user pages directly - the CPIA driver had an off-by-one error in the buffer code which made it possible for users to write into kernel memory - the CPUID and MSR drivers had a problem in the module unloading code which could cause a system crash if they were set to automatically load and unload (please note that Debian does not automatically unload kernel modules) - There was a possible hang in the classifier code - The getsockopt and setsockopt system calls did not handle sign bits correctly which made a local DoS and other attacks possible - The sysctl system call did not handle sign bits correctly which allowed a user to write in kernel memory - ptrace/exec races that could give a local user extra privileges - possible abuse of a boundary case in the sockfilter code - SYSV shared memory code could overwrite recently freed memory which might cause problems - The packet length checks in the masquerading code were a bit lax (probably not exploitable) - Some x86 assembly bugs caused the wrong number of bytes to be copied. - A local user could deadlock the kernel due to bugs in the UDP port allocation.
    last seen2020-06-01
    modified2020-06-02
    plugin id38953
    published2004-09-29
    reporterThis script is Copyright (C) 2004-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/38953
    titleDebian DSA-047-1 : kernel
    code
    #%NASL_MIN_LEVEL 80502
    
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from Debian Security Advisory DSA-047. The text 
    # itself is copyright (C) Software in the Public Interest, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(38953);
      script_version("1.22");
      script_cvs_date("Date: 2019/08/02 13:32:16");
    
      script_cve_id("CVE-2001-0316", "CVE-2001-1390", "CVE-2001-1391", "CVE-2001-1392", "CVE-2001-1393", "CVE-2001-1394", "CVE-2001-1395", "CVE-2001-1396", "CVE-2001-1397", "CVE-2001-1398", "CVE-2001-1399", "CVE-2001-1400");
      script_bugtraq_id(2529);
      script_xref(name:"DSA", value:"047");
    
      script_name(english:"Debian DSA-047-1 : kernel");
      script_summary(english:"Checks dpkg output for the updated package");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Debian host is missing a security-related update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "The kernels used in Debian GNU/Linux 2.2 have been found to have
     multiple security problems. This is a list of problems based on the
     2.2.19 release notes as found on http://www.linux.org.uk/ :
    
      - binfmt_misc used user pages directly
      - the CPIA driver had an off-by-one error in the buffer
        code which made it possible for users to write into
        kernel memory
    
      - the CPUID and MSR drivers had a problem in the module
        unloading code which could cause a system crash if they
        were set to automatically load and unload (please note
        that Debian does not automatically unload kernel
        modules)
    
      - There was a possible hang in the classifier code
    
      - The getsockopt and setsockopt system calls did not
        handle sign bits correctly which made a local DoS and
        other attacks possible
    
      - The sysctl system call did not handle sign bits
        correctly which allowed a user to write in kernel memory
    
      - ptrace/exec races that could give a local user extra
        privileges
    
      - possible abuse of a boundary case in the sockfilter code
    
      - SYSV shared memory code could overwrite recently freed
        memory which might cause problems
    
      - The packet length checks in the masquerading code were a
        bit lax (probably not exploitable)
    
      - Some x86 assembly bugs caused the wrong number of bytes
        to be copied.
    
      - A local user could deadlock the kernel due to bugs in
        the UDP port allocation."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.linux.org.uk/"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.debian.org/security/2001/dsa-047"
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "All these problems are fixed in the 2.2.19 kernel, and it is highly
    recommend that you upgrade machines to this kernel.
    
    
    Please note that kernel upgrades are not done automatically. You will
    have to explicitly tell the packaging system to install the right
    kernel for your system."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:various kernel packages");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:2.2");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2001/04/16");
      script_set_attribute(attribute:"plugin_publication_date", value:"2004/09/29");
      script_set_attribute(attribute:"vuln_publication_date", value:"2001/02/09");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2004-2019 Tenable Network Security, Inc.");
      script_family(english:"Debian Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/Debian/release", "Host/Debian/dpkg-l");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("debian_package.inc");
    
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    if (!get_kb_item("Host/Debian/release")) audit(AUDIT_OS_NOT, "Debian");
    if (!get_kb_item("Host/Debian/dpkg-l")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    if (deb_check(release:"2.2", prefix:"kernel-doc-2.2.19", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-headers-2.2.19", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-headers-2.2.19-compact", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-headers-2.2.19-ide", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-headers-2.2.19-idepci", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-headers-2.2.19-sparc", reference:"6")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-amiga", reference:"2.2.19-1")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-atari", reference:"2.2.19-1")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-bvme6000", reference:"2.2.19-1")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-chrp", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-compact", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-generic", reference:"2.2.19-1")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-ide", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-idepci", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-jensen", reference:"2.2.19-1")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-mac", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-mvme147", reference:"2.2.19-1")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-mvme16x", reference:"2.2.19-1")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-nautilus", reference:"2.2.19-1")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-pmac", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-prep", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-riscpc", reference:"20010414")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-smp", reference:"2.2.19-1")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-sun4cdm", reference:"6")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-sun4dm-pci", reference:"6")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-sun4dm-smp", reference:"6")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-sun4u", reference:"6")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-image-2.2.19-sun4u-smp", reference:"6")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-patch-2.2.19-arm", reference:"20010414")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-patch-2.2.19-m68k", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-patch-2.2.19-powerpc", reference:"2.2.19-2")) flag++;
    if (deb_check(release:"2.2", prefix:"kernel-source-2.2.19", reference:"2.2.19-2")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_hole(port:0, extra:deb_report_get());
      else security_hole(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familyMandriva Local Security Checks
    NASL idMANDRAKE_MDKSA-2001-037.NASL
    descriptionA number of security problems have been found in the Linux kernels prior to the latest 2.2.19 kernel. Following is a list of problems based on the 2.2.19 release notes as found on http://www.linux.org.uk/ - binfmt_misc used user pages directly - the CPIA driver had an off-by-one error in the buffer code which made it possible for users to write into kernel memory - the CPUID and MSR drivers had a problem in the module unloading code which could cause a system a crash if they were set to automatically load and unload - there was a possible hang in the classifier code - the getsockopt and setsockopt system calls did not handle sign bits correctly which made a local DoS and other attacks possible - the sysctl system call did not handle sign bits correctly which allowed a user to write in kernel memory - ptrace/exec races that could give a local user extra privileges - possible abuse of a boundary case in the sockfilter code - SYSV shared memory code could overwrite recently freed memory which might cause problems - the packet lengh checks in the masquerading code were a bit lax (probably not exploitable) - some x86 assembly bugs caused the wrong number of bytes to be copied - a local user could deadlock the kernel due to bugs in the UDP port allocation. All of these problems are corrected in the 2.2.19 kernel and it is highly recommended that all Linux-Mandrake users upgrade their systems to this kernel. It is also recommended that you download the necessary RPMs and upgrade manually by following these steps : - type: rpm -ivh kernel-2.2.19-4.1mdk.i586.rpm - type: mv kernel-2.2.19-4.1mdk.i586.rpm /tmp - type: rpm -Fvh *.rpm - type: mkinitrd -f --ifneeded /boot/initrd-2.2.19-4.1mdk 2.2.19-4.1mdk - type: ln -sf /boot/initrd-2.2.19-4.1mdk /boot/initrd.img - edit /etc/lilo.conf and double-check the options - type: /sbin/lilo -v Replace the kernel revision noted in the above instructions with those from the packages you downloaded. You will then be able to reboot and use the new kernel and remove the older kernel when you are comfortable using the upgraded one.
    last seen2020-06-01
    modified2020-06-02
    plugin id61910
    published2012-09-06
    reporterThis script is Copyright (C) 2012-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/61910
    titleMandrake Linux Security Advisory : kernel (MDKSA-2001:037)

Redhat

advisories
rhsa
idRHSA-2001:047