Lucene search

K
nessusThis script is Copyright (C) 2017-2018 Tenable Network Security, Inc.ALA_ALAS-2017-930.NASL
HistoryDec 07, 2017 - 12:00 a.m.

Amazon Linux AMI : postgresql95 / postgresql96 (ALAS-2017-930)

2017-12-0700:00:00
This script is Copyright (C) 2017-2018 Tenable Network Security, Inc.
www.tenable.com
44

7.2 High

CVSS2

Attack Vector

LOCAL

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:L/AC:L/Au:N/C:C/I:C/A:C

8.1 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H

0.008 Low

EPSS

Percentile

81.2%

Privilege escalation flaws were found in the initialization scripts of PostgreSQL. A remote attacker with access to the postgres user account could use these flaws to obtain root access on the server machine.(CVE-2017-12172)

INSERT … ON CONFLICT DO UPDATE commands in PostgreSQL disclose table contents that the invoker lacks privilege to read. These exploits affect only tables where the attacker lacks full read access but has both INSERT and UPDATE privileges. Exploits bypass row level security policies and lack of SELECT privilege.(CVE-2017-15099)

Invalid json_populate_recordset or jsonb_populate_recordset function calls in PostgreSQL can crash the server or disclose a few bytes of server memory.(CVE-2017-15098)

#
# (C) Tenable Network Security, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Amazon Linux AMI Security Advisory ALAS-2017-930.
#

include("compat.inc");

if (description)
{
  script_id(105054);
  script_version("3.8");
  script_cvs_date("Date: 2018/04/18 15:09:36");

  script_cve_id("CVE-2017-12172", "CVE-2017-15098", "CVE-2017-15099");
  script_xref(name:"ALAS", value:"2017-930");

  script_name(english:"Amazon Linux AMI : postgresql95 / postgresql96 (ALAS-2017-930)");
  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:
"Privilege escalation flaws were found in the initialization scripts of
PostgreSQL. A remote attacker with access to the postgres user account
could use these flaws to obtain root access on the server
machine.(CVE-2017-12172)

INSERT ... ON CONFLICT DO UPDATE commands in PostgreSQL disclose table
contents that the invoker lacks privilege to read. These exploits
affect only tables where the attacker lacks full read access but has
both INSERT and UPDATE privileges. Exploits bypass row level security
policies and lack of SELECT privilege.(CVE-2017-15099)

Invalid json_populate_recordset or jsonb_populate_recordset function
calls in PostgreSQL can crash the server or disclose a few bytes of
server memory.(CVE-2017-15098)"
  );
  script_set_attribute(
    attribute:"see_also",
    value:"https://alas.aws.amazon.com/ALAS-2017-930.html"
  );
  script_set_attribute(
    attribute:"solution", 
    value:
"Run 'yum update postgresql95' to update your system.

Run 'yum update postgresql96' to update your system."
  );
  script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95-contrib");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95-docs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95-libs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95-plperl");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95-plpython26");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95-plpython27");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95-server");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95-static");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql95-test");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96-contrib");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96-docs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96-libs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96-plperl");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96-plpython26");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96-plpython27");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96-server");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96-static");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:postgresql96-test");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:amazon:linux");

  script_set_attribute(attribute:"patch_publication_date", value:"2017/12/05");
  script_set_attribute(attribute:"plugin_publication_date", value:"2017/12/07");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_copyright(english:"This script is Copyright (C) 2017-2018 Tenable Network Security, Inc.");
  script_family(english:"Amazon Linux Local Security Checks");

  script_dependencies("ssh_get_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/AmazonLinux/release", "Host/AmazonLinux/rpm-list");

  exit(0);
}


include("audit.inc");
include("global_settings.inc");
include("rpm.inc");


if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);

release = get_kb_item("Host/AmazonLinux/release");
if (isnull(release) || !strlen(release)) audit(AUDIT_OS_NOT, "Amazon Linux");
os_ver = pregmatch(pattern: "^AL(A|\d)", string:release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Amazon Linux");
os_ver = os_ver[1];
if (os_ver != "A")
{
  if (os_ver == 'A') os_ver = 'AMI';
  audit(AUDIT_OS_NOT, "Amazon Linux AMI", "Amazon Linux " + os_ver);
}

if (!get_kb_item("Host/AmazonLinux/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);


flag = 0;
if (rpm_check(release:"ALA", reference:"postgresql95-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql95-contrib-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql95-debuginfo-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql95-devel-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql95-docs-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql95-libs-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql95-plperl-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql95-plpython26-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql95-plpython27-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql95-server-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql95-static-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql95-test-9.5.10-1.77.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-9.6.6-1.79.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-contrib-9.6.6-1.79.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-debuginfo-9.6.6-1.79.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-devel-9.6.6-1.79.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-docs-9.6.6-1.79.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-libs-9.6.6-1.79.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-plperl-9.6.6-1.79.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-plpython26-9.6.6-1.79.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-plpython27-9.6.6-1.79.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-server-9.6.6-1.79.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-static-9.6.6-1.79.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"postgresql96-test-9.6.6-1.79.amzn1")) flag++;

if (flag)
{
  if (report_verbosity > 0) security_hole(port:0, extra:rpm_report_get());
  else security_hole(0);
  exit(0);
}
else
{
  tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, "postgresql95 / postgresql95-contrib / postgresql95-debuginfo / etc");
}
VendorProductVersionCPE
amazonlinuxpostgresql95p-cpe:/a:amazon:linux:postgresql95
amazonlinuxpostgresql95-contribp-cpe:/a:amazon:linux:postgresql95-contrib
amazonlinuxpostgresql95-debuginfop-cpe:/a:amazon:linux:postgresql95-debuginfo
amazonlinuxpostgresql95-develp-cpe:/a:amazon:linux:postgresql95-devel
amazonlinuxpostgresql95-docsp-cpe:/a:amazon:linux:postgresql95-docs
amazonlinuxpostgresql95-libsp-cpe:/a:amazon:linux:postgresql95-libs
amazonlinuxpostgresql95-plperlp-cpe:/a:amazon:linux:postgresql95-plperl
amazonlinuxpostgresql95-plpython26p-cpe:/a:amazon:linux:postgresql95-plpython26
amazonlinuxpostgresql95-plpython27p-cpe:/a:amazon:linux:postgresql95-plpython27
amazonlinuxpostgresql95-serverp-cpe:/a:amazon:linux:postgresql95-server
Rows per page:
1-10 of 251

7.2 High

CVSS2

Attack Vector

LOCAL

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:L/AC:L/Au:N/C:C/I:C/A:C

8.1 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H

0.008 Low

EPSS

Percentile

81.2%