The cryptsetup package in AlmaLinux 8 is affected by a vulnerability in the LUKS2 format validation code, allowing attackers to potentially execute arbitrary code
Reporter | Title | Published | Views | Family All 57 |
---|---|---|---|---|
OSV | CVE-2020-14382 | 16 Sep 202015:15 | – | osv |
OSV | Red Hat Security Advisory: cryptsetup security update | 16 Sep 202404:22 | – | osv |
OSV | cryptsetup vulnerability | 14 Sep 202012:23 | – | osv |
OSV | Red Hat Security Advisory: cryptsetup security, bug fix, and enhancement update | 16 Sep 202404:22 | – | osv |
OSV | Red Hat Security Advisory: cryptsetup security update | 16 Sep 202404:22 | – | osv |
OSV | cryptsetup-2.4.1-1.1 on GA media | 15 Jun 202400:00 | – | osv |
RedhatCVE | CVE-2020-14382 | 3 Sep 202002:20 | – | redhatcve |
Debian CVE | CVE-2020-14382 | 16 Sep 202015:15 | – | debiancve |
OpenVAS | Huawei EulerOS: Security Advisory for cryptsetup (EulerOS-SA-2021-1656) | 12 Mar 202100:00 | – | openvas |
OpenVAS | Huawei EulerOS: Security Advisory for cryptsetup (EulerOS-SA-2020-2409) | 4 Nov 202000:00 | – | openvas |
#%NASL_MIN_LEVEL 70300
##
# (C) Tenable Network Security, Inc.
#
# The package checks in this plugin were extracted from
# AlmaLinux Security Advisory ALSA-2020:4542.
##
include('deprecated_nasl_level.inc');
include('compat.inc');
if (description)
{
script_id(157644);
script_version("1.3");
script_set_attribute(attribute:"plugin_modification_date", value:"2022/02/14");
script_cve_id("CVE-2020-14382");
script_xref(name:"ALSA", value:"2020:4542");
script_name(english:"AlmaLinux 8 : cryptsetup (ALSA-2020:4542)");
script_set_attribute(attribute:"synopsis", value:
"The remote AlmaLinux host is missing a security update.");
script_set_attribute(attribute:"description", value:
"The remote AlmaLinux 8 host has packages installed that are affected by a vulnerability as referenced in the
ALSA-2020:4542 advisory.
- A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2 format
validation code, that is effectively invoked on every device/image presenting itself as LUKS2 container.
The bug is in segments validation code in file 'lib/luks2/luks2_json_metadata.c' in function
hdr_validate_segments(struct crypt_device *cd, json_object *hdr_jobj) where the code does not check for
possible overflow on memory allocation used for intervals array (see statement intervals =
malloc(first_backup * sizeof(*intervals));). Due to the bug, library can be *tricked* to expect such
allocation was successful but for far less memory then originally expected. Later it may read data FROM
image crafted by an attacker and actually write such data BEYOND allocated memory. (CVE-2020-14382)
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:"https://errata.almalinux.org/8/ALSA-2020-4542.html");
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:P/A:P");
script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:N/UI:R/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-2020-14382");
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:"2020/09/03");
script_set_attribute(attribute:"patch_publication_date", value:"2020/11/03");
script_set_attribute(attribute:"plugin_publication_date", value:"2022/02/09");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:alma:linux:cryptsetup");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:alma:linux:cryptsetup-libs");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:alma:linux:cryptsetup-reencrypt");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:alma:linux:integritysetup");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:alma:linux:veritysetup");
script_set_attribute(attribute:"cpe", value:"cpe:/o:alma:linux:8");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Alma Linux Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2022 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/local_checks_enabled", "Host/AlmaLinux/release", "Host/AlmaLinux/rpm-list", "Host/cpu");
exit(0);
}
include('audit.inc');
include('global_settings.inc');
include('misc_func.inc');
include('rpm.inc');
if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var release = get_kb_item('Host/AlmaLinux/release');
if (isnull(release) || 'AlmaLinux' >!< release) audit(AUDIT_OS_NOT, 'AlmaLinux');
var os_ver = pregmatch(pattern: "AlmaLinux release ([0-9]+(\.[0-9]+)?)", string:release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, 'AlmaLinux');
var os_ver = os_ver[1];
if (! preg(pattern:"^8([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, 'AlmaLinux 8.x', 'AlmaLinux ' + os_ver);
if (!get_kb_item('Host/AlmaLinux/rpm-list')) audit(AUDIT_PACKAGE_LIST_MISSING);
var cpu = get_kb_item('Host/cpu');
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ('x86_64' >!< cpu && cpu !~ "^i[3-6]86$" && 's390' >!< cpu && 'aarch64' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'AlmaLinux', cpu);
var pkgs = [
{'reference':'cryptsetup-2.3.3-2.el8', 'cpu':'x86_64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'cryptsetup-libs-2.3.3-2.el8', 'cpu':'i686', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'cryptsetup-libs-2.3.3-2.el8', 'cpu':'x86_64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'cryptsetup-reencrypt-2.3.3-2.el8', 'cpu':'x86_64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'integritysetup-2.3.3-2.el8', 'cpu':'x86_64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'veritysetup-2.3.3-2.el8', 'cpu':'x86_64', 'release':'8', 'rpm_spec_vers_cmp':TRUE}
];
var flag = 0;
foreach var package_array ( pkgs ) {
var reference = NULL;
var release = NULL;
var sp = NULL;
var cpu = NULL;
var el_string = NULL;
var rpm_spec_vers_cmp = NULL;
var epoch = NULL;
var allowmaj = NULL;
var exists_check = NULL;
if (!empty_or_null(package_array['reference'])) reference = package_array['reference'];
if (!empty_or_null(package_array['release'])) release = 'Alma-' + package_array['release'];
if (!empty_or_null(package_array['sp'])) sp = package_array['sp'];
if (!empty_or_null(package_array['cpu'])) cpu = package_array['cpu'];
if (!empty_or_null(package_array['el_string'])) el_string = package_array['el_string'];
if (!empty_or_null(package_array['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = package_array['rpm_spec_vers_cmp'];
if (!empty_or_null(package_array['epoch'])) epoch = package_array['epoch'];
if (!empty_or_null(package_array['allowmaj'])) allowmaj = package_array['allowmaj'];
if (!empty_or_null(package_array['exists_check'])) exists_check = package_array['exists_check'];
if (reference && release && (!exists_check || rpm_exists(release:release, rpm:exists_check))) {
if (rpm_check(release:release, sp:sp, cpu:cpu, reference:reference, epoch:epoch, el_string:el_string, rpm_spec_vers_cmp:rpm_spec_vers_cmp, allowmaj:allowmaj)) flag++;
}
}
if (flag)
{
security_report_v4(
port : 0,
severity : SECURITY_WARNING,
extra : rpm_report_get()
);
exit(0);
}
else
{
var tested = pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'cryptsetup / cryptsetup-libs / cryptsetup-reencrypt / integritysetup / 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