Lucene search

K
nessusThis script is Copyright (C) 2023-2024 and is owned by Tenable, Inc. or an Affiliate thereof.DEBIAN_DLA-3651.NASL
HistoryNov 14, 2023 - 12:00 a.m.

Debian DLA-3651-1 : postgresql-11 - LTS security update

2023-11-1400:00:00
This script is Copyright (C) 2023-2024 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
6
debian 10
postgresql-11
lts update
multiple vulnerabilities
remote host
dla-3651-1 advisory
cve-2023-5868
cve-2021-32027
cve-2023-5869
cve-2023-5870
self-reported version number
nessus scanner

6.5 Medium

CVSS2

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

SINGLE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

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

8.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

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

8.6 High

AI Score

Confidence

Low

0.015 Low

EPSS

Percentile

86.8%

The remote Debian 10 host has packages installed that are affected by multiple vulnerabilities as referenced in the dla-3651 advisory.

  • PostgreSQL Project reports: Certain aggregate function calls receiving unknown-type arguments could disclose bytes of server memory from the end of the unknown-type value to the next zero byte. One typically gets an unknown-type value via a string literal having no type designation. We have not confirmed or ruled out viability of attacks that arrange for presence of notable, confidential information in disclosed bytes.
    (CVE-2023-5868)

  • PostgreSQL Project reports: While modifying certain SQL array values, missing overflow checks let authenticated database users write arbitrary bytes to a memory area that facilitates arbitrary code execution. Missing overflow checks also let authenticated database users read a wide area of server memory. The CVE-2021-32027 fix covered some attacks of this description, but it missed others. (CVE-2023-5869)

  • PostgreSQL Project reports: Documentation says the pg_cancel_backend role cannot signal a backend owned by a superuser. On the contrary, it can signal background workers, including the logical replication launcher. It can signal autovacuum workers and the autovacuum launcher. Signaling autovacuum workers and those two launchers provides no meaningful exploit, so exploiting this vulnerability requires a non-core extension with a less-resilient background worker. For example, a non-core background worker that does not auto-restart would experience a denial of service with respect to that particular background worker. (CVE-2023-5870)

Note that Nessus has not tested for these issues but has instead relied only on the application’s self-reported version number.

#%NASL_MIN_LEVEL 80900
#
# (C) Tenable, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Debian Security Advisory dla-3651. The text
# itself is copyright (C) Software in the Public Interest, Inc.
#

include('compat.inc');

if (description)
{
  script_id(185523);
  script_version("1.2");
  script_set_attribute(attribute:"plugin_modification_date", value:"2024/02/16");

  script_cve_id("CVE-2023-5868", "CVE-2023-5869", "CVE-2023-5870");
  script_xref(name:"IAVB", value:"2023-B-0088-S");

  script_name(english:"Debian DLA-3651-1 : postgresql-11 - LTS security update");

  script_set_attribute(attribute:"synopsis", value:
"The remote Debian host is missing one or more security-related updates.");
  script_set_attribute(attribute:"description", value:
"The remote Debian 10 host has packages installed that are affected by multiple vulnerabilities as referenced in the
dla-3651 advisory.

  - PostgreSQL Project reports:              Certain aggregate function calls receiving unknown-type
    arguments could disclose bytes of server memory from the end of             the unknown-type value to
    the next zero byte. One typically             gets an unknown-type value via a string literal having no
    type             designation. We have not confirmed or ruled out viability of             attacks that
    arrange for presence of notable, confidential             information in disclosed bytes.
    (CVE-2023-5868)

  - PostgreSQL Project reports:              While modifying certain SQL array values, missing
    overflow checks let authenticated database users write             arbitrary bytes to a memory area that
    facilitates             arbitrary code execution. Missing overflow checks also             let
    authenticated database users read a wide area of             server memory. The CVE-2021-32027 fix covered
    some             attacks of this description, but it missed others.            (CVE-2023-5869)

  - PostgreSQL Project reports:              Documentation says the pg_cancel_backend role cannot
    signal a backend owned by a superuser. On the             contrary, it can signal background workers,
    including             the logical replication launcher. It can signal             autovacuum workers and
    the autovacuum launcher.             Signaling autovacuum workers and those two launchers
    provides no meaningful exploit, so exploiting this             vulnerability requires a non-core extension
    with a             less-resilient background worker. For example, a             non-core background worker
    that does not auto-restart             would experience a denial of service with respect to
    that particular background worker.            (CVE-2023-5870)

Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
  # https://security-tracker.debian.org/tracker/source-package/postgresql-11
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?4e0872ee");
  script_set_attribute(attribute:"see_also", value:"https://www.debian.org/lts/security/2023/dla-3651");
  script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2023-5868");
  script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2023-5869");
  script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2023-5870");
  script_set_attribute(attribute:"see_also", value:"https://packages.debian.org/source/buster/postgresql-11");
  script_set_attribute(attribute:"solution", value:
"Upgrade the postgresql-11 packages.

For Debian 10 buster, these problems have been fixed in version 11.22-0+deb10u1.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:S/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2023-5869");

  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");

  script_set_attribute(attribute:"vuln_publication_date", value:"2023/11/09");
  script_set_attribute(attribute:"patch_publication_date", value:"2023/11/14");
  script_set_attribute(attribute:"plugin_publication_date", value:"2023/11/14");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libecpg-compat3");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libecpg-dev");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libecpg6");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libpgtypes3");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libpq-dev");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libpq5");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:postgresql-11");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:postgresql-client-11");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:postgresql-doc-11");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:postgresql-plperl-11");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:postgresql-plpython-11");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:postgresql-plpython3-11");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:postgresql-pltcl-11");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:postgresql-server-dev-11");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:10.0");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_set_attribute(attribute:"stig_severity", value:"I");
  script_end_attributes();

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

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

  script_dependencies("ssh_get_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/Debian/release", "Host/Debian/dpkg-l");

  exit(0);
}

