Vulnerabilities > CVE-2014-3248 - Code vulnerability in multiple products

047910
CVSS 6.2 - MEDIUM
Attack vector
LOCAL
Attack complexity
HIGH
Privileges required
NONE
Confidentiality impact
COMPLETE
Integrity impact
COMPLETE
Availability impact
COMPLETE
local
high complexity
puppet
puppetlabs
CWE-17
nessus

Summary

Untrusted search path vulnerability in Puppet Enterprise 2.8 before 2.8.7, Puppet before 2.7.26 and 3.x before 3.6.2, Facter 1.6.x and 2.x before 2.0.2, Hiera before 1.3.4, and Mcollective before 2.5.2, when running with Ruby 1.9.1 or earlier, allows local users to gain privileges via a Trojan horse file in the current working directory, as demonstrated using (1) rubygems/defaults/operating_system.rb, (2) Win32API.rb, (3) Win32API.so, (4) safe_yaml.rb, (5) safe_yaml/deep.rb, or (6) safe_yaml/deep.so; or (7) operatingsystem.rb, (8) operatingsystem.so, (9) osfamily.rb, or (10) osfamily.so in puppet/confine.

Vulnerable Configurations

Part Description Count
Application
Puppet
281
Application
Puppetlabs
58

Common Weakness Enumeration (CWE)

