Vulnerabilities > CVE-2001-0169

047910
CVSS 2.1 - LOW
Attack vector
LOCAL
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
NONE
Integrity impact
PARTIAL
Availability impact
NONE
local
low complexity
mandrakesoft
redhat
trustix
turbolinux
nessus
exploit available

Summary

When using the LD_PRELOAD environmental variable in SUID or SGID applications, glibc does not verify that preloaded libraries in /etc/ld.so.cache are also SUID/SGID, which could allow a local user to overwrite arbitrary files by loading a library from /lib or /usr/lib.

Exploit-Db

descriptionGLIBC 2.1.3 ld_preload Local Exploit. CVE-2001-0169. Local exploit for linux platform
idEDB-ID:290
last seen2016-01-31
modified2001-03-04
published2001-03-04
reporterShadow
sourcehttps://www.exploit-db.com/download/290/
titleGLIBC 2.1.3 ld_preload Local Exploit

Nessus

  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DSA-039.NASL
    descriptionThe version of GNU libc that was distributed with Debian GNU/Linux 2.2 suffered from 2 security problems : - It was possible to use LD_PRELOAD to load libraries that are listed in /etc/ld.so.cache, even for suid programs. This could be used to create (and overwrite) files which a user should not be allowed to. - By using LD_PROFILE suid programs would write data to a file to /var/tmp, which was not done safely. Again, this could be used to create (and overwrite) files which a user should not have access to. Both problems have been fixed in version 2.1.3-17 and we recommend that you upgrade your glibc packages immediately. Please note that a side-effect of this upgrade is that ldd will no longer work on suid programs, unless you logged in as root.
    last seen2020-06-01
    modified2020-06-02
    plugin id14876
    published2004-09-29
    reporterThis script is Copyright (C) 2004-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/14876
    titleDebian DSA-039-1 : glibc
    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-039. The text 
    # itself is copyright (C) Software in the Public Interest, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(14876);
      script_version("1.18");
      script_cvs_date("Date: 2019/08/02 13:32:16");
    
      script_cve_id("CVE-2001-0169");
      script_bugtraq_id(2223);
      script_xref(name:"DSA", value:"039");
    
      script_name(english:"Debian DSA-039-1 : glibc");
      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 version of GNU libc that was distributed with Debian GNU/Linux 2.2
    suffered from 2 security problems :
    
      - It was possible to use LD_PRELOAD to load libraries that
        are listed in /etc/ld.so.cache, even for suid programs.
        This could be used to create (and overwrite) files which
        a user should not be allowed to.
      - By using LD_PROFILE suid programs would write data to a
        file to /var/tmp, which was not done safely. Again, this
        could be used to create (and overwrite) files which a
        user should not have access to.
    
    Both problems have been fixed in version 2.1.3-17 and we recommend
    that you upgrade your glibc packages immediately.
    
    
    Please note that a side-effect of this upgrade is that ldd will no
    longer work on suid programs, unless you logged in as root."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.debian.org/security/2001/dsa-039"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Upgrade the affected glibc package."
      );
      script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:N/I:P/A:N");
      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:glibc");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:2.2");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2001/03/08");
      script_set_attribute(attribute:"plugin_publication_date", value:"2004/09/29");
      script_set_attribute(attribute:"vuln_publication_date", value:"2001/01/21");
      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:"glibc-doc", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"i18ndata", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"libc6", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"libc6-dbg", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"libc6-dev", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"libc6-pic", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"libc6-prof", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"libc6.1", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"libc6.1-dbg", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"libc6.1-dev", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"libc6.1-pic", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"libc6.1-prof", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"libnss1-compat", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"locales", reference:"2.1.3-17")) flag++;
    if (deb_check(release:"2.2", prefix:"nscd", reference:"2.1.3-17")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_note(port:0, extra:deb_report_get());
      else security_note(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familyMandriva Local Security Checks
    NASL idMANDRAKE_MDKSA-2001-012.NASL
    descriptionThe LD_PRELOAD variable in the GNU C Library is honoured normally even for SUID/SGID applications (but removed afterwards from the environment) if it does not contain
    last seen2020-06-01
    modified2020-06-02
    plugin id61886
    published2012-09-06
    reporterThis script is Copyright (C) 2012-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/61886
    titleMandrake Linux Security Advisory : glibc (MDKSA-2001:012)
    code
    #%NASL_MIN_LEVEL 80502
    
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from Mandrake Linux Security Advisory MDKSA-2001:012. 
    # The text itself is copyright (C) Mandriva S.A.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(61886);
      script_version("1.5");
      script_cvs_date("Date: 2019/08/02 13:32:46");
    
      script_cve_id("CVE-2001-0169");
      script_xref(name:"MDKSA", value:"2001:012");
    
      script_name(english:"Mandrake Linux Security Advisory : glibc (MDKSA-2001:012)");
      script_summary(english:"Checks rpm output for the updated packages");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:
    "The remote Mandrake Linux host is missing one or more security
    updates."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "The LD_PRELOAD variable in the GNU C Library is honoured normally even
    for SUID/SGID applications (but removed afterwards from the
    environment) if it does not contain '/' characters. There is a special
    check which only preloads found libraries if they have the SUID bit
    set. However, if a library has been found in /etc/ld.so.cache, this
    check was not performed. As a result, a malicious user could preload
    some library located in /lib or /usr/lib before SUID/SGID applications
    and create or overwrite a file he would not normally have permission
    to. As well, LD_PROFILE output from SUID programs would go into
    /var/tmp, making it vulnerable to various link attacks."
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "Update the affected glibc, glibc-devel and / or glibc-profile
    packages."
      );
      script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:N/I:P/A:N");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:mandriva:linux:glibc");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:mandriva:linux:glibc-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:mandriva:linux:glibc-profile");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:mandrakesoft:mandrake_linux:6.0");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:mandrakesoft:mandrake_linux:6.1");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:mandrakesoft:mandrake_linux:7.0");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:mandrakesoft:mandrake_linux:7.1");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:mandrakesoft:mandrake_linux:7.2");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2001/01/18");
      script_set_attribute(attribute:"plugin_publication_date", value:"2012/09/06");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2012-2019 Tenable Network Security, Inc.");
      script_family(english:"Mandriva Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/cpu", "Host/Mandrake/release", "Host/Mandrake/rpm-list");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("global_settings.inc");
    include("rpm.inc");
    
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    if (!get_kb_item("Host/Mandrake/release")) audit(AUDIT_OS_NOT, "Mandriva / Mandake Linux");
    if (!get_kb_item("Host/Mandrake/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    cpu = get_kb_item("Host/cpu");
    if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
    if (cpu !~ "^(amd64|i[3-6]86|x86_64)$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "Mandriva / Mandrake Linux", cpu);
    
    
    flag = 0;
    if (rpm_check(release:"MDK6.0", cpu:"i386", reference:"glibc-2.1.3-18.2mdk", yank:"mdk")) flag++;
    if (rpm_check(release:"MDK6.0", cpu:"i386", reference:"glibc-devel-2.1.3-18.2mdk", yank:"mdk")) flag++;
    if (rpm_check(release:"MDK6.0", cpu:"i386", reference:"glibc-profile-2.1.3-18.2mdk", yank:"mdk")) flag++;
    
    if (rpm_check(release:"MDK6.1", cpu:"i386", reference:"glibc-2.1.3-18.2mdk", yank:"mdk")) flag++;
    if (rpm_check(release:"MDK6.1", cpu:"i386", reference:"glibc-devel-2.1.3-18.2mdk", yank:"mdk")) flag++;
    if (rpm_check(release:"MDK6.1", cpu:"i386", reference:"glibc-profile-2.1.3-18.2mdk", yank:"mdk")) flag++;
    
    if (rpm_check(release:"MDK7.0", cpu:"i386", reference:"glibc-2.1.3-18.2mdk", yank:"mdk")) flag++;
    if (rpm_check(release:"MDK7.0", cpu:"i386", reference:"glibc-devel-2.1.3-18.2mdk", yank:"mdk")) flag++;
    if (rpm_check(release:"MDK7.0", cpu:"i386", reference:"glibc-profile-2.1.3-18.2mdk", yank:"mdk")) flag++;
    
    if (rpm_check(release:"MDK7.1", cpu:"i386", reference:"glibc-2.1.3-18.1mdk", yank:"mdk")) flag++;
    if (rpm_check(release:"MDK7.1", cpu:"i386", reference:"glibc-devel-2.1.3-18.1mdk", yank:"mdk")) flag++;
    if (rpm_check(release:"MDK7.1", cpu:"i386", reference:"glibc-profile-2.1.3-18.1mdk", yank:"mdk")) flag++;
    
    if (rpm_check(release:"MDK7.2", cpu:"i386", reference:"glibc-2.1.3-18.3mdk", yank:"mdk")) flag++;
    if (rpm_check(release:"MDK7.2", cpu:"i386", reference:"glibc-devel-2.1.3-18.3mdk", yank:"mdk")) flag++;
    if (rpm_check(release:"MDK7.2", cpu:"i386", reference:"glibc-profile-2.1.3-18.3mdk", yank:"mdk")) flag++;
    
    
    if (flag)
    {
      if (report_verbosity > 0) security_note(port:0, extra:rpm_report_get());
      else security_note(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    

Redhat

advisories
rhsa
idRHSA-2001:002