CVSS3
Attack Vector
LOCAL
Attack Complexity
HIGH
Privileges Required
NONE
User Interaction
REQUIRED
Scope
UNCHANGED
Confidentiality Impact
NONE
Integrity Impact
HIGH
Availability Impact
HIGH
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H
AI Score
Confidence
High
EPSS
Percentile
47.8%
The remote Fedora 38 host has packages installed that are affected by multiple vulnerabilities as referenced in the FEDORA-2024-6ad6b9f417 advisory.
Pandoc is a Haskell library for converting from one markup format to another, and a command-line tool that uses this library. Starting in version 1.13 and prior to version 3.1.4, Pandoc is susceptible to an arbitrary file write vulnerability, which can be triggered by providing a specially crafted image element in the input when generating files using the --extract-media
option or outputting to PDF format. This vulnerability allows an attacker to create or overwrite arbitrary files on the system ,depending on the privileges of the process running pandoc. It only affects systems that pass untrusted user input to pandoc and allow pandoc to be used to produce a PDF or with the --extract-media
option. The fix is to unescape the percent-encoding prior to checking that the resource is not above the working directory, and prior to extracting the extension. Some code for checking that the path is below the working directory was flawed in a similar way and has also been fixed. Note that the --sandbox
option, which only affects IO done by readers and writers themselves, does not block this vulnerability. The vulnerability is patched in pandoc 3.1.4. As a workaround, audit the pandoc command and disallow PDF output and the --extract-media
option.
(CVE-2023-35936)
Pandoc before 3.1.6 allows arbitrary file write: this can be triggered by providing a crafted image element in the input when generating files via the --extract-media option or outputting to PDF format.
This allows an attacker to create or overwrite arbitrary files, depending on the privileges of the process running Pandoc. It only affects systems that pass untrusted user input to Pandoc and allow Pandoc to be used to produce a PDF or with the --extract-media option. NOTE: this issue exists because of an incomplete fix for CVE-2023-35936 (failure to properly account for double encoded path names). (CVE-2023-38745)
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 Fedora Security Advisory FEDORA-2024-6ad6b9f417
#
include('compat.inc');
if (description)
{
script_id(192725);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2024/04/05");
script_cve_id("CVE-2023-35936", "CVE-2023-38745");
script_xref(name:"FEDORA", value:"2024-6ad6b9f417");
script_xref(name:"IAVB", value:"2024-B-0030");
script_name(english:"Fedora 38 : ghc-base64 / ghc-hakyll / gitit / pandoc / patat (2024-6ad6b9f417)");
script_set_attribute(attribute:"synopsis", value:
"The remote Fedora host is missing one or more security updates.");
script_set_attribute(attribute:"description", value:
"The remote Fedora 38 host has packages installed that are affected by multiple vulnerabilities as referenced in the
FEDORA-2024-6ad6b9f417 advisory.
- Pandoc is a Haskell library for converting from one markup format to another, and a command-line tool that
uses this library. Starting in version 1.13 and prior to version 3.1.4, Pandoc is susceptible to an
arbitrary file write vulnerability, which can be triggered by providing a specially crafted image element
in the input when generating files using the `--extract-media` option or outputting to PDF format. This
vulnerability allows an attacker to create or overwrite arbitrary files on the system ,depending on the
privileges of the process running pandoc. It only affects systems that pass untrusted user input to pandoc
and allow pandoc to be used to produce a PDF or with the `--extract-media` option. The fix is to unescape
the percent-encoding prior to checking that the resource is not above the working directory, and prior to
extracting the extension. Some code for checking that the path is below the working directory was flawed
in a similar way and has also been fixed. Note that the `--sandbox` option, which only affects IO done by
readers and writers themselves, does not block this vulnerability. The vulnerability is patched in pandoc
3.1.4. As a workaround, audit the pandoc command and disallow PDF output and the `--extract-media` option.
(CVE-2023-35936)
- Pandoc before 3.1.6 allows arbitrary file write: this can be triggered by providing a crafted image
element in the input when generating files via the --extract-media option or outputting to PDF format.
This allows an attacker to create or overwrite arbitrary files, depending on the privileges of the process
running Pandoc. It only affects systems that pass untrusted user input to Pandoc and allow Pandoc to be
used to produce a PDF or with the --extract-media option. NOTE: this issue exists because of an incomplete
fix for CVE-2023-35936 (failure to properly account for double encoded path names). (CVE-2023-38745)
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
script_set_attribute(attribute:"see_also", value:"https://bodhi.fedoraproject.org/updates/FEDORA-2024-6ad6b9f417");
script_set_attribute(attribute:"solution", value:
"Update the affected packages.");
script_set_cvss_base_vector("CVSS2#AV:L/AC:H/Au:N/C:N/I:C/A:C");
script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2023-38745");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2023/07/05");
script_set_attribute(attribute:"patch_publication_date", value:"2024/03/22");
script_set_attribute(attribute:"plugin_publication_date", value:"2024/03/30");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"cpe:/o:fedoraproject:fedora:38");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fedoraproject:fedora:ghc-base64");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fedoraproject:fedora:ghc-hakyll");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fedoraproject:fedora:gitit");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fedoraproject:fedora:pandoc");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fedoraproject:fedora:patat");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_set_attribute(attribute:"stig_severity", value:"II");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Fedora Local Security Checks");
script_copyright(english:"This script is Copyright (C) 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/RedHat/release", "Host/RedHat/rpm-list");
exit(0);
}
include('rpm.inc');
if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var os_release = get_kb_item('Host/RedHat/release');
if (isnull(os_release) || 'Fedora' >!< os_release) audit(AUDIT_OS_NOT, 'Fedora');
var os_ver = pregmatch(pattern: "Fedora.*release ([0-9]+)", string:os_release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, 'Fedora');
os_ver = os_ver[1];
if (! preg(pattern:"^38([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, 'Fedora 38', 'Fedora ' + os_ver);
if (!get_kb_item('Host/RedHat/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, 'Fedora', cpu);
var pkgs = [
{'reference':'ghc-base64-0.4.2.4-28.fc38', 'release':'FC38', 'rpm_spec_vers_cmp':TRUE},
{'reference':'ghc-hakyll-4.16.2.0-1.fc38', 'release':'FC38', 'rpm_spec_vers_cmp':TRUE},
{'reference':'gitit-0.15.1.1-3.fc38', 'release':'FC38', 'rpm_spec_vers_cmp':TRUE},
{'reference':'pandoc-2.19.2-22.fc38', 'release':'FC38', 'rpm_spec_vers_cmp':TRUE},
{'reference':'patat-0.8.8.0-2.fc38', 'release':'FC38', 'rpm_spec_vers_cmp':TRUE}
];
var flag = 0;
foreach 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;
if (!empty_or_null(package_array['reference'])) reference = package_array['reference'];
if (!empty_or_null(package_array['release'])) _release = 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 (reference && _release) {
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, 'ghc-base64 / ghc-hakyll / gitit / pandoc / patat');
}
CVSS3
Attack Vector
LOCAL
Attack Complexity
HIGH
Privileges Required
NONE
User Interaction
REQUIRED
Scope
UNCHANGED
Confidentiality Impact
NONE
Integrity Impact
HIGH
Availability Impact
HIGH
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H
AI Score
Confidence
High
EPSS
Percentile
47.8%