Vulnerabilities > CVE-2016-0701 - Information Exposure vulnerability in Openssl

047910
CVSS 3.7 - LOW
Attack vector
NETWORK
Attack complexity
HIGH
Privileges required
NONE
Confidentiality impact
LOW
Integrity impact
NONE
Availability impact
NONE
network
high complexity
openssl
CWE-200
nessus

Summary

The DH_check_pub_key function in crypto/dh/dh_check.c in OpenSSL 1.0.2 before 1.0.2f does not ensure that prime numbers are appropriate for Diffie-Hellman (DH) key exchange, which makes it easier for remote attackers to discover a private DH exponent by making multiple handshakes with a peer that chose an inappropriate number, as demonstrated by a number in an X9.42 file.

Common Weakness Enumeration (CWE)

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Subverting Environment Variable Values
    The attacker directly or indirectly modifies environment variables used by or controlling the target software. The attacker's goal is to cause the target software to deviate from its expected operation in a manner that benefits the attacker.
  • Footprinting
    An attacker engages in probing and exploration activity to identify constituents and properties of the target. Footprinting is a general term to describe a variety of information gathering techniques, often used by attackers in preparation for some attack. It consists of using tools to learn as much as possible about the composition, configuration, and security mechanisms of the targeted application, system or network. Information that might be collected during a footprinting effort could include open ports, applications and their versions, network topology, and similar information. While footprinting is not intended to be damaging (although certain activities, such as network scans, can sometimes cause disruptions to vulnerable applications inadvertently) it may often pave the way for more damaging attacks.
  • Exploiting Trust in Client (aka Make the Client Invisible)
    An attack of this type exploits a programs' vulnerabilities in client/server communication channel authentication and data integrity. It leverages the implicit trust a server places in the client, or more importantly, that which the server believes is the client. An attacker executes this type of attack by placing themselves in the communication channel between client and server such that communication directly to the server is possible where the server believes it is communicating only with a valid client. There are numerous variations of this type of attack.
  • Browser Fingerprinting
    An attacker carefully crafts small snippets of Java Script to efficiently detect the type of browser the potential victim is using. Many web-based attacks need prior knowledge of the web browser including the version of browser to ensure successful exploitation of a vulnerability. Having this knowledge allows an attacker to target the victim with attacks that specifically exploit known or zero day weaknesses in the type and version of the browser used by the victim. Automating this process via Java Script as a part of the same delivery system used to exploit the browser is considered more efficient as the attacker can supply a browser fingerprinting method and integrate it with exploit code, all contained in Java Script and in response to the same web page request by the browser.
  • Session Credential Falsification through Prediction
    This attack targets predictable session ID in order to gain privileges. The attacker can predict the session ID used during a transaction to perform spoofing and session hijacking.