Nessus

  • NASL familyGentoo Local Security Checks
    NASL idGENTOO_GLSA-201412-15.NASL
    descriptionThe remote host is affected by the vulnerability described in GLSA-201412-15 (MCollective: Privilege escalation) Two vulnerabilities have been found in MCollective: An untrusted search path vulnerability exists in MCollective (CVE-2014-3248) MCollective does not properly validate server certificates (CVE-2014-3251) Impact : A local attacker can execute arbitrary a Trojan horse shared library, potentially resulting in arbitrary code execution and privilege escalation. Furthermore, a local attacker may be able to establish unauthorized MCollective connections. Workaround : There is no known workaround at this time.
    last seen2020-06-01
    modified2020-06-02
    plugin id79968
    published2014-12-15
    reporterThis script is Copyright (C) 2014-2015 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/79968
    titleGLSA-201412-15 : MCollective: Privilege escalation
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Gentoo Linux Security Advisory GLSA 201412-15.
    #
    # The advisory text is Copyright (C) 2001-2015 Gentoo Foundation, Inc.
    # and licensed under the Creative Commons - Attribution / Share Alike 
    # license. See http://creativecommons.org/licenses/by-sa/3.0/
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(79968);
      script_version("$Revision: 1.3 $");
      script_cvs_date("$Date: 2015/04/13 14:33:56 $");
    
      script_cve_id("CVE-2014-3248", "CVE-2014-3251");
      script_bugtraq_id(68035, 69235);
      script_xref(name:"GLSA", value:"201412-15");
    
      script_name(english:"GLSA-201412-15 : MCollective: Privilege escalation");
      script_summary(english:"Checks for updated package(s) in /var/db/pkg");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:
    "The remote Gentoo host is missing one or more security-related
    patches."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "The remote host is affected by the vulnerability described in GLSA-201412-15
    (MCollective: Privilege escalation)
    
        Two vulnerabilities have been found in MCollective:
          An untrusted search path vulnerability exists in MCollective
            (CVE-2014-3248)
          MCollective does not properly validate server certificates
            (CVE-2014-3251)
      
    Impact :
    
        A local attacker can execute arbitrary a Trojan horse shared library,
          potentially resulting in arbitrary code execution and privilege
          escalation. Furthermore, a local attacker may be able to establish
          unauthorized MCollective connections.
      
    Workaround :
    
        There is no known workaround at this time."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security.gentoo.org/glsa/201412-15"
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "All MCollective users should upgrade to the latest version:
          # emerge --sync
          # emerge --ask --oneshot --verbose '>=app-admin/mcollective-2.5.3'"
      );
      script_set_cvss_base_vector("CVSS2#AV:L/AC:H/Au:N/C:C/I:C/A:C");
      script_set_cvss_temporal_vector("CVSS2#E:ND/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:gentoo:linux:mcollective");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:gentoo:linux");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2014/12/13");
      script_set_attribute(attribute:"plugin_publication_date", value:"2014/12/15");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2014-2015 Tenable Network Security, Inc.");
      script_family(english:"Gentoo Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/Gentoo/release", "Host/Gentoo/qpkg-list");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("global_settings.inc");
    include("qpkg.inc");
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    if (!get_kb_item("Host/Gentoo/release")) audit(AUDIT_OS_NOT, "Gentoo");
    if (!get_kb_item("Host/Gentoo/qpkg-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    
    if (qpkg_check(package:"app-admin/mcollective", unaffected:make_list("ge 2.5.3"), vulnerable:make_list("lt 2.5.3"))) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_warning(port:0, extra:qpkg_report_get());
      else security_warning(0);
      exit(0);
    }
    else
    {
      tested = qpkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "MCollective");
    }
    
  • NASL familyAmazon Linux Local Security Checks
    NASL idALA_ALAS-2014-456.NASL
    descriptionUntrusted search path vulnerability in Puppet Enterprise 2.8 before 2.8.7, Puppet before 2.7.26 and 3.x before 3.6.2, Facter 1.6.x and 2.x before 2.0.2, Hiera before 1.3.4, and Mcollective before 2.5.2, when running with Ruby 1.9.1 or earlier, allows local users to gain privileges via a Trojan horse file in the current working directory, as demonstrated using (1) rubygems/defaults/operating_system.rb, (2) Win32API.rb, (3) Win32API.so, (4) safe_yaml.rb, (5) safe_yaml/deep.rb, or (6) safe_yaml/deep.so; or (7) operatingsystem.rb, (8) operatingsystem.so, (9) osfamily.rb, or (10) osfamily.so in puppet/confine.
    last seen2020-06-01
    modified2020-06-02
    plugin id79840
    published2014-12-10
    reporterThis script is Copyright (C) 2014-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/79840
    titleAmazon Linux AMI : facter (ALAS-2014-456)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Amazon Linux AMI Security Advisory ALAS-2014-456.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(79840);
      script_version("1.3");
      script_cvs_date("Date: 2018/04/18 15:09:35");
    
      script_cve_id("CVE-2014-3248");
      script_xref(name:"ALAS", value:"2014-456");
    
      script_name(english:"Amazon Linux AMI : facter (ALAS-2014-456)");
      script_summary(english:"Checks rpm output for the updated package");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Amazon Linux AMI host is missing a security update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "Untrusted search path vulnerability in Puppet Enterprise 2.8 before
    2.8.7, Puppet before 2.7.26 and 3.x before 3.6.2, Facter 1.6.x and 2.x
    before 2.0.2, Hiera before 1.3.4, and Mcollective before 2.5.2, when
    running with Ruby 1.9.1 or earlier, allows local users to gain
    privileges via a Trojan horse file in the current working directory,
    as demonstrated using (1) rubygems/defaults/operating_system.rb, (2)
    Win32API.rb, (3) Win32API.so, (4) safe_yaml.rb, (5) safe_yaml/deep.rb,
    or (6) safe_yaml/deep.so; or (7) operatingsystem.rb, (8)
    operatingsystem.so, (9) osfamily.rb, or (10) osfamily.so in
    puppet/confine."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://alas.aws.amazon.com/ALAS-2014-456.html"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Run 'yum update facter' to update your system."
      );
      script_set_cvss_base_vector("CVSS2#AV:L/AC:H/Au:N/C:C/I:C/A:C");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:facter");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:amazon:linux");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2014/12/08");
      script_set_attribute(attribute:"plugin_publication_date", value:"2014/12/10");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2014-2018 Tenable Network Security, Inc.");
      script_family(english:"Amazon Linux Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/AmazonLinux/release", "Host/AmazonLinux/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);
    
    release = get_kb_item("Host/AmazonLinux/release");
    if (isnull(release) || !strlen(release)) audit(AUDIT_OS_NOT, "Amazon Linux");
    os_ver = pregmatch(pattern: "^AL(A|\d)", string:release);
    if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Amazon Linux");
    os_ver = os_ver[1];
    if (os_ver != "A")
    {
      if (os_ver == 'A') os_ver = 'AMI';
      audit(AUDIT_OS_NOT, "Amazon Linux AMI", "Amazon Linux " + os_ver);
    }
    
    if (!get_kb_item("Host/AmazonLinux/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    if (rpm_check(release:"ALA", reference:"facter-1.6.18-7.25.amzn1")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_warning(port:0, extra:rpm_report_get());
      else security_warning(0);
      exit(0);
    }
    else
    {
      tested = pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "facter");
    }
    
  • NASL familyUbuntu Local Security Checks
    NASL idUBUNTU_USN-3308-1.NASL
    descriptionDennis Rowe discovered that Puppet incorrectly handled the search path. A local attacker could use this issue to possibly execute arbitrary code. (CVE-2014-3248) It was discovered that Puppet incorrectly handled YAML deserialization. A remote attacker could possibly use this issue to execute arbitrary code on the master. This update is incompatible with agents older than 3.2.2. (CVE-2017-2295). Note that Tenable Network Security has extracted the preceding description block directly from the Ubuntu security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-01
    modified2020-06-02
    plugin id100632
    published2017-06-06
    reporterUbuntu Security Notice (C) 2017-2019 Canonical, Inc. / NASL script (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/100632
    titleUbuntu 14.04 LTS : puppet vulnerabilities (USN-3308-1)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Ubuntu Security Notice USN-3308-1. The text 
    # itself is copyright (C) Canonical, Inc. See 
    # <http://www.ubuntu.com/usn/>. Ubuntu(R) is a registered 
    # trademark of Canonical, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(100632);
      script_version("3.8");
      script_cvs_date("Date: 2019/09/18 12:31:47");
    
      script_cve_id("CVE-2014-3248", "CVE-2017-2295");
      script_xref(name:"USN", value:"3308-1");
    
      script_name(english:"Ubuntu 14.04 LTS : puppet vulnerabilities (USN-3308-1)");
      script_summary(english:"Checks dpkg output for updated package.");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Ubuntu host is missing a security-related patch."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "Dennis Rowe discovered that Puppet incorrectly handled the search
    path. A local attacker could use this issue to possibly execute
    arbitrary code. (CVE-2014-3248)
    
    It was discovered that Puppet incorrectly handled YAML
    deserialization. A remote attacker could possibly use this issue to
    execute arbitrary code on the master. This update is incompatible with
    agents older than 3.2.2. (CVE-2017-2295).
    
    Note that Tenable Network Security has extracted the preceding
    description block directly from the Ubuntu security advisory. Tenable
    has attempted to automatically clean and format it as much as possible
    without introducing additional issues."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://usn.ubuntu.com/3308-1/"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Update the affected puppet-common package."
      );
      script_set_cvss_base_vector("CVSS2#AV:L/AC:H/Au:N/C:C/I:C/A:C");
      script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N");
      script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/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:canonical:ubuntu_linux:puppet-common");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:14.04");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2014/11/16");
      script_set_attribute(attribute:"patch_publication_date", value:"2017/06/05");
      script_set_attribute(attribute:"plugin_publication_date", value:"2017/06/06");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"Ubuntu Security Notice (C) 2017-2019 Canonical, Inc. / NASL script (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"Ubuntu Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/cpu", "Host/Ubuntu", "Host/Ubuntu/release", "Host/Debian/dpkg-l");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("ubuntu.inc");
    include("misc_func.inc");
    
    if ( ! get_kb_item("Host/local_checks_enabled") ) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    release = get_kb_item("Host/Ubuntu/release");
    if ( isnull(release) ) audit(AUDIT_OS_NOT, "Ubuntu");
    release = chomp(release);
    if (! preg(pattern:"^(14\.04)$", string:release)) audit(AUDIT_OS_NOT, "Ubuntu 14.04", "Ubuntu " + release);
    if ( ! get_kb_item("Host/Debian/dpkg-l") ) 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$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "Ubuntu", cpu);
    
    flag = 0;
    
    if (ubuntu_check(osver:"14.04", pkgname:"puppet-common", pkgver:"3.4.3-1ubuntu1.2")) flag++;
    
    if (flag)
    {
      security_report_v4(
        port       : 0,
        severity   : SECURITY_WARNING,
        extra      : ubuntu_report_get()
      );
      exit(0);
    }
    else
    {
      tested = ubuntu_pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "puppet-common");
    }
    
  • NASL familySuSE Local Security Checks
    NASL idSUSE_11_PUPPET-140630.NASL
    descriptionPuppet was updated to fix the following security issues : - Unsafe use of temporary files. (CVE-2013-4969) - Arbitrary code execution with required social engineering. (CVE-2014-3248 / CVE-2014-3250)
    last seen2020-06-05
    modified2014-07-09
    plugin id76424
    published2014-07-09
    reporterThis script is Copyright (C) 2014-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/76424
    titleSuSE 11.3 Security Update : puppet (SAT Patch Number 9472)
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from SuSE 11 update information. The text itself is
    # copyright (C) Novell, Inc.
    #
    
    if (NASL_LEVEL < 3000) exit(0);
    
    include("compat.inc");
    
    if (description)
    {
      script_id(76424);
      script_version("1.3");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/04");
    
      script_cve_id("CVE-2013-4969", "CVE-2014-3248", "CVE-2014-3250");
    
      script_name(english:"SuSE 11.3 Security Update : puppet (SAT Patch Number 9472)");
      script_summary(english:"Checks rpm output for the updated packages");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote SuSE 11 host is missing one or more security updates."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "Puppet was updated to fix the following security issues :
    
      - Unsafe use of temporary files. (CVE-2013-4969)
    
      - Arbitrary code execution with required social
        engineering. (CVE-2014-3248 / CVE-2014-3250)"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.novell.com/show_bug.cgi?id=856843"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.novell.com/show_bug.cgi?id=879913"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"http://support.novell.com/security/cve/CVE-2013-4969.html"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"http://support.novell.com/security/cve/CVE-2014-3248.html"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"http://support.novell.com/security/cve/CVE-2014-3250.html"
      );
      script_set_attribute(attribute:"solution", value:"Apply SAT patch number 9472.");
      script_set_cvss_base_vector("CVSS2#AV:L/AC:H/Au:N/C:C/I:C/A:C");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:11:puppet");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:11:puppet-server");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:suse_linux:11");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2014/06/30");
      script_set_attribute(attribute:"plugin_publication_date", value:"2014/07/09");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2014-2020 Tenable Network Security, Inc.");
      script_family(english:"SuSE Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/cpu", "Host/SuSE/release", "Host/SuSE/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);
    release = get_kb_item("Host/SuSE/release");
    if (isnull(release) || release !~ "^(SLED|SLES)11") audit(AUDIT_OS_NOT, "SuSE 11");
    if (!get_kb_item("Host/SuSE/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    cpu = get_kb_item("Host/cpu");
    if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
    if (cpu !~ "^i[3-6]86$" && "x86_64" >!< cpu && "s390x" >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "SuSE 11", cpu);
    
    pl = get_kb_item("Host/SuSE/patchlevel");
    if (isnull(pl) || int(pl) != 3) audit(AUDIT_OS_NOT, "SuSE 11.3");
    
    
    flag = 0;
    if (rpm_check(release:"SLED11", sp:3, cpu:"i586", reference:"puppet-2.6.18-0.16.1")) flag++;
    if (rpm_check(release:"SLED11", sp:3, cpu:"x86_64", reference:"puppet-2.6.18-0.16.1")) flag++;
    if (rpm_check(release:"SLES11", sp:3, reference:"puppet-2.6.18-0.16.1")) flag++;
    if (rpm_check(release:"SLES11", sp:3, reference:"puppet-server-2.6.18-0.16.1")) flag++;
    
    
    if (flag)
    {
      if (report_verbosity > 0) security_warning(port:0, extra:rpm_report_get());
      else security_warning(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familyCGI abuses
    NASL idPUPPET_2_7_26.NASL
    descriptionAccording to its self-reported version number, the Puppet install on the remote host is affected by multiple vulnerabilities : - A privilege escalation vulnerability related to input validation and paths exists in the bundled Ruby environment. An attacker could trick a privileged user into executing arbitrary code by convincing the user to change directories and then run Puppet. (CVE-2014-3248) - An error exists related to the console role that could allow unauthenticated users to obtain sensitive information by hiding and unhiding nodes. Note that this issue only affects Puppet Enterprise installs. (CVE-2014-3249) - An error exists related to configurations including Apache 2.4 and the mod_ssl
    last seen2020-06-01
    modified2020-06-02
    plugin id76344
    published2014-07-02
    reporterThis script is Copyright (C) 2014-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/76344
    titlePuppet < 2.7.26 / 3.6.2 and Enterprise 2.8.x < 2.8.7 Multiple Vulnerabilities
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(76344);
      script_version("1.5");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/12");
    
      script_cve_id("CVE-2014-3248", "CVE-2014-3249", "CVE-2014-3250");
      script_bugtraq_id(68035, 68037);
    
      script_name(english:"Puppet < 2.7.26 / 3.6.2 and Enterprise 2.8.x < 2.8.7 Multiple Vulnerabilities");
      script_summary(english:"Checks puppet version.");
    
      script_set_attribute(attribute:"synopsis", value:
    "A web application on the remote host is affected by multiple
    vulnerabilities.");
      script_set_attribute(attribute:"description", value:
    "According to its self-reported version number, the Puppet install on
    the remote host is affected by multiple vulnerabilities :
    
      - A privilege escalation vulnerability related to input
        validation and paths exists in the bundled Ruby
        environment. An attacker could trick a privileged user
        into executing arbitrary code by convincing the user to
        change directories and then run Puppet.
        (CVE-2014-3248)
    
      - An error exists related to the console role that could
        allow unauthenticated users to obtain sensitive
        information by hiding and unhiding nodes. Note that
        this issue only affects Puppet Enterprise installs.
        (CVE-2014-3249)
    
      - An error exists related to configurations including
        Apache 2.4 and the mod_ssl 'SSLCARevocationCheck' that
        could allow an attacker to obtain sensitive
        information. Note that this issue does not affect
        Puppet Enterprise installs. (CVE-2014-3250)");
      script_set_attribute(attribute:"see_also", value:"https://puppet.com/security/cve/cve-2014-3248");
      script_set_attribute(attribute:"see_also", value:"https://puppet.com/security/cve/cve-2014-3249");
      script_set_attribute(attribute:"see_also", value:"https://puppet.com/security/cve/CVE-2014-3250");
      script_set_attribute(attribute:"solution", value:
    "Upgrade to Puppet 2.7.26 / 3.6.2 or Puppet Enterprise 2.8.7 or later.");
      script_set_cvss_base_vector("CVSS2#AV:L/AC:H/Au:N/C:C/I:C/A:C");
      script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
      script_set_attribute(attribute:"cvss_score_source", value:"CVE-2014-3248");
    
      script_set_attribute(attribute:"exploitability_ease", value:"No exploit is required");
      script_set_attribute(attribute:"exploit_available", value:"false");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2014/06/10");
      script_set_attribute(attribute:"patch_publication_date", value:"2014/06/10");
      script_set_attribute(attribute:"plugin_publication_date", value:"2014/07/02");
    
      script_set_attribute(attribute:"plugin_type", value:"remote");
      script_set_attribute(attribute:"cpe", value:"cpe:/a:puppetlabs:puppet");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_family(english:"CGI abuses");
    
      script_copyright(english:"This script is Copyright (C) 2014-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("puppet_rest_detect.nasl");
      script_require_keys("puppet/rest_port");
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("misc_func.inc");
    include("http.inc");
    
    ##
    # checks if the given version falls between the given bounds, and
    # generates plugin output if it does
    #
    # @anonparam ver version to check
    # @anonparam fix first fixed version
    # @anonparam min_ver the lowest/earliest vulnerable version, relative to 'fix' (optional)
    #
    # @return plugin output if 'ver' is vulnerable relative to 'fix' and/or 'min_ver',
    #         NULL otherwise
    ##
    function _check_version(enterprise)
    {
      local_var ver, fix, min_ver, major_ver, report;
      ver = _FCT_ANON_ARGS[0];
      fix = _FCT_ANON_ARGS[1];
      min_ver = _FCT_ANON_ARGS[2];
    
      if (
        # no lower bound
        (
          isnull(min_ver) &&
          ver_compare(ver:ver, fix:fix, strict:FALSE) < 0
        ) ||
    
        # lower bound
        (
          !isnull(min_ver) &&
          ver_compare(ver:ver, fix:fix, strict:FALSE) < 0 &&
          ver_compare(ver:ver, fix:min_ver, strict:FALSE) >= 0
        )
      )
      {
        if (enterprise)
        {
          report =
            '\n  Installed version : Puppet Enterprise ' + ver +
            '\n  Fixed version     : Puppet Enterprise ' + fix + '\n';
        }
        else
        {
          report =
            '\n  Installed version : Puppet Open Source ' + ver +
            '\n  Fixed version     : Puppet Open Source ' + fix + '\n';
        }
      }
      else report = FALSE;
    
      return report;
    }
    
    port = get_kb_item_or_exit('puppet/rest_port');
    ver = get_kb_item_or_exit('puppet/' + port + '/version');
    report = FALSE;
    
    if ('Enterprise' >< ver)
    {
      app_name = "Puppet Enterprise";
      match = eregmatch(string:ver, pattern:"Enterprise ([0-9.]+)\)");
      if (isnull(match)) audit(AUDIT_UNKNOWN_WEB_APP_VER, app_name, build_url(port:port));
      ver = match[1];
    
      # Resolved in Puppet Enterprise 2.8.7
      report = _check_version(ver, '2.8.7', "2.8", enterprise:TRUE);
    }
    else
    {
      # Do not run against open source unless scan is paranoid
      if (report_paranoia < 2) audit(AUDIT_PARANOID);
    
      app_name = "Puppet";
    
      # sanity check - make sure the version doesn't include letters or anything else unexpected
      match = eregmatch(string:ver, pattern:"^([0-9.]+)$");
      if (isnull(match)) audit(AUDIT_NONNUMERIC_VER, app_name, port, ver);
      ver = match[1];
    
      # Resolved in Puppet 2.7.26, 3.6.2
      report = _check_version(ver, '2.7.26', '0.0');
      if (!report)
        report = _check_version(ver, '3.6.2', '3.0');
    }
    
    if (!report) audit(AUDIT_LISTEN_NOT_VULN, app_name, port, ver);
    
    if (report_verbosity > 0) security_warning(port:port, extra:report);
    else security_warning(port);
    
  • NASL familySolaris Local Security Checks
    NASL idSOLARIS11_FACTER_20141120.NASL
    descriptionThe remote Solaris system is missing necessary patches to address security updates : - Untrusted search path vulnerability in Puppet Enterprise 2.8 before 2.8.7, Puppet before 2.7.26 and 3.x before 3.6.2, Facter 1.6.x and 2.x before 2.0.2, Hiera before 1.3.4, and Mcollective before 2.5.2, when running with Ruby 1.9.1 or earlier, allows local users to gain privileges via a Trojan horse file in the current working directory, as demonstrated using (1) rubygems/defaults/ operating_system.rb, (2) Win32API.rb, (3) Win32API.so, (4) safe_yaml.rb, (5) safe_yaml/deep.rb, or (6) safe_yaml/deep.so; or (7) operatingsystem.rb, (8) operatingsystem.so, (9) osfamily.rb, or (10) osfamily.so in puppet/confine. (CVE-2014-3248)
    last seen2020-06-01
    modified2020-06-02
    plugin id80604
    published2015-01-19
    reporterThis script is Copyright (C) 2015-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/80604
    titleOracle Solaris Third-Party Patch Update : facter (cve_2014_3248_untrusted_search)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from the Oracle Third Party software advisories.
    #
    include("compat.inc");
    
    if (description)
    {
      script_id(80604);
      script_version("1.2");
      script_cvs_date("Date: 2018/11/15 20:50:25");
    
      script_cve_id("CVE-2014-3248");
    
      script_name(english:"Oracle Solaris Third-Party Patch Update : facter (cve_2014_3248_untrusted_search)");
      script_summary(english:"Check for the 'entire' version.");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:
    "The remote Solaris system is missing a security patch for third-party
    software."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "The remote Solaris system is missing necessary patches to address
    security updates :
    
      - Untrusted search path vulnerability in Puppet Enterprise
        2.8 before 2.8.7, Puppet before 2.7.26 and 3.x before
        3.6.2, Facter 1.6.x and 2.x before 2.0.2, Hiera before
        1.3.4, and Mcollective before 2.5.2, when running with
        Ruby 1.9.1 or earlier, allows local users to gain
        privileges via a Trojan horse file in the current
        working directory, as demonstrated using (1)
        rubygems/defaults/ operating_system.rb, (2) Win32API.rb,
        (3) Win32API.so, (4) safe_yaml.rb, (5)
        safe_yaml/deep.rb, or (6) safe_yaml/deep.so; or (7)
        operatingsystem.rb, (8) operatingsystem.so, (9)
        osfamily.rb, or (10) osfamily.so in puppet/confine.
        (CVE-2014-3248)"
      );
      # https://www.oracle.com/technetwork/topics/security/thirdparty-patch-map-1482893.html
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?4a913f44"
      );
      # https://blogs.oracle.com/sunsecurity/cve-2014-3248-untrusted-search-path-vulnerability-in-facter
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?46189aca"
      );
      script_set_attribute(attribute:"solution", value:"Upgrade to Solaris 11.2.4.6.0.");
      script_set_cvss_base_vector("CVSS2#AV:L/AC:H/Au:N/C:C/I:C/A:C");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:oracle:solaris:11.2");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:oracle:solaris:facter");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2014/11/20");
      script_set_attribute(attribute:"plugin_publication_date", value:"2015/01/19");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2015-2018 Tenable Network Security, Inc.");
      script_family(english:"Solaris Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/Solaris11/release", "Host/Solaris11/pkg-list");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("global_settings.inc");
    include("misc_func.inc");
    include("solaris.inc");
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    release = get_kb_item("Host/Solaris11/release");
    if (isnull(release)) audit(AUDIT_OS_NOT, "Solaris11");
    pkg_list = solaris_pkg_list_leaves();
    if (isnull (pkg_list)) audit(AUDIT_PACKAGE_LIST_MISSING, "Solaris pkg-list packages");
    
    if (empty_or_null(egrep(string:pkg_list, pattern:"^facter$"))) audit(AUDIT_PACKAGE_NOT_INSTALLED, "facter");
    
    flag = 0;
    
    if (solaris_check_release(release:"0.5.11-0.175.2.4.0.6.0", sru:"SRU 11.2.4.6.0") > 0) flag++;
    
    if (flag)
    {
      error_extra = 'Affected package : facter\n' + solaris_get_report2();
      error_extra = ereg_replace(pattern:"version", replace:"OS version", string:error_extra);
      if (report_verbosity > 0) security_warning(port:0, extra:error_extra);
      else security_warning(0);
      exit(0);
    }
    else audit(AUDIT_PACKAGE_NOT_AFFECTED, "facter");
    
  • NASL familySolaris Local Security Checks
    NASL idSOLARIS11_PUPPET_20141216.NASL
    descriptionThe remote Solaris system is missing necessary patches to address security updates : - Untrusted search path vulnerability in Puppet Enterprise 2.8 before 2.8.7, Puppet before 2.7.26 and 3.x before 3.6.2, Facter 1.6.x and 2.x before 2.0.2, Hiera before 1.3.4, and Mcollective before 2.5.2, when running with Ruby 1.9.1 or earlier, allows local users to gain privileges via a Trojan horse file in the current working directory, as demonstrated using (1) rubygems/defaults/ operating_system.rb, (2) Win32API.rb, (3) Win32API.so, (4) safe_yaml.rb, (5) safe_yaml/deep.rb, or (6) safe_yaml/deep.so; or (7) operatingsystem.rb, (8) operatingsystem.so, (9) osfamily.rb, or (10) osfamily.so in puppet/confine. (CVE-2014-3248)
    last seen2020-06-01
    modified2020-06-02
    plugin id80745
    published2015-01-19
    reporterThis script is Copyright (C) 2015-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/80745
    titleOracle Solaris Third-Party Patch Update : puppet (multiple_vulnerabilities_in_puppet1)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from the Oracle Third Party software advisories.
    #
    include("compat.inc");
    
    if (description)
    {
      script_id(80745);
      script_version("1.3");
      script_cvs_date("Date: 2018/11/15 20:50:25");
    
      script_cve_id("CVE-2014-3248", "CVE-2014-3250");
    
      script_name(english:"Oracle Solaris Third-Party Patch Update : puppet (multiple_vulnerabilities_in_puppet1)");
      script_summary(english:"Check for the 'entire' version.");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:
    "The remote Solaris system is missing a security patch for third-party
    software."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "The remote Solaris system is missing necessary patches to address
    security updates :
    
      - Untrusted search path vulnerability in Puppet Enterprise
        2.8 before 2.8.7, Puppet before 2.7.26 and 3.x before
        3.6.2, Facter 1.6.x and 2.x before 2.0.2, Hiera before
        1.3.4, and Mcollective before 2.5.2, when running with
        Ruby 1.9.1 or earlier, allows local users to gain
        privileges via a Trojan horse file in the current
        working directory, as demonstrated using (1)
        rubygems/defaults/ operating_system.rb, (2) Win32API.rb,
        (3) Win32API.so, (4) safe_yaml.rb, (5)
        safe_yaml/deep.rb, or (6) safe_yaml/deep.so; or (7)
        operatingsystem.rb, (8) operatingsystem.so, (9)
        osfamily.rb, or (10) osfamily.so in puppet/confine.
        (CVE-2014-3248)"
      );
      # https://www.oracle.com/technetwork/topics/security/thirdparty-patch-map-1482893.html
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?4a913f44"
      );
      # https://blogs.oracle.com/sunsecurity/multiple-vulnerabilities-in-puppet
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?7e305605"
      );
      script_set_attribute(attribute:"solution", value:"Upgrade to Solaris 11.2.5.5.0.");
      script_set_cvss_base_vector("CVSS2#AV:L/AC:H/Au:N/C:C/I:C/A:C");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:oracle:solaris:11.2");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:oracle:solaris:puppet");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2014/12/16");
      script_set_attribute(attribute:"plugin_publication_date", value:"2015/01/19");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2015-2018 Tenable Network Security, Inc.");
      script_family(english:"Solaris Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/Solaris11/release", "Host/Solaris11/pkg-list");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("global_settings.inc");
    include("misc_func.inc");
    include("solaris.inc");
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    release = get_kb_item("Host/Solaris11/release");
    if (isnull(release)) audit(AUDIT_OS_NOT, "Solaris11");
    pkg_list = solaris_pkg_list_leaves();
    if (isnull (pkg_list)) audit(AUDIT_PACKAGE_LIST_MISSING, "Solaris pkg-list packages");
    
    if (empty_or_null(egrep(string:pkg_list, pattern:"^puppet$"))) audit(AUDIT_PACKAGE_NOT_INSTALLED, "puppet");
    
    flag = 0;
    
    if (solaris_check_release(release:"0.5.11-0.175.2.5.0.5.0", sru:"SRU 11.2.5.5.0") > 0) flag++;
    
    if (flag)
    {
      error_extra = 'Affected package : puppet\n' + solaris_get_report2();
      error_extra = ereg_replace(pattern:"version", replace:"OS version", string:error_extra);
      if (report_verbosity > 0) security_warning(port:0, extra:error_extra);
      else security_warning(0);
      exit(0);
    }
    else audit(AUDIT_PACKAGE_NOT_AFFECTED, "puppet");
    
  • NASL familyGentoo Local Security Checks
    NASL idGENTOO_GLSA-201412-45.NASL
    descriptionThe remote host is affected by the vulnerability described in GLSA-201412-45 (Facter: Privilege escalation) Facter includes the current working directory in the search path. Impact : A local attacker may be able to gain escalated privileges. Workaround : There is no known workaround at this time.
    last seen2020-06-01
    modified2020-06-02
    plugin id80266
    published2014-12-29
    reporterThis script is Copyright (C) 2014-2015 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/80266
    titleGLSA-201412-45 : Facter: Privilege escalation
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2014-12699.NASL
    descriptionUpdate to 1.7.6 for bz#1107891 and CVE-2014-3248 See http://puppetlabs.com/security/cve/CVE-2014-3248 for more information upstream. Note that Tenable Network Security has extracted the preceding description block directly from the Fedora security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-03-17
    modified2014-11-24
    plugin id79389
    published2014-11-24
    reporterThis script is Copyright (C) 2014-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/79389
    titleFedora 20 : facter-1.7.6-1.fc20 (2014-12699)
  • NASL familyAmazon Linux Local Security Checks
    NASL idALA_ALAS-2015-484.NASL
    descriptionUntrusted search path vulnerability in Puppet Enterprise 2.8 before 2.8.7, Puppet before 2.7.26 and 3.x before 3.6.2, Facter 1.6.x and 2.x before 2.0.2, Hiera before 1.3.4, and Mcollective before 2.5.2, when running with Ruby 1.9.1 or earlier, allows local users to gain privileges via a Trojan horse file in the current working directory, as demonstrated using (1) rubygems/defaults/operating_system.rb, (2) Win32API.rb, (3) Win32API.so, (4) safe_yaml.rb, (5) safe_yaml/deep.rb, or (6) safe_yaml/deep.so; or (7) operatingsystem.rb, (8) operatingsystem.so, (9) osfamily.rb, or (10) osfamily.so in puppet/confine.
    last seen2020-06-01
    modified2020-06-02
    plugin id81330
    published2015-02-13
    reporterThis script is Copyright (C) 2015-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/81330
    titleAmazon Linux AMI : puppet (ALAS-2015-484)