Lucene search

K
nessusThis script is Copyright (C) 2024 and is owned by Tenable, Inc. or an Affiliate thereof.FEDORA_2024-7D83CBCCB6.NASL
HistoryApr 29, 2024 - 12:00 a.m.

Fedora 40 : ghc-base64 / ghc-hakyll / ghc-isocline / ghc-toml-parser / gitit / etc (2024-7d83cbccb6)

2024-04-2900:00:00
This script is Copyright (C) 2024 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
5
fedora 40
vulnerabilities
pandoc
ghc-base64
ghc-hakyll
gitit
arbitrary file write
pdf format
cve-2023-35936
cve-2023-38745
nessus scanner

6.3 Medium

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

7.5 High

AI Score

Confidence

Low

0.001 Low

EPSS

Percentile

38.0%

The remote Fedora 40 host has packages installed that are affected by multiple vulnerabilities as referenced in the FEDORA-2024-7d83cbccb6 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-7d83cbccb6
#

include('compat.inc');

if (description)
{
  script_id(194686);
  script_version("1.0");
  script_set_attribute(attribute:"plugin_modification_date", value:"2024/04/29");

  script_cve_id("CVE-2023-35936", "CVE-2023-38745");
  script_xref(name:"IAVB", value:"2024-B-0030");
  script_xref(name:"FEDORA", value:"2024-7d83cbccb6");

  script_name(english:"Fedora 40 : ghc-base64 / ghc-hakyll / ghc-isocline / ghc-toml-parser / gitit / etc (2024-7d83cbccb6)");

  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 40 host has packages installed that are affected by multiple vulnerabilities as referenced in the
FEDORA-2024-7d83cbccb6 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-7d83cbccb6");
  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/20");
  script_set_attribute(attribute:"plugin_publication_date", value:"2024/04/29");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:fedoraproject:fedora:40");
  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:ghc-isocline");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fedoraproject:fedora:ghc-toml-parser");
  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:pandoc-cli");
  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:"^40([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, 'Fedora 40', '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.fc40', 'release':'FC40', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'ghc-hakyll-4.16.2.0-4.fc40', 'release':'FC40', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'ghc-isocline-1.0.9-28.fc40', 'release':'FC40', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'ghc-toml-parser-1.3.2.0-29.fc40', 'release':'FC40', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'gitit-0.15.1.1-6.fc40', 'release':'FC40', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'pandoc-3.1.3-29.fc40', 'release':'FC40', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'pandoc-cli-3.1.3-29.fc40', 'release':'FC40', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'patat-0.11.0.0-1.fc40', 'release':'FC40', '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 / ghc-isocline / ghc-toml-parser / gitit / etc');
}
VendorProductVersionCPE
fedoraprojectfedorapatatp-cpe:/a:fedoraproject:fedora:patat
fedoraprojectfedoraghc-toml-parserp-cpe:/a:fedoraproject:fedora:ghc-toml-parser
fedoraprojectfedoraghc-base64p-cpe:/a:fedoraproject:fedora:ghc-base64
fedoraprojectfedoraghc-isoclinep-cpe:/a:fedoraproject:fedora:ghc-isocline
fedoraprojectfedoragititp-cpe:/a:fedoraproject:fedora:gitit
fedoraprojectfedoraghc-hakyllp-cpe:/a:fedoraproject:fedora:ghc-hakyll
fedoraprojectfedorapandocp-cpe:/a:fedoraproject:fedora:pandoc
fedoraprojectfedorapandoc-clip-cpe:/a:fedoraproject:fedora:pandoc-cli
fedoraprojectfedora40cpe:/o:fedoraproject:fedora:40

6.3 Medium

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

7.5 High

AI Score

Confidence

Low

0.001 Low

EPSS

Percentile

38.0%