Nessus

  • NASL familyHuawei Local Security Checks
    NASL idEULEROS_SA-2018-1115.NASL
    descriptionAccording to the versions of the openssl packages installed, the EulerOS installation on the remote host is affected by the following vulnerabilities : - There is a carry propagating bug in the x86_64 Montgomery squaring procedure in OpenSSL before 1.0.2m and 1.1.0 before 1.1.0g. No EC algorithms are affected. Analysis suggests that attacks against RSA and DSA as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH are considered just feasible (although very difficult) because most of the work necessary to deduce information about a private key may be performed offline. The amount of resources required for such an attack would be very significant and likely only accessible to a limited number of attackers. An attacker would additionally need online access to an unpatched system using the target private key in a scenario with persistent DH parameters and a private key that is shared between multiple clients. This only affects processors that support the BMI1, BMI2 and ADX extensions like Intel Broadwell (5th generation) and later or AMD Ryzen. (CVE-2017-3736) - OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an
    last seen2020-05-06
    modified2018-05-02
    plugin id109513
    published2018-05-02
    reporterThis script is Copyright (C) 2018-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/109513
    titleEulerOS 2.0 SP2 : openssl (EulerOS-SA-2018-1115)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(109513);
      script_version("1.10");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/05/04");
    
      script_cve_id(
        "CVE-2017-3736",
        "CVE-2017-3737",
        "CVE-2017-3738"
      );
    
      script_name(english:"EulerOS 2.0 SP2 : openssl (EulerOS-SA-2018-1115)");
      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 openssl packages installed, the
    EulerOS installation on the remote host is affected by the following
    vulnerabilities :
    
      - There is a carry propagating bug in the x86_64
        Montgomery squaring procedure in OpenSSL before 1.0.2m
        and 1.1.0 before 1.1.0g. No EC algorithms are affected.
        Analysis suggests that attacks against RSA and DSA as a
        result of this defect would be very difficult to
        perform and are not believed likely. Attacks against DH
        are considered just feasible (although very difficult)
        because most of the work necessary to deduce
        information about a private key may be performed
        offline. The amount of resources required for such an
        attack would be very significant and likely only
        accessible to a limited number of attackers. An
        attacker would additionally need online access to an
        unpatched system using the target private key in a
        scenario with persistent DH parameters and a private
        key that is shared between multiple clients. This only
        affects processors that support the BMI1, BMI2 and ADX
        extensions like Intel Broadwell (5th generation) and
        later or AMD Ryzen. (CVE-2017-3736)
    
      - OpenSSL 1.0.2 (starting from version 1.0.2b) introduced
        an 'error state' mechanism. The intent was that if a
        fatal error occurred during a handshake then OpenSSL
        would move into the error state and would immediately
        fail if you attempted to continue the handshake. This
        works as designed for the explicit handshake functions
        (SSL_do_handshake(), SSL_accept() and SSL_connect()),
        however due to a bug it does not work correctly if
        SSL_read() or SSL_write() is called directly. In that
        scenario, if the handshake fails then a fatal error
        will be returned in the initial function call. If
        SSL_read()/SSL_write() is subsequently called by the
        application for the same SSL object then it will
        succeed and the data is passed without being
        decrypted/encrypted directly from the SSL/TLS record
        layer. In order to exploit this issue an application
        bug would have to be present that resulted in a call to
        SSL_read()/SSL_write() being issued after having
        already received a fatal error. (CVE-2017-3737)
    
      - There is an overflow bug in the AVX2 Montgomery
        multiplication procedure used in exponentiation with
        1024-bit moduli. No EC algorithms are affected.
        Analysis suggests that attacks against RSA and DSA as a
        result of this defect would be very difficult to
        perform and are not believed likely. Attacks against
        DH1024 are considered just feasible, because most of
        the work necessary to deduce information about a
        private key may be performed offline. The amount of
        resources required for such an attack would be
        significant. However, for an attack on TLS to be
        meaningful, the server would have to share the DH1024
        private key among multiple clients, which is no longer
        an option since CVE-2016-0701. This only affects
        processors that support the AVX2 but not ADX extensions
        like Intel Haswell (4th generation). (CVE-2017-3738)
    
    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-2018-1115
      script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?6b793ef9");
      script_set_attribute(attribute:"solution", value:
    "Update the affected openssl packages.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:N/A:N");
      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:N/UI:N/S:U/C:H/I:N/A:N");
      script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2018/04/22");
      script_set_attribute(attribute:"plugin_publication_date", value:"2018/05/02");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:openssl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:openssl-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:openssl-libs");
      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) 2018-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 = ["openssl-1.0.2k-12.h1",
            "openssl-devel-1.0.2k-12.h1",
            "openssl-libs-1.0.2k-12.h1"];
    
    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_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, "openssl");
    }
    
  • NASL familySuSE Local Security Checks
    NASL idOPENSUSE-2017-1381.NASL
    descriptionThis update for openssl fixes the following issues : - OpenSSL Security Advisory [07 Dec 2017] - CVE-2017-3737: OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an \
    last seen2020-06-05
    modified2017-12-18
    plugin id105341
    published2017-12-18
    reporterThis script is Copyright (C) 2017-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/105341
    titleopenSUSE Security Update : openssl (openSUSE-2017-1381)
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from openSUSE Security Update openSUSE-2017-1381.
    #
    # The text description of this plugin is (C) SUSE LLC.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(105341);
      script_version("3.6");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/04");
    
      script_cve_id("CVE-2015-3193", "CVE-2016-0701", "CVE-2017-3732", "CVE-2017-3736", "CVE-2017-3737", "CVE-2017-3738");
    
      script_name(english:"openSUSE Security Update : openssl (openSUSE-2017-1381)");
      script_summary(english:"Check for the openSUSE-2017-1381 patch");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote openSUSE host is missing a security update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "This update for openssl fixes the following issues :
    
      - OpenSSL Security Advisory [07 Dec 2017]
    
      - CVE-2017-3737: OpenSSL 1.0.2 (starting from version
        1.0.2b) introduced an \'error state\' mechanism. The
        intent was that if a fatal error occurred during a
        handshake then OpenSSL would move into the error state
        and would immediately fail if you attempted to continue
        the handshake. This works as designed for the explicit
        handshake functions (SSL_do_handshake(), SSL_accept()
        and SSL_connect()), however due to a bug it does not
        work correctly if SSL_read() or SSL_write() is called
        directly. In that scenario, if the handshake fails then
        a fatal error will be returned in the initial function
        call. If SSL_read()/SSL_write() is subsequently called
        by the application for the same SSL object then it will
        succeed and the data is passed without being
        decrypted/encrypted directly from the SSL/TLS record
        layer. In order to exploit this issue an application bug
        would have to be present that resulted in a call to
        SSL_read()/SSL_write() being issued after having already
        received a fatal error. OpenSSL version 1.0.2b-1.0.2m
        are affected. Fixed in OpenSSL 1.0.2n. OpenSSL 1.1.0 is
        not affected. (bsc#1071905)
    
      - CVE-2017-3738: There is an overflow bug in the AVX2
        Montgomery multiplication procedure used in
        exponentiation with 1024-bit moduli. No EC algorithms
        are affected. Analysis suggests that attacks against RSA
        and DSA as a result of this defect would be very
        difficult to perform and are not believed likely.
        Attacks against DH1024 are considered just feasible,
        because most of the work necessary to deduce information
        about a private key may be performed offline. The amount
        of resources required for such an attack would be
        significant. However, for an attack on TLS to be
        meaningful, the server would have to share the DH1024
        private key among multiple clients, which is no longer
        an option since CVE-2016-0701. This only affects
        processors that support the AVX2 but not ADX extensions
        like Intel Haswell (4th generation). Note: The impact
        from this issue is similar to CVE-2017-3736,
        CVE-2017-3732 and CVE-2015-3193. (bsc#1071906)
    
    This update was imported from the SUSE:SLE-12-SP2:Update update
    project."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1071905"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1071906"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Update the affected openssl packages."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:N");
      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:"p-cpe:/a:novell:opensuse:libopenssl-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libopenssl-devel-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libopenssl1_0_0");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libopenssl1_0_0-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libopenssl1_0_0-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libopenssl1_0_0-debuginfo-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libopenssl1_0_0-hmac");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libopenssl1_0_0-hmac-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:openssl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:openssl-cavs");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:openssl-cavs-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:openssl-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:openssl-debugsource");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:42.2");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:42.3");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2017/12/16");
      script_set_attribute(attribute:"plugin_publication_date", value:"2017/12/18");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2017-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"SuSE Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/SuSE/release", "Host/SuSE/rpm-list", "Host/cpu");
    
      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)") audit(AUDIT_OS_NOT, "openSUSE");
    if (release !~ "^(SUSE42\.2|SUSE42\.3)$") audit(AUDIT_OS_RELEASE_NOT, "openSUSE", "42.2 / 42.3", release);
    if (!get_kb_item("Host/SuSE/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    ourarch = get_kb_item("Host/cpu");
    if (!ourarch) audit(AUDIT_UNKNOWN_ARCH);
    if (ourarch !~ "^(i586|i686|x86_64)$") audit(AUDIT_ARCH_NOT, "i586 / i686 / x86_64", ourarch);
    
    flag = 0;
    
    if ( rpm_check(release:"SUSE42.2", reference:"libopenssl-devel-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", reference:"libopenssl1_0_0-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", reference:"libopenssl1_0_0-debuginfo-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", reference:"libopenssl1_0_0-hmac-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", reference:"openssl-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", reference:"openssl-cavs-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", reference:"openssl-cavs-debuginfo-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", reference:"openssl-debuginfo-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", reference:"openssl-debugsource-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", cpu:"x86_64", reference:"libopenssl-devel-32bit-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", cpu:"x86_64", reference:"libopenssl1_0_0-32bit-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", cpu:"x86_64", reference:"libopenssl1_0_0-debuginfo-32bit-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.2", cpu:"x86_64", reference:"libopenssl1_0_0-hmac-32bit-1.0.2j-6.9.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"libopenssl-devel-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"libopenssl1_0_0-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"libopenssl1_0_0-debuginfo-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"libopenssl1_0_0-hmac-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"openssl-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"openssl-cavs-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"openssl-cavs-debuginfo-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"openssl-debuginfo-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"openssl-debugsource-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", cpu:"x86_64", reference:"libopenssl-devel-32bit-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", cpu:"x86_64", reference:"libopenssl1_0_0-32bit-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", cpu:"x86_64", reference:"libopenssl1_0_0-debuginfo-32bit-1.0.2j-16.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", cpu:"x86_64", reference:"libopenssl1_0_0-hmac-32bit-1.0.2j-16.1") ) 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, "libopenssl-devel / libopenssl-devel-32bit / libopenssl1_0_0 / etc");
    }
    
  • NASL familyWeb Servers
    NASL idOPENSSL_1_0_2F.NASL
    descriptionAccording to its banner, the remote host is running a version of OpenSSL 1.0.2 prior to 1.0.2f. It is, therefore, affected by the following vulnerabilities : - A cipher algorithm downgrade vulnerability exists due to a flaw that is triggered when handling cipher negotiation. A remote attacker can exploit this to negotiate SSLv2 ciphers and complete SSLv2 handshakes even if all SSLv2 ciphers have been disabled on the server. Note that this vulnerability only exists if the SSL_OP_NO_SSLv2 option has not been disabled. (CVE-2015-3197) - A man-in-the-middle vulnerability, known as Logjam, exists due to a flaw in the SSL/TLS protocol. A remote attacker can exploit this flaw to downgrade connections using ephemeral Diffie-Hellman key exchange to 512-bit export-grade cryptography. (CVE-2015-4000) - An information disclosure vulnerability exists due to a flaw in the DH_check_pub_key() function that is triggered when generating DH parameters based on unsafe primes. A remote attacker can exploit this, via multiple handshakes, to disclose the private DH exponent. (CVE-2016-0701)
    last seen2020-06-01
    modified2020-06-02
    plugin id88530
    published2016-02-02
    reporterThis script is Copyright (C) 2016-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/88530
    titleOpenSSL 1.0.2 < 1.0.2f Multiple Vulnerabilities (Logjam)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(88530);
      script_version("1.10");
      script_cvs_date("Date: 2019/11/20");
    
      script_cve_id("CVE-2015-3197", "CVE-2015-4000", "CVE-2016-0701");
      script_bugtraq_id(74733);
      script_xref(name:"CERT", value:"257823");
    
      script_name(english:"OpenSSL 1.0.2 < 1.0.2f Multiple Vulnerabilities (Logjam)");
      script_summary(english:"Performs a banner check.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote service is affected by multiple vulnerabilities.");
      script_set_attribute(attribute:"description", value:
    "According to its banner, the remote host is running a version of
    OpenSSL 1.0.2 prior to 1.0.2f. It is, therefore, affected by the
    following vulnerabilities :
    
      - A cipher algorithm downgrade vulnerability exists due to
        a flaw that is triggered when handling cipher
        negotiation. A remote attacker can exploit this to
        negotiate SSLv2 ciphers and complete SSLv2 handshakes
        even if all SSLv2 ciphers have been disabled on the
        server. Note that this vulnerability only exists if the
        SSL_OP_NO_SSLv2 option has not been disabled.
        (CVE-2015-3197)
    
      - A man-in-the-middle vulnerability, known as Logjam,
        exists due to a flaw in the SSL/TLS protocol. A remote
        attacker can exploit this flaw to downgrade connections
        using ephemeral Diffie-Hellman key exchange to 512-bit
        export-grade cryptography. (CVE-2015-4000)
    
      - An information disclosure vulnerability exists due to a
        flaw in the DH_check_pub_key() function that is
        triggered when generating DH parameters based on unsafe
        primes. A remote attacker can exploit this, via multiple
        handshakes, to disclose the private DH exponent.
        (CVE-2016-0701)");
      script_set_attribute(attribute:"see_also", value:"https://www.openssl.org/news/secadv/20160128.txt");
      script_set_attribute(attribute:"see_also", value:"https://weakdh.org/");
      script_set_attribute(attribute:"solution", value:
    "Upgrade to OpenSSL version 1.0.2f or later.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:N/I:P/A:N");
      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:N/UI:N/S:U/C:N/I:L/A:N");
      script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
      script_set_attribute(attribute:"cvss_score_source", value:"CVE-2015-4000");
    
      script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"false");
      script_set_attribute(attribute:"in_the_news", value:"true");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2016/01/28");
      script_set_attribute(attribute:"patch_publication_date", value:"2016/01/28");
      script_set_attribute(attribute:"plugin_publication_date", value:"2016/02/02");
    
      script_set_attribute(attribute:"plugin_type", value:"remote");
      script_set_attribute(attribute:"cpe", value:"cpe:/a:openssl:openssl");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_family(english:"Web Servers");
    
      script_copyright(english:"This script is Copyright (C) 2016-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("openssl_version.nasl");
      script_require_keys("openssl/port");
    
      exit(0);
    }
    
    include("openssl_version.inc");
    
    openssl_check_version(fixed:'1.0.2f', min:"1.0.2", severity:SECURITY_WARNING);
    
  • NASL familyFreeBSD Local Security Checks
    NASL idFREEBSD_PKG_9F7A0F39DDC011E7B5AFA4BADB2F4699.NASL
    descriptionInvoking SSL_read()/SSL_write() while in an error state causes data to be passed without being decrypted/encrypted directly from the SSL/TLS record layer. In order to exploit this issue an application bug would have to be present that resulted in a call to SSL_read()/SSL_write() being issued after having already received a fatal error. [CVE-2017-3737] There is an overflow bug in the x86_64 Montgomery multiplication procedure used in exponentiation with 1024-bit moduli. This only affects processors that support the AVX2 but not ADX extensions like Intel Haswell (4th generation). [CVE-2017-3738] This bug only affects FreeBSD 11.x. Impact : Applications with incorrect error handling may inappropriately pass unencrypted data. [CVE-2017-3737] Mishandling of carry propagation will produce incorrect output, and make it easier for a remote attacker to obtain sensitive private-key information. No EC algorithms are affected and analysis suggests that attacks against RSA and DSA as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH1024 are considered just feasible (although very difficult) because most of the work necessary to deduce information about a private key may be performed offline. The amount of resources required for such an attack would be very significant and likely only accessible to a limited number of attackers. However, for an attack on TLS to be meaningful, the server would have to share the DH1024 private key among multiple clients, which is no longer an option since CVE-2016-0701. [CVE-2017-3738]
    last seen2020-06-01
    modified2020-06-02
    plugin id105141
    published2017-12-11
    reporterThis script is Copyright (C) 2017-2018 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/105141
    titleFreeBSD : FreeBSD -- OpenSSL multiple vulnerabilities (9f7a0f39-ddc0-11e7-b5af-a4badb2f4699)
    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(105141);
      script_version("3.8");
      script_cvs_date("Date: 2018/11/10 11:49:46");
    
      script_cve_id("CVE-2016-0701", "CVE-2017-3737", "CVE-2017-3738");
      script_xref(name:"FreeBSD", value:"SA-17:12.openssl");
    
      script_name(english:"FreeBSD : FreeBSD -- OpenSSL multiple vulnerabilities (9f7a0f39-ddc0-11e7-b5af-a4badb2f4699)");
      script_summary(english:"Checks for updated packages in pkg_info output");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:
    "The remote FreeBSD host is missing one or more security-related
    updates."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "Invoking SSL_read()/SSL_write() while in an error state causes data to
    be passed without being decrypted/encrypted directly from the SSL/TLS
    record layer.
    
    In order to exploit this issue an application bug would have to be
    present that resulted in a call to SSL_read()/SSL_write() being issued
    after having already received a fatal error. [CVE-2017-3737]
    
    There is an overflow bug in the x86_64 Montgomery multiplication
    procedure used in exponentiation with 1024-bit moduli. This only
    affects processors that support the AVX2 but not ADX extensions like
    Intel Haswell (4th generation). [CVE-2017-3738] This bug only affects
    FreeBSD 11.x. Impact : Applications with incorrect error handling may
    inappropriately pass unencrypted data. [CVE-2017-3737]
    
    Mishandling of carry propagation will produce incorrect output, and
    make it easier for a remote attacker to obtain sensitive private-key
    information. No EC algorithms are affected and analysis suggests that
    attacks against RSA and DSA as a result of this defect would be very
    difficult to perform and are not believed likely.
    
    Attacks against DH1024 are considered just feasible (although very
    difficult) because most of the work necessary to deduce information
    about a private key may be performed offline. The amount of resources
    required for such an attack would be very significant and likely only
    accessible to a limited number of attackers. However, for an attack on
    TLS to be meaningful, the server would have to share the DH1024
    private key among multiple clients, which is no longer an option since
    CVE-2016-0701. [CVE-2017-3738]"
      );
      # https://vuxml.freebsd.org/freebsd/9f7a0f39-ddc0-11e7-b5af-a4badb2f4699.html
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?fd81aece"
      );
      script_set_attribute(attribute:"solution", value:"Update the affected packages.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:N/A:N");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:freebsd:freebsd:FreeBSD");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:freebsd:freebsd");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2017/12/09");
      script_set_attribute(attribute:"patch_publication_date", value:"2017/12/10");
      script_set_attribute(attribute:"plugin_publication_date", value:"2017/12/11");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2017-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", "Settings/ParanoidReport");
    
      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);
    
    
    if (report_paranoia < 2) audit(AUDIT_PARANOID);
    
    flag = 0;
    
    if (pkg_test(save_report:TRUE, pkg:"FreeBSD>=11.1<11.1_6")) flag++;
    if (pkg_test(save_report:TRUE, pkg:"FreeBSD>=10.4<10.4_5")) flag++;
    if (pkg_test(save_report:TRUE, pkg:"FreeBSD>=10.3<10.3_26")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_warning(port:0, extra:pkg_report_get());
      else security_warning(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familyGentoo Local Security Checks
    NASL idGENTOO_GLSA-201601-05.NASL
    descriptionThe remote host is affected by the vulnerability described in GLSA-201601-05 (OpenSSL: Multiple vulnerabilities) Multiple vulnerabilities have been discovered in OpenSSL. Please review the upstream advisory and CVE identifiers referenced below for details. Note that the list includes CVE identifiers for an older OpenSSL Security Advisory (3 Dec 2015) for which we have not issued a GLSA before. Impact : A remote attacker could disclose a server&rsquo;s private DH exponent, or complete SSLv2 handshakes using ciphers that have been disabled on the server. Workaround : There is no known workaround at this time.
    last seen2020-06-01
    modified2020-06-02
    plugin id88586
    published2016-02-05
    reporterThis script is Copyright (C) 2016-2018 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/88586
    titleGLSA-201601-05 : OpenSSL: Multiple vulnerabilities
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Gentoo Linux Security Advisory GLSA 201601-05.
    #
    # The advisory text is Copyright (C) 2001-2018 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(88586);
      script_version("2.10");
      script_cvs_date("Date: 2018/12/18 10:18:58");
    
      script_cve_id("CVE-2015-1794", "CVE-2015-3193", "CVE-2015-3194", "CVE-2015-3195", "CVE-2015-3196", "CVE-2015-3197", "CVE-2016-0701");
      script_xref(name:"GLSA", value:"201601-05");
    
      script_name(english:"GLSA-201601-05 : OpenSSL: Multiple vulnerabilities");
      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-201601-05
    (OpenSSL: Multiple vulnerabilities)
    
        Multiple vulnerabilities have been discovered in OpenSSL. Please review
          the upstream advisory and CVE identifiers referenced below for details.
          Note that the list includes CVE identifiers for an older OpenSSL Security
          Advisory (3 Dec 2015) for which we have not issued a GLSA before.
      
    Impact :
    
        A remote attacker could disclose a server&rsquo;s private DH exponent, or
          complete SSLv2 handshakes using ciphers that have been disabled on the
          server.
      
    Workaround :
    
        There is no known workaround at this time."
      );
      # https://openssl.org/news/secadv/20160128.txt
      script_set_attribute(
        attribute:"see_also",
        value:"https://www.openssl.org/news/secadv/20160128.txt"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security.gentoo.org/glsa/201601-05"
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "All OpenSSL users should upgrade to the latest version:
          # emerge --sync
          # emerge --ask --oneshot --verbose '>=dev-libs/openssl-1.0.2f'"
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:P");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:gentoo:linux:openssl");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:gentoo:linux");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2016/01/29");
      script_set_attribute(attribute:"plugin_publication_date", value:"2016/02/05");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2016-2018 and is owned by Tenable, Inc. or an Affiliate thereof.");
      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:"dev-libs/openssl", unaffected:make_list("ge 1.0.2f", "rge 1.0.1r", "rge 1.0.1s", "rge 1.0.1t", "rge 0.9.8z_p8", "rge 0.9.8z_p9", "rge 0.9.8z_p10", "rge 0.9.8z_p11", "rge 0.9.8z_p12", "rge 0.9.8z_p13", "rge 0.9.8z_p14", "rge 0.9.8z_p15"), vulnerable:make_list("lt 1.0.2f"))) 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, "OpenSSL");
    }
    
  • NASL familyFreeBSD Local Security Checks
    NASL idFREEBSD_PKG_3679FD10C5D111E5B85F0018FE623F2B.NASL
    descriptionOpenSSL project reports : - Historically OpenSSL only ever generated DH parameters based on
    last seen2020-06-01
    modified2020-06-02
    plugin id88465
    published2016-01-29
    reporterThis script is Copyright (C) 2016-2018 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/88465
    titleFreeBSD : openssl -- multiple vulnerabilities (3679fd10-c5d1-11e5-b85f-0018fe623f2b)
    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(88465);
      script_version("2.10");
      script_cvs_date("Date: 2018/11/10 11:49:45");
    
      script_cve_id("CVE-2015-3197", "CVE-2016-0701");
      script_xref(name:"FreeBSD", value:"SA-16:11.openssl");
    
      script_name(english:"FreeBSD : openssl -- multiple vulnerabilities (3679fd10-c5d1-11e5-b85f-0018fe623f2b)");
      script_summary(english:"Checks for updated packages in pkg_info output");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:
    "The remote FreeBSD host is missing one or more security-related
    updates."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "OpenSSL project reports :
    
    - Historically OpenSSL only ever generated DH parameters based on
    'safe' primes. More recently (in version 1.0.2) support was provided
    for generating X9.42 style parameter files such as those required for
    RFC 5114 support. The primes used in such files may not be 'safe'.
    Where an application is using DH configured with parameters based on
    primes that are not 'safe' then an attacker could use this fact to
    find a peer's private DH exponent. This attack requires that the
    attacker complete multiple handshakes in which the peer uses the same
    private DH exponent. For example this could be used to discover a TLS
    server's private DH exponent if it's reusing the private DH exponent
    or it's using a static DH ciphersuite. OpenSSL provides the option
    SSL_OP_SINGLE_DH_USE for ephemeral DH (DHE) in TLS. It is not on by
    default. If the option is not set then the server reuses the same
    private DH exponent for the life of the server process and would be
    vulnerable to this attack. It is believed that many popular
    applications do set this option and would therefore not be at risk.
    (CVE-2016-0701)
    
    - A malicious client can negotiate SSLv2 ciphers that have been
    disabled on the server and complete SSLv2 handshakes even if all SSLv2
    ciphers have been disabled, provided that the SSLv2 protocol was not
    also disabled via SSL_OP_NO_SSLv2. (CVE-2015-3197)"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://www.openssl.org/news/secadv/20160128.txt"
      );
      # https://vuxml.freebsd.org/freebsd/3679fd10-c5d1-11e5-b85f-0018fe623f2b.html
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?73b8364e"
      );
      script_set_attribute(attribute:"solution", value:"Update the affected packages.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:N/A:N");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:freebsd:freebsd:mingw32-openssl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:freebsd:freebsd:openssl");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:freebsd:freebsd");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2016/01/22");
      script_set_attribute(attribute:"patch_publication_date", value:"2016/01/28");
      script_set_attribute(attribute:"plugin_publication_date", value:"2016/01/29");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2016-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:"openssl<1.0.2_7")) flag++;
    if (pkg_test(save_report:TRUE, pkg:"mingw32-openssl>=1.0.1<1.0.2f")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_warning(port:0, extra:pkg_report_get());
      else security_warning(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2016-527018D2FF.NASL
    descriptionNew upstream version fixing one high serverity and one low severity security issue. 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-06-05
    modified2016-03-04
    plugin id89543
    published2016-03-04
    reporterThis script is Copyright (C) 2016-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/89543
    titleFedora 23 : openssl-1.0.2f-1.fc23 (2016-527018d2ff)
    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 2016-527018d2ff.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(89543);
      script_version("1.6");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/04");
    
      script_cve_id("CVE-2015-3197", "CVE-2016-0701");
      script_xref(name:"FEDORA", value:"2016-527018d2ff");
    
      script_name(english:"Fedora 23 : openssl-1.0.2f-1.fc23 (2016-527018d2ff)");
      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 upstream version fixing one high serverity and one low severity
    security issue.
    
    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."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.redhat.com/show_bug.cgi?id=1301845"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.redhat.com/show_bug.cgi?id=1301846"
      );
      # https://lists.fedoraproject.org/pipermail/package-announce/2016-January/176373.html
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?8707d9bd"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Update the affected openssl package."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:N/A:N");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fedoraproject:fedora:openssl");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:fedoraproject:fedora:23");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2016/01/30");
      script_set_attribute(attribute:"plugin_publication_date", value:"2016/03/04");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2016-2020 Tenable Network Security, Inc.");
      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 = eregmatch(pattern: "Fedora.*release ([0-9]+)", string:release);
    if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Fedora");
    os_ver = os_ver[1];
    if (! ereg(pattern:"^23([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, "Fedora 23.x", "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:"FC23", reference:"openssl-1.0.2f-1.fc23")) 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, "openssl");
    }
    
  • NASL familyHuawei Local Security Checks
    NASL idEULEROS_SA-2018-1179.NASL
    descriptionAccording to the versions of the openssl packages installed, the EulerOS installation on the remote host is affected by the following vulnerabilities : - There is a carry propagating bug in the x86_64 Montgomery squaring procedure in OpenSSL before 1.0.2m and 1.1.0 before 1.1.0g. No EC algorithms are affected. Analysis suggests that attacks against RSA and DSA as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH are considered just feasible (although very difficult) because most of the work necessary to deduce information about a private key may be performed offline. The amount of resources required for such an attack would be very significant and likely only accessible to a limited number of attackers. An attacker would additionally need online access to an unpatched system using the target private key in a scenario with persistent DH parameters and a private key that is shared between multiple clients. This only affects processors that support the BMI1, BMI2 and ADX extensions like Intel Broadwell (5th generation) and later or AMD Ryzen. (CVE-2017-3736) - OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an
    last seen2020-05-06
    modified2018-07-03
    plugin id110843
    published2018-07-03
    reporterThis script is Copyright (C) 2018-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/110843
    titleEulerOS 2.0 SP3 : openssl (EulerOS-SA-2018-1179)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(110843);
      script_version("1.5");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/05/04");
    
      script_cve_id(
        "CVE-2017-3736",
        "CVE-2017-3737",
        "CVE-2017-3738"
      );
    
      script_name(english:"EulerOS 2.0 SP3 : openssl (EulerOS-SA-2018-1179)");
      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 openssl packages installed, the
    EulerOS installation on the remote host is affected by the following
    vulnerabilities :
    
      - There is a carry propagating bug in the x86_64
        Montgomery squaring procedure in OpenSSL before 1.0.2m
        and 1.1.0 before 1.1.0g. No EC algorithms are affected.
        Analysis suggests that attacks against RSA and DSA as a
        result of this defect would be very difficult to
        perform and are not believed likely. Attacks against DH
        are considered just feasible (although very difficult)
        because most of the work necessary to deduce
        information about a private key may be performed
        offline. The amount of resources required for such an
        attack would be very significant and likely only
        accessible to a limited number of attackers. An
        attacker would additionally need online access to an
        unpatched system using the target private key in a
        scenario with persistent DH parameters and a private
        key that is shared between multiple clients. This only
        affects processors that support the BMI1, BMI2 and ADX
        extensions like Intel Broadwell (5th generation) and
        later or AMD Ryzen. (CVE-2017-3736)
    
      - OpenSSL 1.0.2 (starting from version 1.0.2b) introduced
        an 'error state' mechanism. The intent was that if a
        fatal error occurred during a handshake then OpenSSL
        would move into the error state and would immediately
        fail if you attempted to continue the handshake. This
        works as designed for the explicit handshake functions
        (SSL_do_handshake(), SSL_accept() and SSL_connect()),
        however due to a bug it does not work correctly if
        SSL_read() or SSL_write() is called directly. In that
        scenario, if the handshake fails then a fatal error
        will be returned in the initial function call. If
        SSL_read()/SSL_write() is subsequently called by the
        application for the same SSL object then it will
        succeed and the data is passed without being
        decrypted/encrypted directly from the SSL/TLS record
        layer. In order to exploit this issue an application
        bug would have to be present that resulted in a call to
        SSL_read()/SSL_write() being issued after having
        already received a fatal error. (CVE-2017-3737)
    
      - There is an overflow bug in the AVX2 Montgomery
        multiplication procedure used in exponentiation with
        1024-bit moduli. No EC algorithms are affected.
        Analysis suggests that attacks against RSA and DSA as a
        result of this defect would be very difficult to
        perform and are not believed likely. Attacks against
        DH1024 are considered just feasible, because most of
        the work necessary to deduce information about a
        private key may be performed offline. The amount of
        resources required for such an attack would be
        significant. However, for an attack on TLS to be
        meaningful, the server would have to share the DH1024
        private key among multiple clients, which is no longer
        an option since CVE-2016-0701. This only affects
        processors that support the AVX2 but not ADX extensions
        like Intel Haswell (4th generation). (CVE-2017-3738)
    
    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-2018-1179
      script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?44f06371");
      script_set_attribute(attribute:"solution", value:
    "Update the affected openssl packages.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:N/A:N");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2018/06/15");
      script_set_attribute(attribute:"plugin_publication_date", value:"2018/07/03");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:openssl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:openssl-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:openssl-libs");
      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) 2018-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 !~ "^(3)$") audit(AUDIT_OS_NOT, "EulerOS 2.0 SP3");
    
    uvp = get_kb_item("Host/EulerOS/uvp_version");
    if (!empty_or_null(uvp)) audit(AUDIT_OS_NOT, "EulerOS 2.0 SP3", "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 = ["openssl-1.0.2k-12.h2",
            "openssl-devel-1.0.2k-12.h2",
            "openssl-libs-1.0.2k-12.h2"];
    
    foreach (pkg in pkgs)
      if (rpm_check(release:"EulerOS-2.0", sp:"3", reference:pkg)) 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, "openssl");
    }
    
  • NASL familyAmazon Linux Local Security Checks
    NASL idALA_ALAS-2018-1016.NASL
    descriptionThere is an overflow bug in the AVX2 Montgomery multiplication procedure used in exponentiation with 1024-bit moduli. No EC algorithms are affected. Analysis suggests that attacks against RSA and DSA as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH1024 are considered just feasible, because most of the work necessary to deduce information about a private key may be performed offline. The amount of resources required for such an attack would be significant. However, for an attack on TLS to be meaningful, the server would have to share the DH1024 private key among multiple clients, which is no longer an option since CVE-2016-0701 . This only affects processors that support the AVX2 but not ADX extensions like Intel Haswell (4th generation). Note: The impact from this issue is similar to CVE-2017-3736 , CVE-2017-3732 and CVE-2015-3193 . OpenSSL version 1.0.2-1.0.2m and 1.1.0-1.1.0g are affected. Fixed in OpenSSL 1.0.2n. Due to the low severity of this issue we are not issuing a new release of OpenSSL 1.1.0 at this time. The fix will be included in OpenSSL 1.1.0h when it becomes available. The fix is also available in commit e502cc86d in the OpenSSL git repository.(CVE-2017-3738) OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an
    last seen2020-06-01
    modified2020-06-02
    plugin id109698
    published2018-05-11
    reporterThis script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/109698
    titleAmazon Linux AMI : openssl (ALAS-2018-1016)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Amazon Linux AMI Security Advisory ALAS-2018-1016.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(109698);
      script_version("1.2");
      script_cvs_date("Date: 2019/07/10 16:04:12");
    
      script_cve_id("CVE-2017-3736", "CVE-2017-3737", "CVE-2017-3738");
      script_xref(name:"ALAS", value:"2018-1016");
    
      script_name(english:"Amazon Linux AMI : openssl (ALAS-2018-1016)");
      script_summary(english:"Checks rpm output for the updated packages");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Amazon Linux AMI host is missing a security update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "There is an overflow bug in the AVX2 Montgomery multiplication
    procedure used in exponentiation with 1024-bit moduli. No EC
    algorithms are affected. Analysis suggests that attacks against RSA
    and DSA as a result of this defect would be very difficult to perform
    and are not believed likely. Attacks against DH1024 are considered
    just feasible, because most of the work necessary to deduce
    information about a private key may be performed offline. The amount
    of resources required for such an attack would be significant.
    However, for an attack on TLS to be meaningful, the server would have
    to share the DH1024 private key among multiple clients, which is no
    longer an option since CVE-2016-0701 . This only affects processors
    that support the AVX2 but not ADX extensions like Intel Haswell (4th
    generation). Note: The impact from this issue is similar to
    CVE-2017-3736 , CVE-2017-3732 and CVE-2015-3193 . OpenSSL version
    1.0.2-1.0.2m and 1.1.0-1.1.0g are affected. Fixed in OpenSSL 1.0.2n.
    Due to the low severity of this issue we are not issuing a new release
    of OpenSSL 1.1.0 at this time. The fix will be included in OpenSSL
    1.1.0h when it becomes available. The fix is also available in commit
    e502cc86d in the OpenSSL git repository.(CVE-2017-3738)
    
    OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an 'error
    state' mechanism. The intent was that if a fatal error occurred during
    a handshake then OpenSSL would move into the error state and would
    immediately fail if you attempted to continue the handshake. This
    works as designed for the explicit handshake functions
    (SSL_do_handshake(), SSL_accept() and SSL_connect()), however due to a
    bug it does not work correctly if SSL_read() or SSL_write() is called
    directly. In that scenario, if the handshake fails then a fatal error
    will be returned in the initial function call. If
    SSL_read()/SSL_write() is subsequently called by the application for
    the same SSL object then it will succeed and the data is passed
    without being decrypted/encrypted directly from the SSL/TLS record
    layer. In order to exploit this issue an application bug would have to
    be present that resulted in a call to SSL_read()/SSL_write() being
    issued after having already received a fatal error. OpenSSL version
    1.0.2b-1.0.2m are affected. Fixed in OpenSSL 1.0.2n. OpenSSL 1.1.0 is
    not affected.(CVE-2017-3737)
    
    There is a carry propagating bug in the x86_64 Montgomery squaring
    procedure in OpenSSL before 1.0.2m and 1.1.0 before 1.1.0g. No EC
    algorithms are affected. Analysis suggests that attacks against RSA
    and DSA as a result of this defect would be very difficult to perform
    and are not believed likely. Attacks against DH are considered just
    feasible (although very difficult) because most of the work necessary
    to deduce information about a private key may be performed offline.
    The amount of resources required for such an attack would be very
    significant and likely only accessible to a limited number of
    attackers. An attacker would additionally need online access to an
    unpatched system using the target private key in a scenario with
    persistent DH parameters and a private key that is shared between
    multiple clients. This only affects processors that support the BMI1,
    BMI2 and ADX extensions like Intel Broadwell (5th generation) and
    later or AMD Ryzen.(CVE-2017-3736)"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://alas.aws.amazon.com/ALAS-2018-1016.html"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Run 'yum update openssl' to update your system."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:N/A:N");
      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:"p-cpe:/a:amazon:linux:openssl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-perl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-static");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:amazon:linux");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2017/11/02");
      script_set_attribute(attribute:"patch_publication_date", value:"2018/05/10");
      script_set_attribute(attribute:"plugin_publication_date", value:"2018/05/11");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
      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:"openssl-1.0.2k-12.109.amzn1")) flag++;
    if (rpm_check(release:"ALA", reference:"openssl-debuginfo-1.0.2k-12.109.amzn1")) flag++;
    if (rpm_check(release:"ALA", reference:"openssl-devel-1.0.2k-12.109.amzn1")) flag++;
    if (rpm_check(release:"ALA", reference:"openssl-perl-1.0.2k-12.109.amzn1")) flag++;
    if (rpm_check(release:"ALA", reference:"openssl-static-1.0.2k-12.109.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, "openssl / openssl-debuginfo / openssl-devel / openssl-perl / etc");
    }
    
  • NASL familyHuawei Local Security Checks
    NASL idEULEROS_SA-2019-1546.NASL
    descriptionAccording to the versions of the openssl packages installed, the EulerOS Virtualization installation on the remote host is affected by the following vulnerabilities : - Libgcrypt before 1.7.10 and 1.8.x before 1.8.3 allows a memory-cache side-channel attack on ECDSA signatures that can be mitigated through the use of blinding during the signing process in the _gcry_ecc_ecdsa_sign function in cipher/ecc-ecdsa.c, aka the Return Of the Hidden Number Problem or ROHNP. To discover an ECDSA key, the attacker needs access to either the local machine or a different virtual machine on the same physical host.(CVE-2018-0495) - OpenSSL before 0.9.8y, 1.0.0 before 1.0.0k, and 1.0.1 before 1.0.1d does not properly perform signature verification for OCSP responses, which allows remote OCSP servers to cause a denial of service (NULL pointer dereference and application crash) via an invalid key.(CVE-2013-0166) - OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an
    last seen2020-06-01
    modified2020-06-02
    plugin id124999
    published2019-05-14
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/124999
    titleEulerOS Virtualization 3.0.1.0 : openssl (EulerOS-SA-2019-1546)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(124999);
      script_version("1.8");
      script_cvs_date("Date: 2020/01/17");
    
      script_cve_id(
        "CVE-2009-2409",
        "CVE-2010-0433",
        "CVE-2013-0166",
        "CVE-2014-0224",
        "CVE-2014-3470",
        "CVE-2014-3506",
        "CVE-2014-3508",
        "CVE-2014-3510",
        "CVE-2014-3570",
        "CVE-2015-0204",
        "CVE-2015-0287",
        "CVE-2015-0289",
        "CVE-2016-0704",
        "CVE-2017-3735",
        "CVE-2017-3737",
        "CVE-2017-3738",
        "CVE-2018-0495",
        "CVE-2018-0732",
        "CVE-2018-0737",
        "CVE-2018-0739"
      );
      script_bugtraq_id(
        29330,
        57755,
        60268,
        67898,
        67899,
        69075,
        69076,
        69082,
        71936,
        71939,
        73227,
        73231
      );
    
      script_name(english:"EulerOS Virtualization 3.0.1.0 : openssl (EulerOS-SA-2019-1546)");
      script_summary(english:"Checks the rpm output for the updated packages.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote EulerOS Virtualization host is missing multiple security
    updates.");
      script_set_attribute(attribute:"description", value:
    "According to the versions of the openssl packages installed, the
    EulerOS Virtualization installation on the remote host is affected by
    the following vulnerabilities :
    
      - Libgcrypt before 1.7.10 and 1.8.x before 1.8.3 allows a
        memory-cache side-channel attack on ECDSA signatures
        that can be mitigated through the use of blinding
        during the signing process in the _gcry_ecc_ecdsa_sign
        function in cipher/ecc-ecdsa.c, aka the Return Of the
        Hidden Number Problem or ROHNP. To discover an ECDSA
        key, the attacker needs access to either the local
        machine or a different virtual machine on the same
        physical host.(CVE-2018-0495)
    
      - OpenSSL before 0.9.8y, 1.0.0 before 1.0.0k, and 1.0.1
        before 1.0.1d does not properly perform signature
        verification for OCSP responses, which allows remote
        OCSP servers to cause a denial of service (NULL pointer
        dereference and application crash) via an invalid
        key.(CVE-2013-0166)
    
      - OpenSSL 1.0.2 (starting from version 1.0.2b) introduced
        an 'error state' mechanism. The intent was that if a
        fatal error occurred during a handshake then OpenSSL
        would move into the error state and would immediately
        fail if you attempted to continue the handshake. This
        works as designed for the explicit handshake functions
        (SSL_do_handshake(), SSL_accept() and SSL_connect()),
        however due to a bug it does not work correctly if
        SSL_read() or SSL_write() is called directly. In that
        scenario, if the handshake fails then a fatal error
        will be returned in the initial function call. If
        SSL_read()/SSL_write() is subsequently called by the
        application for the same SSL object then it will
        succeed and the data is passed without being
        decrypted/encrypted directly from the SSL/TLS record
        layer. In order to exploit this issue an application
        bug would have to be present that resulted in a call to
        SSL_read()/SSL_write() being issued after having
        already received a fatal error. OpenSSL version
        1.0.2b-1.0.2m are affected. Fixed in OpenSSL 1.0.2n.
        OpenSSL 1.1.0 is not affected.(CVE-2017-3737)
    
      - An out-of-bounds write flaw was found in the way
        OpenSSL reused certain ASN.1 structures. A remote
        attacker could possibly use a specially crafted ASN.1
        structure that, when parsed by an application, would
        cause that application to crash.(CVE-2015-0287)
    
      - It was found that OpenSSL clients and servers could be
        forced, via a specially crafted handshake packet, to
        use weak keying material for communication. A
        man-in-the-middle attacker could use this flaw to
        decrypt and modify traffic between a client and a
        server.(CVE-2014-0224)
    
      - There is an overflow bug in the AVX2 Montgomery
        multiplication procedure used in exponentiation with
        1024-bit moduli. No EC algorithms are affected.
        Analysis suggests that attacks against RSA and DSA as a
        result of this defect would be very difficult to
        perform and are not believed likely. Attacks against
        DH1024 are considered just feasible, because most of
        the work necessary to deduce information about a
        private key may be performed offline. The amount of
        resources required for such an attack would be
        significant. However, for an attack on TLS to be
        meaningful, the server would have to share the DH1024
        private key among multiple clients, which is no longer
        an option since CVE-2016-0701. This only affects
        processors that support the AVX2 but not ADX extensions
        like Intel Haswell (4th generation). Note: The impact
        from this issue is similar to CVE-2017-3736,
        CVE-2017-3732 and CVE-2015-3193. OpenSSL version
        1.0.2-1.0.2m and 1.1.0-1.1.0g are affected. Fixed in
        OpenSSL 1.0.2n. Due to the low severity of this issue
        we are not issuing a new release of OpenSSL 1.1.0 at
        this time. The fix will be included in OpenSSL 1.1.0h
        when it becomes available. The fix is also available in
        commit e502cc86d in the OpenSSL git
        repository.(CVE-2017-3738)
    
      - The ssl3_send_client_key_exchange function in s3_clnt.c
        in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and
        1.0.1 before 1.0.1h, when an anonymous ECDH cipher
        suite is used, allows remote attackers to cause a
        denial of service (NULL pointer dereference and client
        crash) by triggering a NULL certificate
        value.(CVE-2014-3470)
    
      - It was discovered that the SSLv2 protocol
        implementation in OpenSSL did not properly implement
        the Bleichenbacher protection for export cipher suites.
        An attacker could use a SSLv2 server using OpenSSL as a
        Bleichenbacher oracle.(CVE-2016-0704)
    
      - A NULL pointer dereference flaw was found in the way
        OpenSSL performed a handshake when using the anonymous
        Diffie-Hellman (DH) key exchange. A malicious server
        could cause a DTLS client using OpenSSL to crash if
        that client had anonymous DH cipher suites
        enabled.(CVE-2014-3510)
    
      - 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 Network Security Services (NSS) library before
        3.12.3, as used in Firefox GnuTLS before 2.6.4 and
        2.7.4 OpenSSL 0.9.8 through 0.9.8k and other products
        support MD2 with X.509 certificates, which might allow
        remote attackers to spoof certificates by using MD2
        design flaws to generate a hash collision in less than
        brute-force time. NOTE: the scope of this issue is
        currently limited because the amount of computation
        required is still large.(CVE-2009-2409)
    
      - Constructed ASN.1 types with a recursive definition
        (such as can be found in PKCS7) could eventually exceed
        the stack given malicious input with excessive
        recursion. This could result in a Denial Of Service
        attack. There are no such structures used within
        SSL/TLS that come from untrusted sources so this is
        considered safe. Fixed in OpenSSL 1.1.0h (Affected
        1.1.0-1.1.0g). Fixed in OpenSSL 1.0.2o (Affected
        1.0.2b-1.0.2n).(CVE-2018-0739)
    
      - During key agreement in a TLS handshake using a DH(E)
        based ciphersuite a malicious server can send a very
        large prime value to the client. This will cause the
        client to spend an unreasonably long period of time
        generating a key for this prime resulting in a hang
        until the client has finished. This could be exploited
        in a Denial Of Service attack. Fixed in OpenSSL
        1.1.0i-dev (Affected 1.1.0-1.1.0h). Fixed in OpenSSL
        1.0.2p-dev (Affected 1.0.2-1.0.2o).(CVE-2018-0732)
    
      - A NULL pointer dereference was found in the way OpenSSL
        handled certain PKCS#7 inputs. An attacker able to make
        an application using OpenSSL verify, decrypt, or parse
        a specially crafted PKCS#7 input could cause that
        application to crash. TLS/SSL clients and servers using
        OpenSSL were not affected by this flaw.(CVE-2015-0289)
    
      - A flaw was discovered in the way OpenSSL handled DTLS
        packets. A remote attacker could use this flaw to cause
        a DTLS server or client using OpenSSL to crash or use
        excessive amounts of memory.(CVE-2014-3506)
    
      - The kssl_keytab_is_available function in ssl/kssl.c in
        OpenSSL before 0.9.8n, when Kerberos is enabled but
        Kerberos configuration files cannot be opened, does not
        check a certain return value, which allows remote
        attackers to cause a denial of service (NULL pointer
        dereference and daemon crash) via SSL cipher
        negotiation, as demonstrated by a chroot installation
        of Dovecot or stunnel without Kerberos configuration
        files inside the chroot.(CVE-2010-0433)
    
      - It was discovered that OpenSSL would accept ephemeral
        RSA keys when using non-export RSA cipher suites. A
        malicious server could make a TLS/SSL client using
        OpenSSL use a weaker key exchange
        method.(CVE-2015-0204)
    
      - It was found that OpenSSL's BigNumber Squaring
        implementation could produce incorrect results under
        certain special conditions. This flaw could possibly
        affect certain OpenSSL library functionality, such as
        RSA blinding. Note that this issue occurred rarely and
        with a low probability, and there is currently no known
        way of exploiting it.(CVE-2014-3570)
    
      - It was discovered that the OBJ_obj2txt() function could
        fail to properly NUL-terminate its output. This could
        possibly cause an application using OpenSSL functions
        to format fields of X.509 certificates to disclose
        portions of its memory.(CVE-2014-3508)
    
      - OpenSSL RSA key generation was found to be vulnerable
        to cache side-channel attacks. An attacker with
        sufficient access to mount cache timing attacks during
        the RSA key generation process could recover parts of
        the private key.(CVE-2018-0737)
    
    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-1546
      script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?3aeefc06");
      script_set_attribute(attribute:"solution", value:
    "Update the affected openssl packages.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:N");
      script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N");
      script_set_cvss3_temporal_vector("CVSS:3.0/E:F/RL:O/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
      script_set_attribute(attribute:"exploit_framework_core", value:"true");
      script_cwe_id(20, 310);
    
      script_set_attribute(attribute:"patch_publication_date", value:"2019/05/09");
      script_set_attribute(attribute:"plugin_publication_date", value:"2019/05/14");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:openssl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:openssl-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:openssl-libs");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:uvp:3.0.1.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/cpu", "Host/EulerOS/release", "Host/EulerOS/rpm-list", "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");
    uvp = get_kb_item("Host/EulerOS/uvp_version");
    if (uvp != "3.0.1.0") audit(AUDIT_OS_NOT, "EulerOS Virtualization 3.0.1.0");
    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 = ["openssl-1.0.2k-16.h5",
            "openssl-devel-1.0.2k-16.h5",
            "openssl-libs-1.0.2k-16.h5"];
    
    foreach (pkg in pkgs)
      if (rpm_check(release:"EulerOS-2.0", reference:pkg)) 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, "openssl");
    }
    
  • NASL familyFreeBSD Local Security Checks
    NASL idFREEBSD_PKG_3BB451FCDB6411E7AC58B499BAEBFEAF.NASL
    descriptionThe OpenSSL project reports : - Read/write after SSL object in error state (CVE-2017-3737) OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an
    last seen2020-06-01
    modified2020-06-02
    plugin id105090
    published2017-12-08
    reporterThis script is Copyright (C) 2017-2018 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/105090
    titleFreeBSD : OpenSSL -- multiple vulnerabilities (3bb451fc-db64-11e7-ac58-b499baebfeaf)
    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(105090);
      script_version("3.8");
      script_cvs_date("Date: 2018/11/10 11:49:46");
    
      script_cve_id("CVE-2017-3737", "CVE-2017-3738");
    
      script_name(english:"FreeBSD : OpenSSL -- multiple vulnerabilities (3bb451fc-db64-11e7-ac58-b499baebfeaf)");
      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:
    "The OpenSSL project reports :
    
    - Read/write after SSL object in error state (CVE-2017-3737) OpenSSL
    1.0.2 (starting from version 1.0.2b) introduced an 'error state'
    mechanism. The intent was that if a fatal error occurred during a
    handshake then OpenSSL would move into the error state and would
    immediately fail if you attempted to continue the handshake. This
    works as designed for the explicit handshake functions
    (SSL_do_handshake(), SSL_accept() and SSL_connect()), however due to a
    bug it does not work correctly if SSL_read() or SSL_write() is called
    directly. In that scenario, if the handshake fails then a fatal error
    will be returned in the initial function call. If
    SSL_read()/SSL_write() is subsequently called by the application for
    the same SSL object then it will succeed and the data is passed
    without being decrypted/encrypted directly from the SSL/TLS record
    layer.
    
    - rsaz_1024_mul_avx2 overflow bug on x86_64 (CVE-2017-3738) There is
    an overflow bug in the AVX2 Montgomery multiplication procedure used
    in exponentiation with 1024-bit moduli. No EC algorithms are affected.
    Analysis suggests that attacks against RSA and DSA as a result of this
    defect would be very difficult to perform and are not believed likely.
    Attacks against DH1024 are considered just feasible, because most of
    the work necessary to deduce information about a private key may be
    performed offline. The amount of resources required for such an attack
    would be significant. However, for an attack on TLS to be meaningful,
    the server would have to share the DH1024 private key among multiple
    clients, which is no longer an option since CVE-2016-0701."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://www.openssl.org/news/secadv/20171207.txt"
      );
      # https://vuxml.freebsd.org/freebsd/3bb451fc-db64-11e7-ac58-b499baebfeaf.html
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?a7d796f8"
      );
      script_set_attribute(attribute:"solution", value:"Update the affected package.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:N/A:N");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:freebsd:freebsd:openssl");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:freebsd:freebsd");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2017/12/07");
      script_set_attribute(attribute:"patch_publication_date", value:"2017/12/07");
      script_set_attribute(attribute:"plugin_publication_date", value:"2017/12/08");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2017-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:"openssl>1.0.2<1.0.2n")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_warning(port:0, extra:pkg_report_get());
      else security_warning(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familyAmazon Linux Local Security Checks
    NASL idAL2_ALAS-2018-1004.NASL
    descriptionbn_sqrx8x_internal carry bug on x86_64 There is a carry propagating bug in the x86_64 Montgomery squaring procedure in OpenSSL before 1.0.2m and 1.1.0 before 1.1.0g. No EC algorithms are affected. Analysis suggests that attacks against RSA and DSA as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH are considered just feasible (although very difficult) because most of the work necessary to deduce information about a private key may be performed offline. The amount of resources required for such an attack would be very significant and likely only accessible to a limited number of attackers. An attacker would additionally need online access to an unpatched system using the target private key in a scenario with persistent DH parameters and a private key that is shared between multiple clients. This only affects processors that support the BMI1, BMI2 and ADX extensions like Intel Broadwell (5th generation) and later or AMD Ryzen. (CVE-2017-3736) rsaz_1024_mul_avx2 overflow bug on x86_64 There is an overflow bug in the AVX2 Montgomery multiplication procedure used in exponentiation with 1024-bit moduli. No EC algorithms are affected. Analysis suggests that attacks against RSA and DSA as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH1024 are considered just feasible, because most of the work necessary to deduce information about a private key may be performed offline. The amount of resources required for such an attack would be significant. However, for an attack on TLS to be meaningful, the server would have to share the DH1024 private key among multiple clients, which is no longer an option since CVE-2016-0701 . This only affects processors that support the AVX2 but not ADX extensions like Intel Haswell (4th generation). Note: The impact from this issue is similar to CVE-2017-3736 , CVE-2017-3732 and CVE-2015-3193 . OpenSSL version 1.0.2-1.0.2m and 1.1.0-1.1.0g are affected. Fixed in OpenSSL 1.0.2n. Due to the low severity of this issue we are not issuing a new release of OpenSSL 1.1.0 at this time. The fix will be included in OpenSSL 1.1.0h when it becomes available. The fix is also available in commit e502cc86d in the OpenSSL git repository. (CVE-2017-3738) RSA key generation cache timing vulnerability in crypto/rsa/rsa_gen.c allows attackers to recover private keys OpenSSL RSA key generation was found to be vulnerable to cache side-channel attacks. An attacker with sufficient access to mount cache timing attacks during the RSA key generation process could recover parts of the private key. (CVE-2018-0737) Read/write after SSL object in error state OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an
    last seen2020-06-01
    modified2020-06-02
    plugin id109364
    published2018-04-27
    reporterThis script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/109364
    titleAmazon Linux 2 : openssl (ALAS-2018-1004)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Amazon Linux 2 Security Advisory ALAS-2018-1004.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(109364);
      script_version("1.2");
      script_cvs_date("Date: 2019/07/10 16:04:12");
    
      script_cve_id("CVE-2017-3736", "CVE-2017-3737", "CVE-2017-3738", "CVE-2018-0737");
      script_xref(name:"ALAS", value:"2018-1004");
    
      script_name(english:"Amazon Linux 2 : openssl (ALAS-2018-1004)");
      script_summary(english:"Checks rpm output for the updated packages");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Amazon Linux 2 host is missing a security update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "bn_sqrx8x_internal carry bug on x86_64
    
    There is a carry propagating bug in the x86_64 Montgomery squaring
    procedure in OpenSSL before 1.0.2m and 1.1.0 before 1.1.0g. No EC
    algorithms are affected. Analysis suggests that attacks against RSA
    and DSA as a result of this defect would be very difficult to perform
    and are not believed likely. Attacks against DH are considered just
    feasible (although very difficult) because most of the work necessary
    to deduce information about a private key may be performed offline.
    The amount of resources required for such an attack would be very
    significant and likely only accessible to a limited number of
    attackers. An attacker would additionally need online access to an
    unpatched system using the target private key in a scenario with
    persistent DH parameters and a private key that is shared between
    multiple clients. This only affects processors that support the BMI1,
    BMI2 and ADX extensions like Intel Broadwell (5th generation) and
    later or AMD Ryzen. (CVE-2017-3736)
    
    rsaz_1024_mul_avx2 overflow bug on x86_64
    
    There is an overflow bug in the AVX2 Montgomery multiplication
    procedure used in exponentiation with 1024-bit moduli. No EC
    algorithms are affected. Analysis suggests that attacks against RSA
    and DSA as a result of this defect would be very difficult to perform
    and are not believed likely. Attacks against DH1024 are considered
    just feasible, because most of the work necessary to deduce
    information about a private key may be performed offline. The amount
    of resources required for such an attack would be significant.
    However, for an attack on TLS to be meaningful, the server would have
    to share the DH1024 private key among multiple clients, which is no
    longer an option since CVE-2016-0701 . This only affects processors
    that support the AVX2 but not ADX extensions like Intel Haswell (4th
    generation). Note: The impact from this issue is similar to
    CVE-2017-3736 , CVE-2017-3732 and CVE-2015-3193 . OpenSSL version
    1.0.2-1.0.2m and 1.1.0-1.1.0g are affected. Fixed in OpenSSL 1.0.2n.
    Due to the low severity of this issue we are not issuing a new release
    of OpenSSL 1.1.0 at this time. The fix will be included in OpenSSL
    1.1.0h when it becomes available. The fix is also available in commit
    e502cc86d in the OpenSSL git repository. (CVE-2017-3738)
    
    RSA key generation cache timing vulnerability in crypto/rsa/rsa_gen.c
    allows attackers to recover private keys
    
    OpenSSL RSA key generation was found to be vulnerable to cache
    side-channel attacks. An attacker with sufficient access to mount
    cache timing attacks during the RSA key generation process could
    recover parts of the private key. (CVE-2018-0737)
    
    Read/write after SSL object in error state
    
    OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an 'error
    state' mechanism. The intent was that if a fatal error occurred during
    a handshake then OpenSSL would move into the error state and would
    immediately fail if you attempted to continue the handshake. This
    works as designed for the explicit handshake functions
    (SSL_do_handshake(), SSL_accept() and SSL_connect()), however due to a
    bug it does not work correctly if SSL_read() or SSL_write() is called
    directly. In that scenario, if the handshake fails then a fatal error
    will be returned in the initial function call. If
    SSL_read()/SSL_write() is subsequently called by the application for
    the same SSL object then it will succeed and the data is passed
    without being decrypted/encrypted directly from the SSL/TLS record
    layer. In order to exploit this issue an application bug would have to
    be present that resulted in a call to SSL_read()/SSL_write() being
    issued after having already received a fatal error. OpenSSL version
    1.0.2b-1.0.2m are affected. Fixed in OpenSSL 1.0.2n. OpenSSL 1.1.0 is
    not affected. (CVE-2017-3737)"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://alas.aws.amazon.com/AL2/ALAS-2018-1004.html"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Run 'yum update openssl' to update your system."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:N/A:N");
      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:"p-cpe:/a:amazon:linux:openssl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-libs");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-perl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-static");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:amazon:linux:2");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2017/11/02");
      script_set_attribute(attribute:"patch_publication_date", value:"2018/04/26");
      script_set_attribute(attribute:"plugin_publication_date", value:"2018/04/27");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
      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 != "2")
    {
      if (os_ver == 'A') os_ver = 'AMI';
      audit(AUDIT_OS_NOT, "Amazon Linux 2", "Amazon Linux " + os_ver);
    }
    
    if (!get_kb_item("Host/AmazonLinux/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    if (rpm_check(release:"AL2", cpu:"x86_64", reference:"openssl-1.0.2k-12.amzn2.0.1")) flag++;
    if (rpm_check(release:"AL2", cpu:"x86_64", reference:"openssl-debuginfo-1.0.2k-12.amzn2.0.1")) flag++;
    if (rpm_check(release:"AL2", cpu:"x86_64", reference:"openssl-devel-1.0.2k-12.amzn2.0.1")) flag++;
    if (rpm_check(release:"AL2", cpu:"x86_64", reference:"openssl-libs-1.0.2k-12.amzn2.0.1")) flag++;
    if (rpm_check(release:"AL2", cpu:"x86_64", reference:"openssl-perl-1.0.2k-12.amzn2.0.1")) flag++;
    if (rpm_check(release:"AL2", cpu:"x86_64", reference:"openssl-static-1.0.2k-12.amzn2.0.1")) 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, "openssl / openssl-debuginfo / openssl-devel / openssl-libs / etc");
    }
    
  • NASL familyNewStart CGSL Local Security Checks
    NASL idNEWSTART_CGSL_NS-SA-2019-0033_OPENSSL.NASL
    descriptionThe remote NewStart CGSL host, running version CORE 5.04 / MAIN 5.04, has openssl packages installed that are affected by multiple vulnerabilities: - OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an error state mechanism. The intent was that if a fatal error occurred during a handshake then OpenSSL would move into the error state and would immediately fail if you attempted to continue the handshake. This works as designed for the explicit handshake functions (SSL_do_handshake(), SSL_accept() and SSL_connect()), however due to a bug it does not work correctly if SSL_read() or SSL_write() is called directly. In that scenario, if the handshake fails then a fatal error will be returned in the initial function call. If SSL_read()/SSL_write() is subsequently called by the application for the same SSL object then it will succeed and the data is passed without being decrypted/encrypted directly from the SSL/TLS record layer. In order to exploit this issue an application bug would have to be present that resulted in a call to SSL_read()/SSL_write() being issued after having already received a fatal error. OpenSSL version 1.0.2b-1.0.2m are affected. Fixed in OpenSSL 1.0.2n. OpenSSL 1.1.0 is not affected. (CVE-2017-3737) - There is an overflow bug in the AVX2 Montgomery multiplication procedure used in exponentiation with 1024-bit moduli. No EC algorithms are affected. Analysis suggests that attacks against RSA and DSA as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH1024 are considered just feasible, because most of the work necessary to deduce information about a private key may be performed offline. The amount of resources required for such an attack would be significant. However, for an attack on TLS to be meaningful, the server would have to share the DH1024 private key among multiple clients, which is no longer an option since CVE-2016-0701. This only affects processors that support the AVX2 but not ADX extensions like Intel Haswell (4th generation). Note: The impact from this issue is similar to CVE-2017-3736, CVE-2017-3732 and CVE-2015-3193. OpenSSL version 1.0.2-1.0.2m and 1.1.0-1.1.0g are affected. Fixed in OpenSSL 1.0.2n. Due to the low severity of this issue we are not issuing a new release of OpenSSL 1.1.0 at this time. The fix will be included in OpenSSL 1.1.0h when it becomes available. The fix is also available in commit e502cc86d in the OpenSSL git repository. (CVE-2017-3738) - There is a carry propagating bug in the x86_64 Montgomery squaring procedure in OpenSSL before 1.0.2m and 1.1.0 before 1.1.0g. No EC algorithms are affected. Analysis suggests that attacks against RSA and DSA as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH are considered just feasible (although very difficult) because most of the work necessary to deduce information about a private key may be performed offline. The amount of resources required for such an attack would be very significant and likely only accessible to a limited number of attackers. An attacker would additionally need online access to an unpatched system using the target private key in a scenario with persistent DH parameters and a private key that is shared between multiple clients. This only affects processors that support the BMI1, BMI2 and ADX extensions like Intel Broadwell (5th generation) and later or AMD Ryzen. (CVE-2017-3736) - OpenSSL 0.9.7 before 0.9.7l and 0.9.8 before 0.9.8d allows remote attackers to cause a denial of service (infinite loop and memory consumption) via malformed ASN.1 structures that trigger an improperly handled error condition. (CVE-2006-2937) - OpenSSL 0.9.7 before 0.9.7l, 0.9.8 before 0.9.8d, and earlier versions allows attackers to cause a denial of service (CPU consumption) via parasitic public keys with large (1) public exponent or (2) public modulus values in X.509 certificates that require extra time to process when using RSA signature verification. (CVE-2006-2940) - Buffer overflow in the SSL_get_shared_ciphers function in OpenSSL 0.9.7 before 0.9.7l, 0.9.8 before 0.9.8d, and earlier versions has unspecified impact and remote attack vectors involving a long list of ciphers. (CVE-2006-3738) - OpenSSL before 0.9.7, 0.9.7 before 0.9.7k, and 0.9.8 before 0.9.8c, when using an RSA key with exponent 3, removes PKCS-1 padding before generating a hash, which allows remote attackers to forge a PKCS #1 v1.5 signature that is signed by that RSA key and prevents OpenSSL from correctly verifying X.509 and other certificates that use PKCS #1. (CVE-2006-4339) - The get_server_hello function in the SSLv2 client code in OpenSSL 0.9.7 before 0.9.7l, 0.9.8 before 0.9.8d, and earlier versions allows remote servers to cause a denial of service (client crash) via unknown vectors that trigger a null pointer dereference. (CVE-2006-4343) - The BN_from_montgomery function in crypto/bn/bn_mont.c in OpenSSL 0.9.8e and earlier does not properly perform Montgomery multiplication, which might allow local users to conduct a side-channel attack and retrieve RSA private keys. (CVE-2007-3108) - Off-by-one error in the DTLS implementation in OpenSSL 0.9.8 before 0.9.8f allows remote attackers to execute arbitrary code via unspecified vectors. (CVE-2007-4995) - Off-by-one error in the SSL_get_shared_ciphers function in OpenSSL 0.9.7 up to 0.9.7l, and 0.9.8 up to 0.9.8f, might allow remote attackers to execute arbitrary code via a crafted packet that triggers a one-byte buffer underflow. NOTE: this issue was introduced as a result of a fix for CVE-2006-3738. As of 20071012, it is unknown whether code execution is possible. (CVE-2007-5135) - Double free vulnerability in OpenSSL 0.9.8f and 0.9.8g, when the TLS server name extensions are enabled, allows remote attackers to cause a denial of service (crash) via a malformed Client Hello packet. NOTE: some of these details are obtained from third party information. (CVE-2008-0891) - OpenSSL 0.9.8f and 0.9.8g allows remote attackers to cause a denial of service (crash) via a TLS handshake that omits the Server Key Exchange message and uses particular cipher suites, which triggers a NULL pointer dereference. (CVE-2008-1672) - The dtls1_buffer_record function in ssl/d1_pkt.c in OpenSSL 0.9.8k and earlier 0.9.8 versions allows remote attackers to cause a denial of service (memory consumption) via a large series of future epoch DTLS records that are buffered in a queue, aka DTLS record buffer limitation bug. (CVE-2009-1377) - Multiple memory leaks in the dtls1_process_out_of_seq_message function in ssl/d1_both.c in OpenSSL 0.9.8k and earlier 0.9.8 versions allow remote attackers to cause a denial of service (memory consumption) via DTLS records that (1) are duplicates or (2) have sequence numbers much greater than current sequence numbers, aka DTLS fragment handling memory leak. (CVE-2009-1378) - Use-after-free vulnerability in the dtls1_retrieve_buffered_fragment function in ssl/d1_both.c in OpenSSL 1.0.0 Beta 2 allows remote attackers to cause a denial of service (openssl s_client crash) and possibly have unspecified other impact via a DTLS packet, as demonstrated by a packet from a server that uses a crafted server certificate. (CVE-2009-1379) - The TLS protocol, and the SSL protocol 3.0 and possibly earlier, as used in Microsoft Internet Information Services (IIS) 7.0, mod_ssl in the Apache HTTP Server 2.2.14 and earlier, OpenSSL before 0.9.8l, GnuTLS 2.8.5 and earlier, Mozilla Network Security Services (NSS) 3.12.4 and earlier, multiple Cisco products, and other products, does not properly associate renegotiation handshakes with an existing connection, which allows man-in-the-middle attackers to insert data into HTTPS sessions, and possibly other types of sessions protected by TLS or SSL, by sending an unauthenticated request that is processed retroactively by a server in a post- renegotiation context, related to a plaintext injection attack, aka the Project Mogul issue. (CVE-2009-3555) - Memory leak in the zlib_stateful_finish function in crypto/comp/c_zlib.c in OpenSSL 0.9.8l and earlier and 1.0.0 Beta through Beta 4 allows remote attackers to cause a denial of service (memory consumption) via vectors that trigger incorrect calls to the CRYPTO_cleanup_all_ex_data function, as demonstrated by use of SSLv3 and PHP with the Apache HTTP Server, a related issue to CVE-2008-1678. (CVE-2009-4355) - The Cryptographic Message Syntax (CMS) implementation in crypto/cms/cms_asn1.c in OpenSSL before 0.9.8o and 1.x before 1.0.0a does not properly handle structures that contain OriginatorInfo, which allows context-dependent attackers to modify invalid memory locations or conduct double-free attacks, and possibly execute arbitrary code, via unspecified vectors. (CVE-2010-0742) - RSA verification recovery in the EVP_PKEY_verify_recover function in OpenSSL 1.x before 1.0.0a, as used by pkeyutl and possibly other applications, returns uninitialized memory upon failure, which might allow context-dependent attackers to bypass intended key requirements or obtain sensitive information via unspecified vectors. NOTE: some of these details are obtained from third party information. (CVE-2010-1633) - Multiple race conditions in ssl/t1_lib.c in OpenSSL 0.9.8f through 0.9.8o, 1.0.0, and 1.0.0a, when multi- threading and internal caching are enabled on a TLS server, might allow remote attackers to execute arbitrary code via client data that triggers a heap- based buffer overflow, related to (1) the TLS server name extension and (2) elliptic curve cryptography. (CVE-2010-3864) - OpenSSL before 0.9.8q, and 1.0.x before 1.0.0c, when SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG is enabled, does not properly prevent modification of the ciphersuite in the session cache, which allows remote attackers to force the downgrade to an unintended cipher via vectors involving sniffing network traffic to discover a session identifier. (CVE-2010-4180) - ssl/t1_lib.c in OpenSSL 0.9.8h through 0.9.8q and 1.0.0 through 1.0.0c allows remote attackers to cause a denial of service (crash), and possibly obtain sensitive information in applications that use OpenSSL, via a malformed ClientHello handshake message that triggers an out-of-bounds memory access, aka OCSP stapling vulnerability. (CVE-2011-0014) - crypto/x509/x509_vfy.c in OpenSSL 1.0.x before 1.0.0e does not initialize certain structure members, which makes it easier for remote attackers to bypass CRL validation by using a nextUpdate value corresponding to a time in the past. (CVE-2011-3207) - OpenSSL 0.9.8s and 1.0.0f does not properly support DTLS applications, which allows remote attackers to cause a denial of service (crash) via unspecified vectors related to an out-of-bounds read. NOTE: this vulnerability exists because of an incorrect fix for CVE-2011-4108. (CVE-2012-0050) - The asn1_d2i_read_bio function in crypto/asn1/a_d2i_fp.c in OpenSSL before 0.9.8v, 1.0.0 before 1.0.0i, and 1.0.1 before 1.0.1a does not properly interpret integer data, which allows remote attackers to conduct buffer overflow attacks, and cause a denial of service (memory corruption) or possibly have unspecified other impact, via crafted DER data, as demonstrated by an X.509 certificate or an RSA public key. (CVE-2012-2110) - The ssl3_take_mac function in ssl/s3_both.c in OpenSSL 1.0.1 before 1.0.1f allows remote TLS servers to cause a denial of service (NULL pointer dereference and application crash) via a crafted Next Protocol Negotiation record in a TLS handshake. (CVE-2013-4353) - The ssl_get_algorithm2 function in ssl/s3_lib.c in OpenSSL before 1.0.2 obtains a certain version number from an incorrect data structure, which allows remote attackers to cause a denial of service (daemon crash) via crafted traffic from a TLS 1.2 client. (CVE-2013-6449) - The DTLS retransmission implementation in OpenSSL 1.0.0 before 1.0.0l and 1.0.1 before 1.0.1f does not properly maintain data structures for digest and encryption contexts, which might allow man-in-the-middle attackers to trigger the use of a different context and cause a denial of service (application crash) by interfering with packet delivery, related to ssl/d1_both.c and ssl/t1_enc.c. (CVE-2013-6450) - An information disclosure flaw was found in the way OpenSSL handled TLS and DTLS Heartbeat Extension packets. A malicious TLS or DTLS client or server could send a specially crafted TLS or DTLS Heartbeat packet to disclose a limited portion of memory per request from a connected client or server. Note that the disclosed portions of memory could potentially include sensitive information such as private keys. (CVE-2014-0160) - A flaw was found in the way SSL 3.0 handled padding bytes when decrypting messages encrypted using block ciphers in cipher block chaining (CBC) mode. This flaw allows a man-in-the-middle (MITM) attacker to decrypt a selected byte of a cipher text in as few as 256 tries if they are able to force a victim application to repeatedly send the same data over newly created SSL 3.0 connections. (CVE-2014-3566) - A flaw was found in the way the DES/3DES cipher was used as part of the TLS/SSL protocol. A man-in-the-middle attacker could use this flaw to recover some plaintext data by capturing large amounts of encrypted traffic between TLS/SSL server and client if the communication used a DES/3DES based ciphersuite. (CVE-2016-2183) Note that Nessus has not tested for this issue but has instead relied only on the application
    last seen2020-06-01
    modified2020-06-02
    plugin id127201
    published2019-08-12
    reporterThis script is Copyright (C) 2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/127201
    titleNewStart CGSL CORE 5.04 / MAIN 5.04 : openssl Multiple Vulnerabilities (NS-SA-2019-0033)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    # The descriptive text and package checks in this plugin were
    # extracted from ZTE advisory NS-SA-2019-0033. The text
    # itself is copyright (C) ZTE, Inc.
    
    include("compat.inc");
    
    if (description)
    {
      script_id(127201);
      script_version("1.3");
      script_cvs_date("Date: 2019/09/24 11:01:33");
    
      script_cve_id(
        "CVE-2006-2937",
        "CVE-2006-2940",
        "CVE-2006-3738",
        "CVE-2006-4339",
        "CVE-2006-4343",
        "CVE-2007-3108",
        "CVE-2007-4995",
        "CVE-2007-5135",
        "CVE-2008-0891",
        "CVE-2008-1672",
        "CVE-2009-1377",
        "CVE-2009-1378",
        "CVE-2009-1379",
        "CVE-2009-3555",
        "CVE-2009-4355",
        "CVE-2010-0742",
        "CVE-2010-1633",
        "CVE-2010-3864",
        "CVE-2010-4180",
        "CVE-2011-0014",
        "CVE-2011-3207",
        "CVE-2012-0050",
        "CVE-2012-2110",
        "CVE-2013-4353",
        "CVE-2013-6449",
        "CVE-2013-6450",
        "CVE-2014-0160",
        "CVE-2014-3566",
        "CVE-2016-2183",
        "CVE-2017-3736",
        "CVE-2017-3737",
        "CVE-2017-3738"
      );
      script_bugtraq_id(92630);
    
      script_name(english:"NewStart CGSL CORE 5.04 / MAIN 5.04 : openssl Multiple Vulnerabilities (NS-SA-2019-0033)");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote machine is affected by multiple vulnerabilities.");
      script_set_attribute(attribute:"description", value:
    "The remote NewStart CGSL host, running version CORE 5.04 / MAIN 5.04, has openssl packages installed that are affected
    by multiple vulnerabilities:
    
      - OpenSSL 1.0.2 (starting from version 1.0.2b) introduced
        an error state mechanism. The intent was that if a
        fatal error occurred during a handshake then OpenSSL
        would move into the error state and would immediately
        fail if you attempted to continue the handshake. This
        works as designed for the explicit handshake functions
        (SSL_do_handshake(), SSL_accept() and SSL_connect()),
        however due to a bug it does not work correctly if
        SSL_read() or SSL_write() is called directly. In that
        scenario, if the handshake fails then a fatal error will
        be returned in the initial function call. If
        SSL_read()/SSL_write() is subsequently called by the
        application for the same SSL object then it will succeed
        and the data is passed without being decrypted/encrypted
        directly from the SSL/TLS record layer. In order to
        exploit this issue an application bug would have to be
        present that resulted in a call to
        SSL_read()/SSL_write() being issued after having already
        received a fatal error. OpenSSL version 1.0.2b-1.0.2m
        are affected. Fixed in OpenSSL 1.0.2n. OpenSSL 1.1.0 is
        not affected. (CVE-2017-3737)
    
      - There is an overflow bug in the AVX2 Montgomery
        multiplication procedure used in exponentiation with
        1024-bit moduli. No EC algorithms are affected. Analysis
        suggests that attacks against RSA and DSA as a result of
        this defect would be very difficult to perform and are
        not believed likely. Attacks against DH1024 are
        considered just feasible, because most of the work
        necessary to deduce information about a private key may
        be performed offline. The amount of resources required
        for such an attack would be significant. However, for an
        attack on TLS to be meaningful, the server would have to
        share the DH1024 private key among multiple clients,
        which is no longer an option since CVE-2016-0701. This
        only affects processors that support the AVX2 but not
        ADX extensions like Intel Haswell (4th generation).
        Note: The impact from this issue is similar to
        CVE-2017-3736, CVE-2017-3732 and CVE-2015-3193. OpenSSL
        version 1.0.2-1.0.2m and 1.1.0-1.1.0g are affected.
        Fixed in OpenSSL 1.0.2n. Due to the low severity of this
        issue we are not issuing a new release of OpenSSL 1.1.0
        at this time. The fix will be included in OpenSSL 1.1.0h
        when it becomes available. The fix is also available in
        commit e502cc86d in the OpenSSL git repository.
        (CVE-2017-3738)
    
      - There is a carry propagating bug in the x86_64
        Montgomery squaring procedure in OpenSSL before 1.0.2m
        and 1.1.0 before 1.1.0g. No EC algorithms are affected.
        Analysis suggests that attacks against RSA and DSA as a
        result of this defect would be very difficult to perform
        and are not believed likely. Attacks against DH are
        considered just feasible (although very difficult)
        because most of the work necessary to deduce information
        about a private key may be performed offline. The amount
        of resources required for such an attack would be very
        significant and likely only accessible to a limited
        number of attackers. An attacker would additionally need
        online access to an unpatched system using the target
        private key in a scenario with persistent DH parameters
        and a private key that is shared between multiple
        clients. This only affects processors that support the
        BMI1, BMI2 and ADX extensions like Intel Broadwell (5th
        generation) and later or AMD Ryzen. (CVE-2017-3736)
    
      - OpenSSL 0.9.7 before 0.9.7l and 0.9.8 before 0.9.8d
        allows remote attackers to cause a denial of service
        (infinite loop and memory consumption) via malformed
        ASN.1 structures that trigger an improperly handled
        error condition. (CVE-2006-2937)
    
      - OpenSSL 0.9.7 before 0.9.7l, 0.9.8 before 0.9.8d, and
        earlier versions allows attackers to cause a denial of
        service (CPU consumption) via parasitic public keys with
        large (1) public exponent or (2) public modulus
        values in X.509 certificates that require extra time to
        process when using RSA signature verification.
        (CVE-2006-2940)
    
      - Buffer overflow in the SSL_get_shared_ciphers function
        in OpenSSL 0.9.7 before 0.9.7l, 0.9.8 before 0.9.8d, and
        earlier versions has unspecified impact and remote
        attack vectors involving a long list of ciphers.
        (CVE-2006-3738)
    
      - OpenSSL before 0.9.7, 0.9.7 before 0.9.7k, and 0.9.8
        before 0.9.8c, when using an RSA key with exponent 3,
        removes PKCS-1 padding before generating a hash, which
        allows remote attackers to forge a PKCS #1 v1.5
        signature that is signed by that RSA key and prevents
        OpenSSL from correctly verifying X.509 and other
        certificates that use PKCS #1. (CVE-2006-4339)
    
      - The get_server_hello function in the SSLv2 client code
        in OpenSSL 0.9.7 before 0.9.7l, 0.9.8 before 0.9.8d, and
        earlier versions allows remote servers to cause a denial
        of service (client crash) via unknown vectors that
        trigger a null pointer dereference. (CVE-2006-4343)
    
      - The BN_from_montgomery function in crypto/bn/bn_mont.c
        in OpenSSL 0.9.8e and earlier does not properly perform
        Montgomery multiplication, which might allow local users
        to conduct a side-channel attack and retrieve RSA
        private keys. (CVE-2007-3108)
    
      - Off-by-one error in the DTLS implementation in OpenSSL
        0.9.8 before 0.9.8f allows remote attackers to execute
        arbitrary code via unspecified vectors. (CVE-2007-4995)
    
      - Off-by-one error in the SSL_get_shared_ciphers function
        in OpenSSL 0.9.7 up to 0.9.7l, and 0.9.8 up to 0.9.8f,
        might allow remote attackers to execute arbitrary code
        via a crafted packet that triggers a one-byte buffer
        underflow. NOTE: this issue was introduced as a result
        of a fix for CVE-2006-3738. As of 20071012, it is
        unknown whether code execution is possible.
        (CVE-2007-5135)
    
      - Double free vulnerability in OpenSSL 0.9.8f and 0.9.8g,
        when the TLS server name extensions are enabled, allows
        remote attackers to cause a denial of service (crash)
        via a malformed Client Hello packet. NOTE: some of these
        details are obtained from third party information.
        (CVE-2008-0891)
    
      - OpenSSL 0.9.8f and 0.9.8g allows remote attackers to
        cause a denial of service (crash) via a TLS handshake
        that omits the Server Key Exchange message and uses
        particular cipher suites, which triggers a NULL
        pointer dereference. (CVE-2008-1672)
    
      - The dtls1_buffer_record function in ssl/d1_pkt.c in
        OpenSSL 0.9.8k and earlier 0.9.8 versions allows remote
        attackers to cause a denial of service (memory
        consumption) via a large series of future epoch DTLS
        records that are buffered in a queue, aka DTLS record
        buffer limitation bug. (CVE-2009-1377)
    
      - Multiple memory leaks in the
        dtls1_process_out_of_seq_message function in
        ssl/d1_both.c in OpenSSL 0.9.8k and earlier 0.9.8
        versions allow remote attackers to cause a denial of
        service (memory consumption) via DTLS records that (1)
        are duplicates or (2) have sequence numbers much greater
        than current sequence numbers, aka DTLS fragment
        handling memory leak. (CVE-2009-1378)
    
      - Use-after-free vulnerability in the
        dtls1_retrieve_buffered_fragment function in
        ssl/d1_both.c in OpenSSL 1.0.0 Beta 2 allows remote
        attackers to cause a denial of service (openssl s_client
        crash) and possibly have unspecified other impact via a
        DTLS packet, as demonstrated by a packet from a server
        that uses a crafted server certificate. (CVE-2009-1379)
    
      - The TLS protocol, and the SSL protocol 3.0 and possibly
        earlier, as used in Microsoft Internet Information
        Services (IIS) 7.0, mod_ssl in the Apache HTTP Server
        2.2.14 and earlier, OpenSSL before 0.9.8l, GnuTLS 2.8.5
        and earlier, Mozilla Network Security Services (NSS)
        3.12.4 and earlier, multiple Cisco products, and other
        products, does not properly associate renegotiation
        handshakes with an existing connection, which allows
        man-in-the-middle attackers to insert data into HTTPS
        sessions, and possibly other types of sessions protected
        by TLS or SSL, by sending an unauthenticated request
        that is processed retroactively by a server in a post-
        renegotiation context, related to a plaintext
        injection attack, aka the Project Mogul issue.
        (CVE-2009-3555)
    
      - Memory leak in the zlib_stateful_finish function in
        crypto/comp/c_zlib.c in OpenSSL 0.9.8l and earlier and
        1.0.0 Beta through Beta 4 allows remote attackers to
        cause a denial of service (memory consumption) via
        vectors that trigger incorrect calls to the
        CRYPTO_cleanup_all_ex_data function, as demonstrated by
        use of SSLv3 and PHP with the Apache HTTP Server, a
        related issue to CVE-2008-1678. (CVE-2009-4355)
    
      - The Cryptographic Message Syntax (CMS) implementation in
        crypto/cms/cms_asn1.c in OpenSSL before 0.9.8o and 1.x
        before 1.0.0a does not properly handle structures that
        contain OriginatorInfo, which allows context-dependent
        attackers to modify invalid memory locations or conduct
        double-free attacks, and possibly execute arbitrary
        code, via unspecified vectors. (CVE-2010-0742)
    
      - RSA verification recovery in the EVP_PKEY_verify_recover
        function in OpenSSL 1.x before 1.0.0a, as used by
        pkeyutl and possibly other applications, returns
        uninitialized memory upon failure, which might allow
        context-dependent attackers to bypass intended key
        requirements or obtain sensitive information via
        unspecified vectors. NOTE: some of these details are
        obtained from third party information. (CVE-2010-1633)
    
      - Multiple race conditions in ssl/t1_lib.c in OpenSSL
        0.9.8f through 0.9.8o, 1.0.0, and 1.0.0a, when multi-
        threading and internal caching are enabled on a TLS
        server, might allow remote attackers to execute
        arbitrary code via client data that triggers a heap-
        based buffer overflow, related to (1) the TLS server
        name extension and (2) elliptic curve cryptography.
        (CVE-2010-3864)
    
      - OpenSSL before 0.9.8q, and 1.0.x before 1.0.0c, when
        SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG is enabled, does
        not properly prevent modification of the ciphersuite in
        the session cache, which allows remote attackers to
        force the downgrade to an unintended cipher via vectors
        involving sniffing network traffic to discover a session
        identifier. (CVE-2010-4180)
    
      - ssl/t1_lib.c in OpenSSL 0.9.8h through 0.9.8q and 1.0.0
        through 1.0.0c allows remote attackers to cause a denial
        of service (crash), and possibly obtain sensitive
        information in applications that use OpenSSL, via a
        malformed ClientHello handshake message that triggers an
        out-of-bounds memory access, aka OCSP stapling
        vulnerability. (CVE-2011-0014)
    
      - crypto/x509/x509_vfy.c in OpenSSL 1.0.x before 1.0.0e
        does not initialize certain structure members, which
        makes it easier for remote attackers to bypass CRL
        validation by using a nextUpdate value corresponding to
        a time in the past. (CVE-2011-3207)
    
      - OpenSSL 0.9.8s and 1.0.0f does not properly support DTLS
        applications, which allows remote attackers to cause a
        denial of service (crash) via unspecified vectors
        related to an out-of-bounds read. NOTE: this
        vulnerability exists because of an incorrect fix for
        CVE-2011-4108. (CVE-2012-0050)
    
      - The asn1_d2i_read_bio function in crypto/asn1/a_d2i_fp.c
        in OpenSSL before 0.9.8v, 1.0.0 before 1.0.0i, and 1.0.1
        before 1.0.1a does not properly interpret integer data,
        which allows remote attackers to conduct buffer overflow
        attacks, and cause a denial of service (memory
        corruption) or possibly have unspecified other impact,
        via crafted DER data, as demonstrated by an X.509
        certificate or an RSA public key. (CVE-2012-2110)
    
      - The ssl3_take_mac function in ssl/s3_both.c in OpenSSL
        1.0.1 before 1.0.1f allows remote TLS servers to cause a
        denial of service (NULL pointer dereference and
        application crash) via a crafted Next Protocol
        Negotiation record in a TLS handshake. (CVE-2013-4353)
    
      - The ssl_get_algorithm2 function in ssl/s3_lib.c in
        OpenSSL before 1.0.2 obtains a certain version number
        from an incorrect data structure, which allows remote
        attackers to cause a denial of service (daemon crash)
        via crafted traffic from a TLS 1.2 client.
        (CVE-2013-6449)
    
      - The DTLS retransmission implementation in OpenSSL 1.0.0
        before 1.0.0l and 1.0.1 before 1.0.1f does not properly
        maintain data structures for digest and encryption
        contexts, which might allow man-in-the-middle attackers
        to trigger the use of a different context and cause a
        denial of service (application crash) by interfering
        with packet delivery, related to ssl/d1_both.c and
        ssl/t1_enc.c. (CVE-2013-6450)
    
      - An information disclosure flaw was found in the way
        OpenSSL handled TLS and DTLS Heartbeat Extension
        packets. A malicious TLS or DTLS client or server could
        send a specially crafted TLS or DTLS Heartbeat packet to
        disclose a limited portion of memory per request from a
        connected client or server. Note that the disclosed
        portions of memory could potentially include sensitive
        information such as private keys. (CVE-2014-0160)
    
      - A flaw was found in the way SSL 3.0 handled padding
        bytes when decrypting messages encrypted using block
        ciphers in cipher block chaining (CBC) mode. This flaw
        allows a man-in-the-middle (MITM) attacker to decrypt a
        selected byte of a cipher text in as few as 256 tries if
        they are able to force a victim application to
        repeatedly send the same data over newly created SSL 3.0
        connections. (CVE-2014-3566)
    
      - A flaw was found in the way the DES/3DES cipher was used
        as part of the TLS/SSL protocol. A man-in-the-middle
        attacker could use this flaw to recover some plaintext
        data by capturing large amounts of encrypted traffic
        between TLS/SSL server and client if the communication
        used a DES/3DES based ciphersuite. (CVE-2016-2183)
    
    Note that Nessus has not tested for this issue but has instead relied only on the application's self-reported version
    number.");
      script_set_attribute(attribute:"see_also", value:"http://security.gd-linux.com/notice/NS-SA-2019-0033");
      script_set_attribute(attribute:"solution", value:
    "Upgrade the vulnerable CGSL openssl packages. Note that updated packages may not be available yet. Please contact ZTE
    for more information.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
      script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
      script_set_attribute(attribute:"cvss_score_source", value:"CVE-2006-3738");
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
      script_set_attribute(attribute:"exploit_framework_core", value:"true");
      script_cwe_id(119, 189, 287, 310, 399);
    
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2006/09/05");
      script_set_attribute(attribute:"patch_publication_date", value:"2019/07/17");
      script_set_attribute(attribute:"plugin_publication_date", value:"2019/08/12");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_family(english:"NewStart CGSL Local Security Checks");
    
      script_copyright(english:"This script is Copyright (C) 2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/ZTE-CGSL/release", "Host/ZTE-CGSL/rpm-list", "Host/cpu");
    
      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/ZTE-CGSL/release");
    if (isnull(release) || release !~ "^CGSL (MAIN|CORE)") audit(AUDIT_OS_NOT, "NewStart Carrier Grade Server Linux");
    
    if (release !~ "CGSL CORE 5.04" &&
        release !~ "CGSL MAIN 5.04")
      audit(AUDIT_OS_NOT, 'NewStart CGSL CORE 5.04 / NewStart CGSL MAIN 5.04');
    
    if (!get_kb_item("Host/ZTE-CGSL/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, "NewStart Carrier Grade Server Linux", cpu);
    
    flag = 0;
    
    pkgs = {
      "CGSL CORE 5.04": [
        "openssl-1.0.2k-12.el7.cgslv5lite.0.1.g0e5ddfd",
        "openssl-crypto-1.0.2k-12.el7.cgslv5lite.0.1.g0e5ddfd",
        "openssl-debuginfo-1.0.2k-12.el7.cgslv5lite.0.1.g0e5ddfd",
        "openssl-devel-1.0.2k-12.el7.cgslv5lite.0.1.g0e5ddfd",
        "openssl-libs-1.0.2k-12.el7.cgslv5lite.0.1.g0e5ddfd",
        "openssl-perl-1.0.2k-12.el7.cgslv5lite.0.1.g0e5ddfd",
        "openssl-static-1.0.2k-12.el7.cgslv5lite.0.1.g0e5ddfd"
      ],
      "CGSL MAIN 5.04": [
        "openssl-1.0.2k-12.el7.cgslv5",
        "openssl-debuginfo-1.0.2k-12.el7.cgslv5",
        "openssl-devel-1.0.2k-12.el7.cgslv5",
        "openssl-libs-1.0.2k-12.el7.cgslv5",
        "openssl-perl-1.0.2k-12.el7.cgslv5",
        "openssl-static-1.0.2k-12.el7.cgslv5"
      ]
    };
    pkg_list = pkgs[release];
    
    foreach (pkg in pkg_list)
      if (rpm_check(release:"ZTE " + release, 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, "openssl");
    }
    
  • NASL familyUbuntu Local Security Checks
    NASL idUBUNTU_USN-2883-1.NASL
    descriptionAntonio Sanso discovered that OpenSSL reused the same private DH exponent for the life of a server process when configured with a X9.42 style parameter file. This could allow a remote attacker to possibly discover the server
    last seen2020-06-01
    modified2020-06-02
    plugin id88487
    published2016-01-29
    reporterUbuntu Security Notice (C) 2016-2019 Canonical, Inc. / NASL script (C) 2016-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/88487
    titleUbuntu 15.10 : openssl vulnerability (USN-2883-1)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Ubuntu Security Notice USN-2883-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(88487);
      script_version("2.13");
      script_cvs_date("Date: 2019/09/18 12:31:45");
    
      script_cve_id("CVE-2016-0701");
      script_xref(name:"USN", value:"2883-1");
    
      script_name(english:"Ubuntu 15.10 : openssl vulnerability (USN-2883-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:
    "Antonio Sanso discovered that OpenSSL reused the same private DH
    exponent for the life of a server process when configured with a X9.42
    style parameter file. This could allow a remote attacker to possibly
    discover the server's private DH exponent when being used with
    non-safe primes.
    
    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/2883-1/"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Update the affected libssl1.0.0 package."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:H/Au:N/C:P/I:N/A:N");
      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:N/UI:N/S:U/C:L/I:N/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:libssl1.0.0");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:15.10");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2016/02/15");
      script_set_attribute(attribute:"patch_publication_date", value:"2016/01/28");
      script_set_attribute(attribute:"plugin_publication_date", value:"2016/01/29");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"Ubuntu Security Notice (C) 2016-2019 Canonical, Inc. / NASL script (C) 2016-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:"^(15\.10)$", string:release)) audit(AUDIT_OS_NOT, "Ubuntu 15.10", "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:"15.10", pkgname:"libssl1.0.0", pkgver:"1.0.2d-0ubuntu1.3")) flag++;
    
    if (flag)
    {
      security_report_v4(
        port       : 0,
        severity   : SECURITY_NOTE,
        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, "libssl1.0.0");
    }
    
  • NASL familySuSE Local Security Checks
    NASL idSUSE_SU-2017-3343-1.NASL
    descriptionThis update for openssl fixes the following issues : - OpenSSL Security Advisory [07 Dec 2017] - CVE-2017-3737: OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an \
    last seen2020-06-01
    modified2020-06-02
    plugin id105353
    published2017-12-18
    reporterThis script is Copyright (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/105353
    titleSUSE SLED12 / SLES12 Security Update : openssl (SUSE-SU-2017:3343-1)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from SUSE update advisory SUSE-SU-2017:3343-1.
    # The text itself is copyright (C) SUSE.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(105353);
      script_version("3.8");
      script_cvs_date("Date: 2019/09/11 11:22:17");
    
      script_cve_id("CVE-2015-3193", "CVE-2016-0701", "CVE-2017-3732", "CVE-2017-3736", "CVE-2017-3737", "CVE-2017-3738");
    
      script_name(english:"SUSE SLED12 / SLES12 Security Update : openssl (SUSE-SU-2017:3343-1)");
      script_summary(english:"Checks rpm output for the updated packages.");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote SUSE host is missing one or more security updates."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "This update for openssl fixes the following issues :
    
      - OpenSSL Security Advisory [07 Dec 2017]
    
      - CVE-2017-3737: OpenSSL 1.0.2 (starting from version
        1.0.2b) introduced an \'error state\' mechanism. The
        intent was that if a fatal error occurred during a
        handshake then OpenSSL would move into the error state
        and would immediately fail if you attempted to continue
        the handshake. This works as designed for the explicit
        handshake functions (SSL_do_handshake(), SSL_accept()
        and SSL_connect()), however due to a bug it does not
        work correctly if SSL_read() or SSL_write() is called
        directly. In that scenario, if the handshake fails then
        a fatal error will be returned in the initial function
        call. If SSL_read()/SSL_write() is subsequently called
        by the application for the same SSL object then it will
        succeed and the data is passed without being
        decrypted/encrypted directly from the SSL/TLS record
        layer. In order to exploit this issue an application bug
        would have to be present that resulted in a call to
        SSL_read()/SSL_write() being issued after having already
        received a fatal error. OpenSSL version 1.0.2b-1.0.2m
        are affected. Fixed in OpenSSL 1.0.2n. OpenSSL 1.1.0 is
        not affected. (bsc#1071905)
    
      - CVE-2017-3738: There is an overflow bug in the AVX2
        Montgomery multiplication procedure used in
        exponentiation with 1024-bit moduli. No EC algorithms
        are affected. Analysis suggests that attacks against RSA
        and DSA as a result of this defect would be very
        difficult to perform and are not believed likely.
        Attacks against DH1024 are considered just feasible,
        because most of the work necessary to deduce information
        about a private key may be performed offline. The amount
        of resources required for such an attack would be
        significant. However, for an attack on TLS to be
        meaningful, the server would have to share the DH1024
        private key among multiple clients, which is no longer
        an option since CVE-2016-0701. This only affects
        processors that support the AVX2 but not ADX extensions
        like Intel Haswell (4th generation). Note: The impact
        from this issue is similar to CVE-2017-3736,
        CVE-2017-3732 and CVE-2015-3193. (bsc#1071906)
    
    Note that Tenable Network Security has extracted the preceding
    description block directly from the SUSE 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://bugzilla.suse.com/show_bug.cgi?id=1071905"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.suse.com/show_bug.cgi?id=1071906"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://www.suse.com/security/cve/CVE-2017-3737/"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://www.suse.com/security/cve/CVE-2017-3738/"
      );
      # https://www.suse.com/support/update/announcement/2017/suse-su-20173343-1/
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?6ecfb0bf"
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "To install this SUSE Security Update use YaST online_update.
    Alternatively you can run the command listed for your product :
    
    SUSE Linux Enterprise Software Development Kit 12-SP3:zypper in -t
    patch SUSE-SLE-SDK-12-SP3-2017-2097=1
    
    SUSE Linux Enterprise Software Development Kit 12-SP2:zypper in -t
    patch SUSE-SLE-SDK-12-SP2-2017-2097=1
    
    SUSE Linux Enterprise Server for Raspberry Pi 12-SP2:zypper in -t
    patch SUSE-SLE-RPI-12-SP2-2017-2097=1
    
    SUSE Linux Enterprise Server 12-SP3:zypper in -t patch
    SUSE-SLE-SERVER-12-SP3-2017-2097=1
    
    SUSE Linux Enterprise Server 12-SP2:zypper in -t patch
    SUSE-SLE-SERVER-12-SP2-2017-2097=1
    
    SUSE Linux Enterprise Desktop 12-SP3:zypper in -t patch
    SUSE-SLE-DESKTOP-12-SP3-2017-2097=1
    
    SUSE Linux Enterprise Desktop 12-SP2:zypper in -t patch
    SUSE-SLE-DESKTOP-12-SP2-2017-2097=1
    
    SUSE Container as a Service Platform ALL:zypper in -t patch
    SUSE-CAASP-ALL-2017-2097=1
    
    OpenStack Cloud Magnum Orchestration 7:zypper in -t patch
    SUSE-OpenStack-Cloud-Magnum-Orchestration-7-2017-2097=1
    
    To bring your system up-to-date, use 'zypper patch'."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:N");
      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:N/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:novell:suse_linux:libopenssl-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:libopenssl1_0_0");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:libopenssl1_0_0-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:libopenssl1_0_0-hmac");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:openssl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:openssl-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:openssl-debugsource");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:suse_linux:12");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2015/12/06");
      script_set_attribute(attribute:"patch_publication_date", value:"2017/12/15");
      script_set_attribute(attribute:"plugin_publication_date", value:"2017/12/18");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
      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)") audit(AUDIT_OS_NOT, "SUSE");
    os_ver = pregmatch(pattern: "^(SLE(S|D)\d+)", string:release);
    if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "SUSE");
    os_ver = os_ver[1];
    if (! preg(pattern:"^(SLED12|SLES12)$", string:os_ver)) audit(AUDIT_OS_NOT, "SUSE SLED12 / SLES12", "SUSE " + os_ver);
    
    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 " + os_ver, cpu);
    
    sp = get_kb_item("Host/SuSE/patchlevel");
    if (isnull(sp)) sp = "0";
    if (os_ver == "SLES12" && (! preg(pattern:"^(2|3)$", string:sp))) audit(AUDIT_OS_NOT, "SLES12 SP2/3", os_ver + " SP" + sp);
    if (os_ver == "SLED12" && (! preg(pattern:"^(2|3)$", string:sp))) audit(AUDIT_OS_NOT, "SLED12 SP2/3", os_ver + " SP" + sp);
    
    
    flag = 0;
    if (rpm_check(release:"SLES12", sp:"3", reference:"libopenssl-devel-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"3", reference:"libopenssl1_0_0-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"3", reference:"libopenssl1_0_0-debuginfo-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"3", reference:"libopenssl1_0_0-hmac-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"3", reference:"openssl-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"3", reference:"openssl-debuginfo-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"3", reference:"openssl-debugsource-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"3", reference:"libopenssl1_0_0-32bit-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"3", reference:"libopenssl1_0_0-debuginfo-32bit-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"3", reference:"libopenssl1_0_0-hmac-32bit-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"2", reference:"libopenssl-devel-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"2", reference:"libopenssl1_0_0-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"2", reference:"libopenssl1_0_0-debuginfo-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"2", reference:"libopenssl1_0_0-hmac-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"2", reference:"openssl-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"2", reference:"openssl-debuginfo-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"2", reference:"openssl-debugsource-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"2", reference:"libopenssl1_0_0-32bit-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"2", reference:"libopenssl1_0_0-debuginfo-32bit-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLES12", sp:"2", reference:"libopenssl1_0_0-hmac-32bit-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"3", cpu:"x86_64", reference:"libopenssl-devel-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"3", cpu:"x86_64", reference:"libopenssl1_0_0-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"3", cpu:"x86_64", reference:"libopenssl1_0_0-32bit-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"3", cpu:"x86_64", reference:"libopenssl1_0_0-debuginfo-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"3", cpu:"x86_64", reference:"libopenssl1_0_0-debuginfo-32bit-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"3", cpu:"x86_64", reference:"openssl-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"3", cpu:"x86_64", reference:"openssl-debuginfo-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"3", cpu:"x86_64", reference:"openssl-debugsource-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"2", cpu:"x86_64", reference:"libopenssl-devel-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"2", cpu:"x86_64", reference:"libopenssl1_0_0-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"2", cpu:"x86_64", reference:"libopenssl1_0_0-32bit-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"2", cpu:"x86_64", reference:"libopenssl1_0_0-debuginfo-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"2", cpu:"x86_64", reference:"libopenssl1_0_0-debuginfo-32bit-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"2", cpu:"x86_64", reference:"openssl-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"2", cpu:"x86_64", reference:"openssl-debuginfo-1.0.2j-60.20.2")) flag++;
    if (rpm_check(release:"SLED12", sp:"2", cpu:"x86_64", reference:"openssl-debugsource-1.0.2j-60.20.2")) 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, "openssl");
    }
    

Packetstorm

data sourcehttps://packetstormsecurity.com/files/download/143369/orionbrowser79-mitm.txt
idPACKETSTORM:143369
last seen2017-07-15
published2017-07-14
reporterMaXe
sourcehttps://packetstormsecurity.com/files/143369/Orion-Elite-Hidden-IP-Browser-Pro-7.9-OpenSSL-Tor-Man-In-The-Middle.html
titleOrion Elite Hidden IP Browser Pro 7.9 OpenSSL / Tor / Man-In-The-Middle

The Hacker News

idTHN:B18DB0BB2ACAF13D6FBF3445755365E3
last seen2018-01-27
modified2016-01-29
published2016-01-28
reporterMohit Kumar
sourcehttps://thehackernews.com/2016/01/openssl-https-encryption.html
titleCritical OpenSSL Flaw Allows Hackers to Decrypt HTTPS Traffic

References