Lucene search
+L

Linux Distros Unpatched Vulnerability : CVE-2022-4993

🗓️ 13 Aug 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 3 Views

Debian libhtml-formhandler-perl package affected by CVE-2022-4993 with no vendor patch available.

Related
Refs
Code
ReporterTitlePublishedViews
Family
attackerkb
ATTACKERKB
CVE-2022-4993
13 Aug 202616:27
attackerkb
circl
Circl
CVE-2022-4993
14 Aug 202612:20
circl
cve
CVE
CVE-2022-4993
13 Aug 202616:27
cve
cvelist
Cvelist
CVE-2022-4993 HTML::FormHandler versions through 0.40068 for Perl allow attacker selected method dispatch and resource exhaustion because _apply_actions and add_error use error message text built from request data as a Locale::Maketext bracket notation template
13 Aug 202616:27
cvelist
debiancve
Debian CVE
CVE-2022-4993
13 Aug 202616:27
debiancve
euvd
EUVD
EUVD-2022-56018
13 Aug 202616:27
euvd
nvd
NVD
CVE-2022-4993
13 Aug 202617:17
nvd
osv
OSV
DEBIAN-CVE-2022-4993
13 Aug 202617:17
osv
osv
OSV
UBUNTU-CVE-2022-4993
14 Aug 202600:00
osv
ptsecurity
Positive Technologies
PT-2026-71693
13 Aug 202600:00
ptsecurity
Rows per page
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(335195);
  script_version("1.2");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/08/14");

  script_cve_id("CVE-2022-4993");

  script_name(english:"Linux Distros Unpatched Vulnerability : CVE-2022-4993");

  script_set_attribute(attribute:"synopsis", value:
"The Linux/Unix host has one or more packages installed with a vulnerability that the vendor indicates will not be
patched.");
  script_set_attribute(attribute:"description", value:
"The Linux/Unix host has one or more packages installed that are impacted by a vulnerability without a vendor supplied
patch available.

  - HTML::FormHandler versions through 0.40068 for Perl allow attacker selected method dispatch and resource
    exhaustion because _apply_actions and add_error use error message text built from request data as a
    Locale::Maketext bracket notation template. add_error hands its first argument to the language handle as
    the Locale::Maketext message key, and the default handle's lexicon sets `_AUTO`, so a string that is not a
    lexicon entry is compiled as a bracket notation template instead of being looked up. In a bracket group
    the first token names a method called on the language handle and the remaining tokens are its arguments.
    Three kinds of text the library did not author reach that position. _apply_actions installs a
    `$SIG{__WARN__}` handler that stores the warning text in `$error_message`, and a captured warning survives
    a successful action, so a field carrying a numeric transform turns `Argument [sprintf,%50000000d,0]
    isn't numeric` into the template; a warning quotes the submitted value verbatim, so the group is well
    formed and dispatches. `$error_message ||= $tobj->validate($new_value)` takes a type constraint's own
    failure message, which renders the rejected value through a partial dumper in bracket and comma form
    (Devel::PartialDump when Moose can load it, Type::Tiny's own dumper always), so a field with `apply => [
    Str ]` given a parameter sent more than once, which arrives as an array, gets `Reference [a,b] did not
    pass type constraint Str` as its template, from a request that carries no bracket character of its own.
    A coercion or transform exception reaches it the same way. Beyond those, a validator whose message
    contains the field value puts that value in the template directly, and add_error replaces the message list
    with the contents of an arrayref first argument (`@message = @{$message[0]} if ref $message[0] eq
    'ARRAY'`), so a value arriving as an array fills the argument slots from the same request as well. A
    malformed group such as `[0]` makes the compile croak, and HTML::FormHandler::I18N::maketext and add_error
    each re-raise that as a die, so process() throws. A well formed group naming sprintf reaches CORE::sprintf
    with an attacker chosen field width. Any caller that applies a type constraint or a transform to an
    untrusted field, or whose validator passes an untrusted field value to add_error, can be made to throw an
    unhandled exception out of process(), or to allocate an arbitrary amount of memory in one request, and an
    application whose language handle subclass defines side effecting public methods makes those callable with
    attacker chosen arguments. The dumped type constraint message is bounded to the exception, because both
    dumpers quote non-numeric elements so the method slot is never an attacker chosen name. The built-in
    messages pass fixed templates with the value in an argument slot, where it stays inert, and the built-in
    field types attach explicit message callbacks, so neither is affected. (CVE-2022-4993)

Note that Nessus relies on the presence of the package as reported by the vendor.");
  script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2022-4993");
  script_set_attribute(attribute:"solution", value:
"There is no known solution at this time.");
  script_set_attribute(attribute:"agent", value:"unix");
  script_set_attribute(attribute:"risk_factor", value:"High");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2022-4993");

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

  script_set_attribute(attribute:"plugin_publication_date", value:"2026/08/13");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:11.0");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:12.0");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:13.0");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:14.0");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libhtml-formhandler-perl");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Misc.");

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

  script_dependencies("ssh_get_info2.nasl", "set_linux_os_id.nasl");
  script_require_keys("Host/cpu", "Host/local_checks_enabled", "global_settings/vendor_unpatched", "Host/OS/identifier");
  script_require_ports("Host/OS/Debian Linux-11", "Host/OS/Debian Linux-12", "Host/OS/Debian Linux-13", "Host/OS/Debian Linux-14");

  exit(0);
}

if (!get_kb_item("global_settings/vendor_unpatched")) exit(0, "Unpatched Vulnerabilities Detection not active.");
if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
if (empty_or_null(get_one_kb_item("Host/Debian/dpkg-l"))) audit(AUDIT_PACKAGE_LIST_MISSING);

include('linux_unpatched.inc');

var distro_constraints_array = {
  "Debian Linux-11": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "11",
        "pkgs": [
          {"reference": "libhtml-formhandler-perl"}
        ]
      }
    ]
  },
  "Debian Linux-12": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "12",
        "pkgs": [
          {"reference": "libhtml-formhandler-perl"}
        ]
      }
    ]
  },
  "Debian Linux-13": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "13",
        "pkgs": [
          {"reference": "libhtml-formhandler-perl"}
        ]
      }
    ]
  },
  "Debian Linux-14": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "14",
        "pkgs": [
          {"reference": "libhtml-formhandler-perl"}
        ]
      }
    ]
  }
};

var distro_constraints_values = linux_unpatched::get_distro_constraints(distro_constraints_arr:distro_constraints_array);
if (empty_or_null(distro_constraints_values)) audit(AUDIT_HOST_NOT, 'affected');

var third_party_support = get_kb_item('Host/OS/extended-third-party');
if (!empty_or_null(third_party_support)) {
    var third_party_vendors = distro_constraints_values['third_party'];
    if (!empty_or_null(third_party_vendors)) {
        var vendor;
        foreach vendor (third_party_vendors) {
            if (vendor == third_party_support) exit(0, 'A third party management patch is available for this vulnerability from ' + vendor + '.\n');
        }
    }
}

var report = linux_unpatched::check_unpatched_constraints(distro_constraints_values:distro_constraints_values);

if (!empty_or_null(report))
{
  security_report_v4(
      port       : 0,
      severity   : SECURITY_HOLE,
      extra      : report
  );
  exit(0);
}
else
{
  audit(AUDIT_HOST_NOT, 'affected');
}

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

14 Aug 2026 00:00Current
5.7Medium risk
Vulners AI Score5.7
CVSS 3.19.1
EPSS0.00365
SSVC
3