Vulnerabilities > CVE-2013-2274 - Remote Code Execution vulnerability in Puppet

047910
CVSS 6.5 - MEDIUM
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
SINGLE
Confidentiality impact
PARTIAL
Integrity impact
PARTIAL
Availability impact
PARTIAL
network
low complexity
puppet
puppetlabs
nessus

Summary

Puppet 2.6.x before 2.6.18 and Puppet Enterprise 1.2.x before 1.2.7 allows remote authenticated users to execute arbitrary code on the puppet master, or an agent with puppet kick enabled, via a crafted request for a report.

Nessus

  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DSA-2643.NASL
    descriptionMultiple vulnerabilities were discovered in Puppet, a centralized configuration management system. - CVE-2013-1640 An authenticated malicious client may request its catalog from the puppet master, and cause the puppet master to execute arbitrary code. The puppet master must be made to invoke the
    last seen2020-03-17
    modified2013-03-13
    plugin id65228
    published2013-03-13
    reporterThis script is Copyright (C) 2013-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/65228
    titleDebian DSA-2643-1 : puppet - several vulnerabilities
    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-2643. The text 
    # itself is copyright (C) Software in the Public Interest, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(65228);
      script_version("1.11");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/03/12");
    
      script_cve_id("CVE-2013-1640", "CVE-2013-1652", "CVE-2013-1653", "CVE-2013-1654", "CVE-2013-1655", "CVE-2013-2274", "CVE-2013-2275");
      script_xref(name:"DSA", value:"2643");
    
      script_name(english:"Debian DSA-2643-1 : puppet - several vulnerabilities");
      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:
    "Multiple vulnerabilities were discovered in Puppet, a centralized
    configuration management system.
    
      - CVE-2013-1640
        An authenticated malicious client may request its
        catalog from the puppet master, and cause the puppet
        master to execute arbitrary code. The puppet master must
        be made to invoke the 'template' or 'inline_template'
        functions during catalog compilation.
    
      - CVE-2013-1652
        An authenticated malicious client may retrieve catalogs
        from the puppet master that it is not authorized to
        access. Given a valid certificate and private key, it is
        possible to construct an HTTP GET request that will
        return a catalog for an arbitrary client.
    
      - CVE-2013-1653
        An authenticated malicious client may execute arbitrary
        code on Puppet agents that accept kick connections.
        Puppet agents are not vulnerable in their default
        configuration. However, if the Puppet agent is
        configured to listen for incoming connections, e.g.
        listen = true, and the agent's auth.conf allows access
        to the 'run' REST endpoint, then an authenticated client
        can construct an HTTP PUT request to execute arbitrary
        code on the agent. This issue is made worse by the fact
        that puppet agents typically run as root.
    
      - CVE-2013-1654
        A bug in Puppet allows SSL connections to be downgraded
        to SSLv2, which is known to contain design flaw
        weaknesses. This affects SSL connections between puppet
        agents and master, as well as connections that puppet
        agents make to third-party servers that accept SSLv2
        connections. Note that SSLv2 is disabled since OpenSSL
        1.0.
    
      - CVE-2013-1655
        An unauthenticated malicious client may send requests to
        the puppet master, and have the master load code in an
        unsafe manner. It only affects users whose puppet
        masters are running ruby 1.9.3 and above.
    
      - CVE-2013-2274
        An authenticated malicious client may execute arbitrary
        code on the puppet master in its default configuration.
        Given a valid certificate and private key, a client can
        construct an HTTP PUT request that is authorized to save
        the client's own report, but the request will actually
        cause the puppet master to execute arbitrary code.
    
      - CVE-2013-2275
        The default auth.conf allows an authenticated node to
        submit a report for any other node, which is a problem
        for compliance. It has been made more restrictive by
        default so that a node is only allowed to save its own
        report."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2013-1640"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2013-1652"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2013-1653"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2013-1654"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2013-1655"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2013-2274"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2013-2275"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://packages.debian.org/source/squeeze/puppet"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://www.debian.org/security/2013/dsa-2643"
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "Upgrade the puppet packages.
    
    For the stable distribution (squeeze), these problems have been fixed
    in version 2.6.2-5+squeeze7."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:S/C:C/I:C/A:C");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:puppet");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:6.0");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2013/03/12");
      script_set_attribute(attribute:"plugin_publication_date", value:"2013/03/13");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2013-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
      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:"6.0", prefix:"puppet", reference:"2.6.2-5+squeeze7")) flag++;
    if (deb_check(release:"6.0", prefix:"puppet-common", reference:"2.6.2-5+squeeze7")) flag++;
    if (deb_check(release:"6.0", prefix:"puppet-el", reference:"2.6.2-5+squeeze7")) flag++;
    if (deb_check(release:"6.0", prefix:"puppet-testsuite", reference:"2.6.2-5+squeeze7")) flag++;
    if (deb_check(release:"6.0", prefix:"puppetmaster", reference:"2.6.2-5+squeeze7")) flag++;
    if (deb_check(release:"6.0", prefix:"vim-puppet", reference:"2.6.2-5+squeeze7")) 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 familyFreeBSD Local Security Checks
    NASL idFREEBSD_PKG_04042F9514B84382A8B9B30E365776CF.NASL
    descriptionMoses Mendoza reports : A vulnerability found in Puppet could allow an authenticated client to cause the master to execute arbitrary code while responding to a catalog request. Specifically, in order to exploit the vulnerability, the puppet master must be made to invoke the
    last seen2020-06-01
    modified2020-06-02
    plugin id65540
    published2013-03-14
    reporterThis script is Copyright (C) 2013-2018 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/65540
    titleFreeBSD : puppet26 -- multiple vulnerabilities (04042f95-14b8-4382-a8b9-b30e365776cf)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from the FreeBSD VuXML database :
    #
    # Copyright 2003-2018 Jacques Vidrine and contributors
    #
    # Redistribution and use in source (VuXML) and 'compiled' forms (SGML,
    # HTML, PDF, PostScript, RTF and so forth) with or without modification,
    # are permitted provided that the following conditions are met:
    # 1. Redistributions of source code (VuXML) must retain the above
    #    copyright notice, this list of conditions and the following
    #    disclaimer as the first lines of this file unmodified.
    # 2. Redistributions in compiled form (transformed to other DTDs,
    #    published online in any format, converted to PDF, PostScript,
    #    RTF and other formats) must reproduce the above copyright
    #    notice, this list of conditions and the following disclaimer
    #    in the documentation and/or other materials provided with the
    #    distribution.
    # 
    # THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS"
    # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
    # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
    # OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
    # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
    # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION,
    # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(65540);
      script_version("1.6");
      script_cvs_date("Date: 2018/12/19 13:21:18");
    
      script_cve_id("CVE-2013-1640", "CVE-2013-1652", "CVE-2013-1654", "CVE-2013-2274", "CVE-2013-2275");
    
      script_name(english:"FreeBSD : puppet26 -- multiple vulnerabilities (04042f95-14b8-4382-a8b9-b30e365776cf)");
      script_summary(english:"Checks for updated package in pkg_info output");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote FreeBSD host is missing a security-related update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "Moses Mendoza reports :
    
    A vulnerability found in Puppet could allow an authenticated client to
    cause the master to execute arbitrary code while responding to a
    catalog request. Specifically, in order to exploit the vulnerability,
    the puppet master must be made to invoke the 'template' or
    'inline_template' functions during catalog compilation.
    
    A vulnerability found in Puppet could allow an authenticated client to
    connect to a puppet master and perform unauthorized actions.
    Specifically, given a valid certificate and private key, an agent
    could retrieve catalogs from the master that it is not authorized to
    access or it could poison the puppet master's caches for any
    puppet-generated data that supports caching such as catalogs, nodes,
    facts, and resources. The extent and severity of this vulnerability
    varies depending on the specific configuration of the master: for
    example, whether it is using storeconfigs or not, which version,
    whether it has access to the cache or not, etc.
    
    A vulnerability has been found in Puppet that could allow a client
    negotiating a connection to a master to downgrade the master's SSL
    protocol to SSLv2. This protocol has been found to contain design
    weaknesses. This issue only affects systems running older versions
    (pre 1.0.0) of openSSL. Newer versions explicitly disable SSLv2.
    
    A vulnerability found in Puppet could allow an authenticated client to
    execute arbitrary code on a puppet master that is running in the
    default configuration, or an agent with `puppet kick` enabled.
    Specifically, a properly authenticated and connected puppet agent
    could be made to construct an HTTP PUT request for an authorized
    report that actually causes the execution of arbitrary code on the
    master.
    
    This vulnerability affects puppet masters 0.25.0 and above. By
    default, auth.conf allows any authenticated node to submit a report
    for any other node. This can cause issues with compliance. The
    defaults in auth.conf have been changed."
      );
      # https://puppetlabs.com/security/cve/cve-2013-1640/
      script_set_attribute(
        attribute:"see_also",
        value:"https://puppet.com/security/cve/cve-2013-1640"
      );
      # https://puppetlabs.com/security/cve/cve-2013-1652/
      script_set_attribute(
        attribute:"see_also",
        value:"https://puppet.com/security/cve/cve-2013-1652"
      );
      # https://puppetlabs.com/security/cve/cve-2013-1654/
      script_set_attribute(
        attribute:"see_also",
        value:"https://puppet.com/security/cve/cve-2013-1654"
      );
      # https://puppetlabs.com/security/cve/cve-2013-2274/
      script_set_attribute(
        attribute:"see_also",
        value:"https://puppet.com/security/cve/cve-2013-2274"
      );
      # https://puppetlabs.com/security/cve/cve-2013-2275/
      script_set_attribute(
        attribute:"see_also",
        value:"https://puppet.com/security/cve/cve-2013-2275"
      );
      # https://vuxml.freebsd.org/freebsd/04042f95-14b8-4382-a8b9-b30e365776cf.html
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?85d6b1e5"
      );
      script_set_attribute(attribute:"solution", value:"Update the affected package.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:S/C:C/I:C/A:C");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:freebsd:freebsd:puppet26");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:freebsd:freebsd");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2013/03/13");
      script_set_attribute(attribute:"patch_publication_date", value:"2013/03/13");
      script_set_attribute(attribute:"plugin_publication_date", value:"2013/03/14");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2013-2018 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"FreeBSD Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/FreeBSD/release", "Host/FreeBSD/pkg_info");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("freebsd_package.inc");
    
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    if (!get_kb_item("Host/FreeBSD/release")) audit(AUDIT_OS_NOT, "FreeBSD");
    if (!get_kb_item("Host/FreeBSD/pkg_info")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    
    if (pkg_test(save_report:TRUE, pkg:"puppet26>=2.6<2.6.18")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_hole(port:0, extra:pkg_report_get());
      else security_hole(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familySuSE Local Security Checks
    NASL idSUSE_11_PUPPET-130320.NASL
    descriptionpuppet has been updated to fix 2.6.18 multiple vulnerabilities and bugs. - (#19391) Find the catalog for the specified node name - Don
    last seen2020-06-05
    modified2013-04-04
    plugin id65796
    published2013-04-04
    reporterThis script is Copyright (C) 2013-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/65796
    titleSuSE 11.2 Security Update : puppet (SAT Patch Number 7526)
  • NASL familySuSE Local Security Checks
    NASL idOPENSUSE-2013-295.NASL
    descriptionVarious security issues were fixed in puppet. CVE-2013-1655 CVE-2013-2275 CVE-2013-1640 CVE-2013-1652 CVE-2013-1653 CVE-2013-1654 CVE-2013-1655 CVE-2013-2274 CVE-2013-2275
    last seen2020-06-05
    modified2014-06-13
    plugin id74952
    published2014-06-13
    reporterThis script is Copyright (C) 2014-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/74952
    titleopenSUSE Security Update : puppet (openSUSE-2013-295)
  • NASL familyGentoo Local Security Checks
    NASL idGENTOO_GLSA-201308-04.NASL
    descriptionThe remote host is affected by the vulnerability described in GLSA-201308-04 (Puppet: Multiple vulnerabilities) Multiple vulnerabilities have been discovered in Puppet. Please review the CVE identifiers referenced below for details. Impact : A remote attacker could possibly execute arbitrary code with the privileges of the process, cause a Denial of Service condition, obtain sensitive information, or bypass security restrictions. Workaround : There is no known workaround at this time.
    last seen2020-06-01
    modified2020-06-02
    plugin id69464
    published2013-08-25
    reporterThis script is Copyright (C) 2013-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/69464
    titleGLSA-201308-04 : Puppet: Multiple vulnerabilities

Redhat

advisories
rhsa
idRHSA-2013:0710
rpms
  • puppet-0:2.6.18-1.el6ost
  • puppet-server-0:2.6.18-1.el6ost