Vulnerabilities > CVE-2018-1000400 - Improper Privilege Management vulnerability in Kubernetes Cri-O

047910
CVSS 8.8 - HIGH
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
LOW
Confidentiality impact
HIGH
Integrity impact
HIGH
Availability impact
HIGH
network
low complexity
kubernetes
CWE-269
nessus

Summary

Kubernetes CRI-O version prior to 1.9 contains a Privilege Context Switching Error (CWE-270) vulnerability in the handling of ambient capabilities that can result in containers running with elevated privileges, allowing users abilities they should not have. This attack appears to be exploitable via container execution. This vulnerability appears to have been fixed in 1.9.

Common Weakness Enumeration (CWE)

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Restful Privilege Elevation
    Rest uses standard HTTP (Get, Put, Delete) style permissions methods, but these are not necessarily correlated generally with back end programs. Strict interpretation of HTTP get methods means that these HTTP Get services should not be used to delete information on the server, but there is no access control mechanism to back up this logic. This means that unless the services are properly ACL'd and the application's service implementation are following these guidelines then an HTTP request can easily execute a delete or update on the server side. The attacker identifies a HTTP Get URL such as http://victimsite/updateOrder, which calls out to a program to update orders on a database or other resource. The URL is not idempotent so the request can be submitted multiple times by the attacker, additionally, the attacker may be able to exploit the URL published as a Get method that actually performs updates (instead of merely retrieving data). This may result in malicious or inadvertent altering of data on the server.

Nessus

  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2018-0C9CE03FCE.NASL
    descriptionNew version with a few bug fixes ---- Latest build with fixes. Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-05
    modified2019-01-03
    plugin id120230
    published2019-01-03
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/120230
    titleFedora 28 : 2:cri-o (2018-0c9ce03fce)
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from Fedora Security Advisory FEDORA-2018-0c9ce03fce.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(120230);
      script_version("1.4");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/04");
    
      script_cve_id("CVE-2018-1000400");
      script_xref(name:"FEDORA", value:"2018-0c9ce03fce");
    
      script_name(english:"Fedora 28 : 2:cri-o (2018-0c9ce03fce)");
      script_summary(english:"Checks rpm output for the updated package.");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Fedora host is missing a security update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "New version with a few bug fixes
    
    ----
    
    Latest build with fixes.
    
    Note that Tenable Network Security has extracted the preceding
    description block directly from the Fedora update system website.
    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://bodhi.fedoraproject.org/updates/FEDORA-2018-0c9ce03fce"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Update the affected 2:cri-o package."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:S/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H");
      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:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fedoraproject:fedora:2:cri-o");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:fedoraproject:fedora:28");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2018/05/18");
      script_set_attribute(attribute:"patch_publication_date", value:"2018/06/26");
      script_set_attribute(attribute:"plugin_publication_date", value:"2019/01/03");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"Fedora Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/RedHat/release", "Host/RedHat/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/RedHat/release");
    if (isnull(release) || "Fedora" >!< release) audit(AUDIT_OS_NOT, "Fedora");
    os_ver = pregmatch(pattern: "Fedora.*release ([0-9]+)", string:release);
    if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Fedora");
    os_ver = os_ver[1];
    if (! preg(pattern:"^28([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, "Fedora 28", "Fedora " + 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$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "Fedora", cpu);
    
    
    flag = 0;
    if (rpm_check(release:"FC28", reference:"cri-o-1.10.3-1.gite558bd5.fc28", epoch:"2")) flag++;
    
    
    if (flag)
    {
      security_report_v4(
        port       : 0,
        severity   : SECURITY_WARNING,
        extra      : rpm_report_get()
      );
      exit(0);
    }
    else
    {
      tested = pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "2:cri-o");
    }
    
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2018-320CB9D7FB.NASL
    descriptionNew version with a few bug fixes ---- Latest build with fixes. Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-05
    modified2018-06-27
    plugin id110698
    published2018-06-27
    reporterThis script is Copyright (C) 2018-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/110698
    titleFedora 27 : 2:cri-o (2018-320cb9d7fb)

Redhat

rpms
  • atomic-openshift-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-clients-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-clients-redistributable-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-cluster-capacity-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-docker-excluder-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-dockerregistry-0:3.9.30-1.git.349.8b7912c.el7
  • atomic-openshift-excluder-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-federation-services-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-master-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-node-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-pod-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-sdn-ovs-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-service-catalog-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-template-service-broker-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-tests-0:3.9.30-1.git.0.dec1ba7.el7
  • atomic-openshift-utils-0:3.9.30-1.git.7.46f8678.el7
  • atomic-openshift-web-console-0:3.9.30-1.git.245.4a3aade.el7
  • cri-o-0:1.9.12-1.gitfa11beb.el7
  • cri-o-debuginfo-0:1.9.12-1.gitfa11beb.el7
  • cri-tools-0:1.0.0-5.rhaos3.9.git8e6013a.el7
  • cri-tools-debuginfo-0:1.0.0-5.rhaos3.9.git8e6013a.el7
  • openshift-ansible-0:3.9.30-1.git.7.46f8678.el7
  • openshift-ansible-docs-0:3.9.30-1.git.7.46f8678.el7
  • openshift-ansible-playbooks-0:3.9.30-1.git.7.46f8678.el7
  • openshift-ansible-roles-0:3.9.30-1.git.7.46f8678.el7
  • prometheus-node-exporter-0:3.9.30-1.git.890.7ea5173.el7
  • rubygem-fluent-plugin-elasticsearch-0:1.16.1-1.el7
  • rubygem-fluent-plugin-elasticsearch-doc-0:1.16.1-1.el7
  • rubygem-fluent-plugin-kubernetes_metadata_filter-0:1.0.3-1.el7
  • rubygem-fluent-plugin-kubernetes_metadata_filter-doc-0:1.0.3-1.el7