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
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
AI Score
Confidence
Low
EPSS
Percentile
86.7%
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');
}
Vendor | Product | Version | CPE |
---|---|---|---|
debian | debian_linux | libecpg-compat3 | p-cpe:/a:debian:debian_linux:libecpg-compat3 |
debian | debian_linux | postgresql-plpython-11 | p-cpe:/a:debian:debian_linux:postgresql-plpython-11 |
debian | debian_linux | libecpg6 | p-cpe:/a:debian:debian_linux:libecpg6 |
debian | debian_linux | libecpg-dev | p-cpe:/a:debian:debian_linux:libecpg-dev |
debian | debian_linux | libpq5 | p-cpe:/a:debian:debian_linux:libpq5 |
debian | debian_linux | postgresql-client-11 | p-cpe:/a:debian:debian_linux:postgresql-client-11 |
debian | debian_linux | 10.0 | cpe:/o:debian:debian_linux:10.0 |
debian | debian_linux | postgresql-doc-11 | p-cpe:/a:debian:debian_linux:postgresql-doc-11 |
debian | debian_linux | postgresql-pltcl-11 | p-cpe:/a:debian:debian_linux:postgresql-pltcl-11 |
debian | debian_linux | postgresql-plpython3-11 | p-cpe:/a:debian:debian_linux:postgresql-plpython3-11 |
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-5868
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-5869
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-5870
www.nessus.org/u?4e0872ee
packages.debian.org/source/buster/postgresql-11
security-tracker.debian.org/tracker/CVE-2023-5868
security-tracker.debian.org/tracker/CVE-2023-5869
security-tracker.debian.org/tracker/CVE-2023-5870
www.debian.org/lts/security/2023/dla-3651
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
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
AI Score
Confidence
Low
EPSS
Percentile
86.7%