Vulnerabilities > CVE-2002-1119 - Unspecified vulnerability in Python

047910
CVSS 0.0 - NONE
Attack vector
UNKNOWN
Attack complexity
UNKNOWN
Privileges required
UNKNOWN
Confidentiality impact
UNKNOWN
Integrity impact
UNKNOWN
Availability impact
UNKNOWN
python
nessus

Summary

os._execvpe from os.py in Python 2.2.1 and earlier creates temporary files with predictable names, which could allow local users to execute arbitrary code via a symlink attack.

Nessus

  • NASL familyRed Hat Local Security Checks
    NASL idREDHAT-RHSA-2003-048.NASL
    descriptionAn insecure use of a temporary file has been found in Python. Python is an interpreted, interactive, object-oriented programming language. Zack Weinberg discovered that os._execvpe from os.py in Python 2.2.1 and earlier creates temporary files with predictable names. This could allow local users to execute arbitrary code via a symlink attack All users should upgrade to these errata packages which include a patch to python 1.5.2 to correct this issue.
    last seen2020-06-01
    modified2020-06-02
    plugin id12362
    published2004-07-06
    reporterThis script is Copyright (C) 2004-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/12362
    titleRHEL 2.1 : python (RHSA-2003:048)
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from Red Hat Security Advisory RHSA-2003:048. The text 
    # itself is copyright (C) Red Hat, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(12362);
      script_version ("1.24");
      script_cvs_date("Date: 2019/10/25 13:36:10");
    
      script_cve_id("CVE-2002-1119");
      script_xref(name:"RHSA", value:"2003:048");
    
      script_name(english:"RHEL 2.1 : python (RHSA-2003:048)");
      script_summary(english:"Checks the rpm output for the updated packages");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Red Hat host is missing one or more security updates."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "An insecure use of a temporary file has been found in Python.
    
    Python is an interpreted, interactive, object-oriented programming
    language.
    
    Zack Weinberg discovered that os._execvpe from os.py in Python 2.2.1
    and earlier creates temporary files with predictable names. This could
    allow local users to execute arbitrary code via a symlink attack
    
    All users should upgrade to these errata packages which include a
    patch to python 1.5.2 to correct this issue."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://access.redhat.com/security/cve/cve-2002-1119"
      );
      # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=156556
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=156556"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://access.redhat.com/errata/RHSA-2003:048"
      );
      script_set_attribute(attribute:"solution", value:"Update the affected packages.");
      script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:P/I:P/A:P");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:python");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:python-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:python-docs");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:python-tools");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:tkinter");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:redhat:enterprise_linux:2.1");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2002/10/04");
      script_set_attribute(attribute:"patch_publication_date", value:"2003/02/10");
      script_set_attribute(attribute:"plugin_publication_date", value:"2004/07/06");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2004-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"Red Hat Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/RedHat/release", "Host/RedHat/rpm-list", "Host/cpu");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("global_settings.inc");
    include("misc_func.inc");
    include("rpm.inc");
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    release = get_kb_item("Host/RedHat/release");
    if (isnull(release) || "Red Hat" >!< release) audit(AUDIT_OS_NOT, "Red Hat");
    os_ver = pregmatch(pattern: "Red Hat Enterprise Linux.*release ([0-9]+(\.[0-9]+)?)", string:release);
    if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Red Hat");
    os_ver = os_ver[1];
    if (! preg(pattern:"^2\.1([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, "Red Hat 2.1", "Red Hat " + os_ver);
    
    if (!get_kb_item("Host/RedHat/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    cpu = get_kb_item("Host/cpu");
    if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
    if ("x86_64" >!< cpu && cpu !~ "^i[3-6]86$" && "s390" >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "Red Hat", cpu);
    if (cpu !~ "^i[3-6]86$") audit(AUDIT_ARCH_NOT, "i386", cpu);
    
    yum_updateinfo = get_kb_item("Host/RedHat/yum-updateinfo");
    if (!empty_or_null(yum_updateinfo)) 
    {
      rhsa = "RHSA-2003:048";
      yum_report = redhat_generate_yum_updateinfo_report(rhsa:rhsa);
      if (!empty_or_null(yum_report))
      {
        security_report_v4(
          port       : 0,
          severity   : SECURITY_WARNING,
          extra      : yum_report 
        );
        exit(0);
      }
      else
      {
        audit_message = "affected by Red Hat security advisory " + rhsa;
        audit(AUDIT_OS_NOT, audit_message);
      }
    }
    else
    {
      flag = 0;
      if (rpm_check(release:"RHEL2.1", cpu:"i386", reference:"python-1.5.2-43.72")) flag++;
      if (rpm_check(release:"RHEL2.1", cpu:"i386", reference:"python-devel-1.5.2-43.72")) flag++;
      if (rpm_check(release:"RHEL2.1", cpu:"i386", reference:"python-docs-1.5.2-43.72")) flag++;
      if (rpm_check(release:"RHEL2.1", cpu:"i386", reference:"python-tools-1.5.2-43.72")) flag++;
      if (rpm_check(release:"RHEL2.1", cpu:"i386", reference:"tkinter-1.5.2-43.72")) flag++;
    
      if (flag)
      {
        security_report_v4(
          port       : 0,
          severity   : SECURITY_WARNING,
          extra      : rpm_report_get() + redhat_report_package_caveat()
        );
        exit(0);
      }
      else
      {
        tested = pkg_tests_get();
        if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
        else audit(AUDIT_PACKAGE_NOT_INSTALLED, "python / python-devel / python-docs / python-tools / tkinter");
      }
    }
    
  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DSA-159.NASL
    descriptionZack Weinberg discovered an insecure use of a temporary file in os._execvpe from os.py. It uses a predictable name which could lead execution of arbitrary code.
    last seen2020-06-01
    modified2020-06-02
    plugin id14996
    published2004-09-29
    reporterThis script is Copyright (C) 2004-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/14996
    titleDebian DSA-159-1 : python - insecure temporary files
    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-159. The text 
    # itself is copyright (C) Software in the Public Interest, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(14996);
      script_version("1.19");
      script_cvs_date("Date: 2019/08/02 13:32:17");
    
      script_cve_id("CVE-2002-1119");
      script_bugtraq_id(5581);
      script_xref(name:"DSA", value:"159");
    
      script_name(english:"Debian DSA-159-1 : python - insecure temporary files");
      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:
    "Zack Weinberg discovered an insecure use of a temporary file in
    os._execvpe from os.py. It uses a predictable name which could lead
    execution of arbitrary code."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.debian.org/security/2002/dsa-159"
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "Upgrade the Python packages immediately.
    
    This problem has been fixed in several versions of Python: For the
    current stable distribution (woody) it has been fixed in version
    1.5.2-23.1 of Python 1.5, in version 2.1.3-3.1 of Python 2.1 and in
    version 2.2.1-4.1 of Python 2.2. For the old stable distribution
    (potato) this has been fixed in version 1.5.2-10potato12 for Python
    1.5. For the unstable distribution (sid) this has been fixed in
    version 1.5.2-24 of Python 1.5, in version 2.1.3-6a of Python 2.1 and
    in version 2.2.1-8 of Python 2.2. Python 2.3 is not affected by this
    problem."
      );
      script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"false");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:python");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:2.2");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:3.0");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2002/08/28");
      script_set_attribute(attribute:"plugin_publication_date", value:"2004/09/29");
      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:"idle", reference:"1.5.2-10potato13")) flag++;
    if (deb_check(release:"2.2", prefix:"python-base", reference:"1.5.2-10potato13")) flag++;
    if (deb_check(release:"2.2", prefix:"python-dev", reference:"1.5.2-10potato13")) flag++;
    if (deb_check(release:"2.2", prefix:"python-elisp", reference:"1.5.2-10potato13")) flag++;
    if (deb_check(release:"2.2", prefix:"python-examples", reference:"1.5.2-10potato13")) flag++;
    if (deb_check(release:"2.2", prefix:"python-gdbm", reference:"1.5.2-10potato13")) flag++;
    if (deb_check(release:"2.2", prefix:"python-mpz", reference:"1.5.2-10potato13")) flag++;
    if (deb_check(release:"2.2", prefix:"python-regrtest", reference:"1.5.2-10potato13")) flag++;
    if (deb_check(release:"2.2", prefix:"python-tk", reference:"1.5.2-10potato13")) flag++;
    if (deb_check(release:"2.2", prefix:"python-zlib", reference:"1.5.2-10potato13")) flag++;
    if (deb_check(release:"3.0", prefix:"idle", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"idle-python1.5", reference:"1.5.2-23.2")) flag++;
    if (deb_check(release:"3.0", prefix:"idle-python2.1", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"idle-python2.2", reference:"2.2.1-4.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python-dev", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python-doc", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python-elisp", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python-examples", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python-gdbm", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python-mpz", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python-tk", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python-xmlbase", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python1.5", reference:"1.5.2-23.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python1.5-dev", reference:"1.5.2-23.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python1.5-examples", reference:"1.5.2-23.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python1.5-gdbm", reference:"1.5.2-23.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python1.5-mpz", reference:"1.5.2-23.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python1.5-tk", reference:"1.5.2-23.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.1", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.1-dev", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.1-doc", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.1-elisp", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.1-examples", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.1-gdbm", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.1-mpz", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.1-tk", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.1-xmlbase", reference:"2.1.3-3.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.2", reference:"2.2.1-4.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.2-dev", reference:"2.2.1-4.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.2-doc", reference:"2.2.1-4.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.2-elisp", reference:"2.2.1-4.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.2-examples", reference:"2.2.1-4.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.2-gdbm", reference:"2.2.1-4.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.2-mpz", reference:"2.2.1-4.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.2-tk", reference:"2.2.1-4.2")) flag++;
    if (deb_check(release:"3.0", prefix:"python2.2-xmlbase", reference:"2.2.1-4.2")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_warning(port:0, extra:deb_report_get());
      else security_warning(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familyMandriva Local Security Checks
    NASL idMANDRAKE_MDKSA-2002-082.NASL
    descriptionA vulnerability was discovered in python by Zack Weinberg in the way that the execvpe() method from the os.py module uses a temporary file name. The file is created in an unsafe manner and execvpe() tries to execute it, which can be used by a local attacker to execute arbitrary code with the privilege of the user running the python code that is using this method. Update : The previously released packages for 9.0 had an incorrect dependency on libdb.so.2 instead of libdb.so.3. This update corrects that problem.
    last seen2020-06-01
    modified2020-06-02
    plugin id13980
    published2004-07-31
    reporterThis script is Copyright (C) 2004-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/13980
    titleMandrake Linux Security Advisory : python (MDKSA-2002:082-1)

Redhat

advisories
  • rhsa
    idRHSA-2002:202
  • rhsa
    idRHSA-2003:048