Vulnerabilities > CVE-2014-0204 - Improper Privilege Management vulnerability in Openstack Keystone 2014.1

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
openstack
CWE-269
nessus

Summary

OpenStack Identity (Keystone) before 2014.1.1 does not properly handle when a role is assigned to a group that has the same ID as a user, which allows remote authenticated users to gain privileges that are assigned to a group with the same ID.

Vulnerable Configurations

Part Description Count
Application
Openstack
1

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 familyHuawei Local Security Checks
NASL idEULEROS_SA-2019-2509.NASL
descriptionAccording to the versions of the openssl098e package installed, the EulerOS installation on the remote host is affected by the following vulnerabilities : - The OpenSSL toolkit provides support for secure communications between machines. OpenSSL includes a certificate management tool and shared libraries which provide various cryptographic algorithms and protocols.Security Fix(es):The TLS protocol 1.2 and earlier, when a DHE_EXPORT ciphersuite is enabled on a server but not on a client, does not properly convey a DHE_EXPORT choice, which allows man-in-the-middle attackers to conduct cipher-downgrade attacks by rewriting a ClientHello with DHE replaced by DHE_EXPORT and then rewriting a ServerHello with DHE_EXPORT replaced by DHE, aka the
last seen2020-05-08
modified2019-12-04
plugin id131662
published2019-12-04
reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
sourcehttps://www.tenable.com/plugins/nessus/131662
titleEulerOS 2.0 SP2 : openssl098e (EulerOS-SA-2019-2509)
code
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(131662);
  script_version("1.4");
  script_set_attribute(attribute:"plugin_modification_date", value:"2020/05/07");

  script_cve_id(
    "CVE-2014-0204",
    "CVE-2014-0221",
    "CVE-2014-3505",
    "CVE-2014-3506",
    "CVE-2014-3508",
    "CVE-2014-3510",
    "CVE-2014-3566",
    "CVE-2014-3570",
    "CVE-2014-8176",
    "CVE-2015-0287",
    "CVE-2015-0288",
    "CVE-2015-0289",
    "CVE-2015-1790",
    "CVE-2015-4000",
    "CVE-2016-2178",
    "CVE-2016-2181",
    "CVE-2016-2183",
    "CVE-2017-3735"
  );
  script_bugtraq_id(
    67580,
    67901,
    69075,
    69076,
    69081,
    69082,
    70574,
    71939,
    73196,
    73227,
    73231,
    73237,
    74733,
    75157,
    75159
  );

  script_name(english:"EulerOS 2.0 SP2 : openssl098e (EulerOS-SA-2019-2509)");
  script_summary(english:"Checks the rpm output for the updated packages.");

  script_set_attribute(attribute:"synopsis", value:
"The remote EulerOS host is missing multiple security updates.");
  script_set_attribute(attribute:"description", value:
"According to the versions of the openssl098e package installed, the
EulerOS installation on the remote host is affected by the following
vulnerabilities :

  - The OpenSSL toolkit provides support for secure
    communications between machines. OpenSSL includes a
    certificate management tool and shared libraries which
    provide various cryptographic algorithms and
    protocols.Security Fix(es):The TLS protocol 1.2 and
    earlier, when a DHE_EXPORT ciphersuite is enabled on a
    server but not on a client, does not properly convey a
    DHE_EXPORT choice, which allows man-in-the-middle
    attackers to conduct cipher-downgrade attacks by
    rewriting a ClientHello with DHE replaced by DHE_EXPORT
    and then rewriting a ServerHello with DHE_EXPORT
    replaced by DHE, aka the 'Logjam'
    issue.(CVE-2015-4000)The dsa_sign_setup function in
    crypto/dsa/dsa_ossl.c in OpenSSL through 1.0.2h does
    not properly ensure the use of constant-time
    operations, which makes it easier for local users to
    discover a DSA private key via a timing side-channel
    attack.(CVE-2016-2178)While parsing an IPAddressFamily
    extension in an X.509 certificate, it is possible to do
    a one-byte overread. This would result in an incorrect
    text display of the certificate. This bug has been
    present since 2006 and is present in all versions of
    OpenSSL before 1.0.2m and 1.1.0g.(CVE-2017-3735)The
    Anti-Replay feature in the DTLS implementation in
    OpenSSL before 1.1.0 mishandles early use of a new
    epoch number in conjunction with a large sequence
    number, which allows remote attackers to cause a denial
    of service (false-positive packet drops) via spoofed
    DTLS records, related to rec_layer_d1.c and
    ssl3_record.c.(CVE-2016-2181)The SSL protocol 3.0, as
    used in OpenSSL through 1.0.1i and other products, uses
    nondeterministic CBC padding, which makes it easier for
    man-in-the-middle attackers to obtain cleartext data
    via a padding-oracle attack, aka the 'POODLE'
    issue.(CVE-2014-3566)OpenStack Identity (Keystone)
    before 2014.1.1 does not properly handle when a role is
    assigned to a group that has the same ID as a user,
    which allows remote authenticated users to gain
    privileges that are assigned to a group with the same
    ID.(CVE-2014-0204)Double free vulnerability in
    d1_both.c in the DTLS implementation in OpenSSL 0.9.8
    before 0.9.8zb, 1.0.0 before 1.0.0n, and 1.0.1 before
    1.0.1i allows remote attackers to cause a denial of
    service (application crash) via crafted DTLS packets
    that trigger an error
    condition.(CVE-2014-3505)d1_both.c in the DTLS
    implementation in OpenSSL 0.9.8 before 0.9.8zb, 1.0.0
    before 1.0.0n, and 1.0.1 before 1.0.1i allows remote
    attackers to cause a denial of service (memory
    consumption) via crafted DTLS handshake messages that
    trigger memory allocations corresponding to large
    length values.(CVE-2014-3506)The BN_sqr implementation
    in OpenSSL before 0.9.8zd, 1.0.0 before 1.0.0p, and
    1.0.1 before 1.0.1k does not properly calculate the
    square of a BIGNUM value, which might make it easier
    for remote attackers to defeat cryptographic protection
    mechanisms via unspecified vectors, related to
    crypto/bn/asm/mips.pl, crypto/bn/asm/x86_64-gcc.c, and
    crypto/bn/bn_asm.c.(CVE-2014-3570)The OBJ_obj2txt
    function in crypto/objects/obj_dat.c in OpenSSL 0.9.8
    before 0.9.8zb, 1.0.0 before 1.0.0n, and 1.0.1 before
    1.0.1i, when pretty printing is used, does not ensure
    the presence of '\0' characters, which allows
    context-dependent attackers to obtain sensitive
    information from process stack memory by reading output
    from X509_name_oneline, X509_name_print_ex, and
    unspecified other functions.(CVE-2014-3508)The
    dtls1_clear_queues function in ssl/d1_lib.c in OpenSSL
    before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before
    1.0.1h frees data structures without considering that
    application data can arrive between a ChangeCipherSpec
    message and a Finished message, which allows remote
    DTLS peers to cause a denial of service (memory
    corruption and application crash) or possibly have
    unspecified other impact via unexpected application
    data.(CVE-2014-8176)The DES and Triple DES ciphers, as
    used in the TLS, SSH, and IPSec protocols and other
    protocols and products, have a birthday bound of
    approximately four billion blocks, which makes it
    easier for remote attackers to obtain cleartext data
    via a birthday attack against a long-duration encrypted
    session, as demonstrated by an HTTPS session using
    Triple DES in CBC mode, aka a 'Sweet32'
    attack.(CVE-2016-2183)The ASN1_item_ex_d2i function in
    crypto/asn1/tasn_dec.c in OpenSSL before 0.9.8zf, 1.0.0
    before 1.0.0r, 1.0.1 before 1.0.1m, and 1.0.2 before
    1.0.2a does not reinitialize CHOICE and ADB data
    structures, which might allow attackers to cause a
    denial of service (invalid write operation and memory
    corruption) by leveraging an application that relies on
    ASN.1 structure reuse.(CVE-2015-0287)The
    dtls1_get_message_fragment function in d1_both.c in
    OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1
    before 1.0.1h allows remote attackers to cause a denial
    of service (recursion and client crash) via a DTLS
    hello message in an invalid DTLS
    handshake.(CVE-2014-0221)The
    ssl3_send_client_key_exchange function in s3_clnt.c in
    OpenSSL 0.9.8 before 0.9.8zb, 1.0.0 before 1.0.0n, and
    1.0.1 before 1.0.1i allows remote DTLS servers to cause
    a denial of service (NULL pointer dereference and
    client application crash) via a crafted handshake
    message in conjunction with a (1) anonymous DH or (2)
    anonymous ECDH ciphersuite.(CVE-2014-3510)The
    X509_to_X509_REQ function in crypto/x509/x509_req.c in
    OpenSSL before 0.9.8zf, 1.0.0 before 1.0.0r, 1.0.1
    before 1.0.1m, and 1.0.2 before 1.0.2a might allow
    attackers to cause a denial of service (NULL pointer
    dereference and application crash) via an invalid
    certificate key.(CVE-2015-0288)The PKCS#7
    implementation in OpenSSL before 0.9.8zf, 1.0.0 before
    1.0.0r, 1.0.1 before 1.0.1m, and 1.0.2 before 1.0.2a
    does not properly handle a lack of outer ContentInfo,
    which allows attackers to cause a denial of service
    (NULL pointer dereference and application crash) by
    leveraging an application that processes arbitrary
    PKCS#7 data and providing malformed data with ASN.1
    encoding, related to crypto/pkcs7/pk7_doit.c and
    crypto/pkcs7/pk7_lib.c.(CVE-2015-0289)The
    PKCS7_dataDecodefunction in crypto/pkcs7/pk7_doit.c in
    OpenSSL before 0.9.8zg, 1.0.0 before 1.0.0s, 1.0.1
    before 1.0.1n, and 1.0.2 before 1.0.2b allows remote
    attackers to cause a denial of service (NULL pointer
    dereference and application crash) via a PKCS#7 blob
    that uses ASN.1 encoding and lacks inner
    EncryptedContent data.(CVE-2015-1790)

Note that Tenable Network Security has extracted the preceding
description block directly from the EulerOS security advisory. Tenable
has attempted to automatically clean and format it as much as possible
without introducing additional issues.");
  # https://developer.huaweicloud.com/ict/en/site-euleros/euleros/security-advisories/EulerOS-SA-2019-2509
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?0570d847");
  script_set_attribute(attribute:"solution", value:
"Update the affected openssl098e packages.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
  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:"patch_publication_date", value:"2019/12/04");
  script_set_attribute(attribute:"plugin_publication_date", value:"2019/12/04");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:openssl098e");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:2.0");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Huawei Local Security Checks");

  script_copyright(english:"This script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("ssh_get_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/EulerOS/release", "Host/EulerOS/rpm-list", "Host/EulerOS/sp");
  script_exclude_keys("Host/EulerOS/uvp_version");

  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/EulerOS/release");
if (isnull(release) || release !~ "^EulerOS") audit(AUDIT_OS_NOT, "EulerOS");
if (release !~ "^EulerOS release 2\.0(\D|$)") audit(AUDIT_OS_NOT, "EulerOS 2.0");

sp = get_kb_item("Host/EulerOS/sp");
if (isnull(sp) || sp !~ "^(2)$") audit(AUDIT_OS_NOT, "EulerOS 2.0 SP2");

uvp = get_kb_item("Host/EulerOS/uvp_version");
if (!empty_or_null(uvp)) audit(AUDIT_OS_NOT, "EulerOS 2.0 SP2", "EulerOS UVP " + uvp);

if (!get_kb_item("Host/EulerOS/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$" && "aarch64" >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "EulerOS", cpu);
if ("x86_64" >!< cpu && cpu !~ "^i[3-6]86$") audit(AUDIT_ARCH_NOT, "i686 / x86_64", cpu);

flag = 0;

pkgs = ["openssl098e-0.9.8e-29.3.h17"];

foreach (pkg in pkgs)
  if (rpm_check(release:"EulerOS-2.0", sp:"2", reference:pkg)) flag++;

if (flag)
{
  security_report_v4(
    port       : 0,
    severity   : SECURITY_HOLE,
    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, "openssl098e");
}