include('debian_package.inc');

if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
if (!get_kb_item("Host/Debian/dpkg-l")) audit(AUDIT_PACKAGE_LIST_MISSING);

var debian_release = get_kb_item('Host/Debian/release');
if ( isnull(debian_release) ) audit(AUDIT_OS_NOT, 'Debian');
debian_release = chomp(debian_release);
if (! preg(pattern:"^(10)\.[0-9]+", string:debian_release)) audit(AUDIT_OS_NOT, 'Debian 10.0', 'Debian ' + debian_release);
var 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, 'Debian', cpu);

var pkgs = [
    {'release': '10.0', 'prefix': 'libecpg-compat3', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'libecpg-dev', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'libecpg6', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'libpgtypes3', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'libpq-dev', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'libpq5', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'postgresql-11', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'postgresql-client-11', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'postgresql-doc-11', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'postgresql-plperl-11', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'postgresql-plpython-11', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'postgresql-plpython3-11', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'postgresql-pltcl-11', 'reference': '11.22-0+deb10u1'},
    {'release': '10.0', 'prefix': 'postgresql-server-dev-11', 'reference': '11.22-0+deb10u1'}
];

var flag = 0;
foreach package_array ( pkgs ) {
  var _release = NULL;
  var prefix = NULL;
  var reference = NULL;
  if (!empty_or_null(package_array['release'])) _release = package_array['release'];
  if (!empty_or_null(package_array['prefix'])) prefix = package_array['prefix'];
  if (!empty_or_null(package_array['reference'])) reference = package_array['reference'];
  if (_release && prefix && reference) {
    if (deb_check(release:_release, prefix:prefix, reference:reference)) flag++;
  }
}

if (flag)
{
  security_report_v4(
    port       : 0,
    severity   : SECURITY_HOLE,
    extra      : deb_report_get()
  );
  exit(0);
}
else
{
  var tested = deb_pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'libecpg-compat3 / libecpg-dev / libecpg6 / libpgtypes3 / libpq-dev / etc');
}
VendorProductVersionCPE
debiandebian_linuxpostgresql-plpython3-11p-cpe:/a:debian:debian_linux:postgresql-plpython3-11
debiandebian_linuxpostgresql-pltcl-11p-cpe:/a:debian:debian_linux:postgresql-pltcl-11
debiandebian_linuxpostgresql-server-dev-11p-cpe:/a:debian:debian_linux:postgresql-server-dev-11
debiandebian_linux10.0cpe:/o:debian:debian_linux:10.0
debiandebian_linuxlibecpg-compat3p-cpe:/a:debian:debian_linux:libecpg-compat3
debiandebian_linuxlibecpg-devp-cpe:/a:debian:debian_linux:libecpg-dev
debiandebian_linuxlibecpg6p-cpe:/a:debian:debian_linux:libecpg6
debiandebian_linuxlibpgtypes3p-cpe:/a:debian:debian_linux:libpgtypes3
debiandebian_linuxlibpq-devp-cpe:/a:debian:debian_linux:libpq-dev
debiandebian_linuxlibpq5p-cpe:/a:debian:debian_linux:libpq5
Rows per page:
1-10 of 151

6.5 Medium

CVSS2

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

SINGLE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

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

8.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

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

8.6 High

AI Score

Confidence

Low

0.015 Low

EPSS

Percentile

86.8%