Lucene search

K

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

🗓️ 07 Dec 2017 00:00:00Reported by This script is Copyright (C) 2017-2018 Tenable Network Security, Inc.Type 
nessus
 nessus
🔗 www.tenable.com👁 56 Views

Amazon Linux AMI: Privilege escalation flaws in PostgreSQL 95/96 (ALAS-2017-930

Show more

AI Insights are available for you today

Leverage the power of AI to quickly understand vulnerabilities, impacts, and exploitability

Related
Refs
Code
#
# (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");
}

Transform Your Security Services

Elevate your offerings with Vulners' advanced Vulnerability Intelligence. Contact us for a demo and discover the difference comprehensive, actionable intelligence can make in your security strategy.

Book a live demo