Lucene search
K

Linux Distros Unpatched Vulnerability : CVE-2024-47763

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

Unpatched Linux/Unix CVE-2024-47763 Wasmtime tail call crash; Rust 1.80 undefined; 1.81+ abort.

Related
Refs
Code
ReporterTitlePublishedViews
Family
Chainguard
CVE-2024-47763 vulnerabilities
9 Oct 202418:15
cgr
Circl
CVE-2024-47763
9 Oct 202420:40
circl
CNNVD
Wasmtime 安全漏洞
9 Oct 202400:00
cnnvd
CVE
CVE-2024-47763
9 Oct 202418:03
cve
Cvelist
CVE-2024-47763 Wasmtime runtime crash when combining tail calls with trapping imports
9 Oct 202418:03
cvelist
Debian CVE
CVE-2024-47763
9 Oct 202418:03
debiancve
EUVD
EUVD-2024-3109
3 Oct 202520:07
euvd
Github Security Blog
wasmtime has a runtime crash when combining tail calls with trapping imports
9 Oct 202419:14
github
NVD
CVE-2024-47763
9 Oct 202418:15
nvd
OSV
CGA-3652-MR4R-QQJ4
10 Oct 202412:07
osv
Rows per page
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(248706);
  script_version("1.6");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/05/22");

  script_cve_id("CVE-2024-47763");

  script_name(english:"Linux Distros Unpatched Vulnerability : CVE-2024-47763");

  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.

  - Wasmtime is an open source runtime for WebAssembly. Wasmtime's implementation of WebAssembly tail calls
    combined with stack traces can result in a runtime crash in certain WebAssembly modules. The runtime crash
    may be undefined behavior if Wasmtime was compiled with Rust 1.80 or prior. The runtime crash is a
    deterministic process abort when Wasmtime is compiled with Rust 1.81 and later. WebAssembly tail calls are
    a proposal which relatively recently reached stage 4 in the standardization process. Wasmtime first
    enabled support for tail calls by default in Wasmtime 21.0.0, although that release contained a bug where
    it was only on-by-default for some configurations. In Wasmtime 22.0.0 tail calls were enabled by default
    for all configurations. The specific crash happens when an exported function in a WebAssembly module (or
    component) performs a `return_call` (or `return_call_indirect` or `return_call_ref`) to an imported host
    function which captures a stack trace (for example, the host function raises a trap). In this situation,
    the stack-walking code previously assumed there was always at least one WebAssembly frame on the stack but
    with tail calls that is no longer true. With the tail-call proposal it's possible to have an entry
    trampoline appear as if it directly called the exit trampoline. This situation triggers an internal assert
    in the stack-walking code which raises a Rust `panic!()`. When Wasmtime is compiled with Rust versions
    1.80 and prior this means that an `extern C` function in Rust is raising a `panic!()`. This is
    technically undefined behavior and typically manifests as a process abort when the unwinder fails to
    unwind Cranelift-generated frames. When Wasmtime is compiled with Rust versions 1.81 and later this panic
    becomes a deterministic process abort. Overall the impact of this issue is that this is a denial-of-
    service vector where a malicious WebAssembly module or component can cause the host to crash. There is no
    other impact at this time other than availability of a service as the result of the crash is always a
    crash and no more. This issue was discovered by routine fuzzing performed by the Wasmtime project via
    Google's OSS-Fuzz infrastructure. We have no evidence that it has ever been exploited by an attacker in
    the wild. All versions of Wasmtime which have tail calls enabled by default have been patched: * 21.0.x -
    patched in 21.0.2 * 22.0.x - patched in 22.0.1 * 23.0.x - patched in 23.0.3 * 24.0.x - patched in 24.0.1 *
    25.0.x - patched in 25.0.2. Wasmtime versions from 12.0.x (the first release with experimental tail call
    support) to 20.0.x (the last release with tail-calls off-by-default) have support for tail calls but the
    support is disabled by default. These versions are not affected in their default configurations, but users
    who explicitly enabled tail call support will need to either disable tail call support or upgrade to a
    patched version of Wasmtime. The main workaround for this issue is to disable tail support for tail calls
    in Wasmtime, for example with `Config::wasm_tail_call(false)`. Users are otherwise encouraged to upgrade
    to patched versions. (CVE-2024-47763)

Note that Nessus relies on the presence of the package as reported by the vendor.");
  script_set_attribute(attribute:"see_also", value:"https://ubuntu.com/security/CVE-2024-47763");
  script_set_attribute(attribute:"solution", value:
"There is no known solution at this time.");
  script_set_attribute(attribute:"agent", value:"unix");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:N/I:N/A:P");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:U/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:U/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2024-47763");

  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:"vuln_publication_date", value:"2024/10/09");
  script_set_attribute(attribute:"plugin_publication_date", value:"2025/08/12");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:24.04:-:lts");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:25.04");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:25.10");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:rust-wasmtime");
  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) 2025-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/Ubuntu Linux-24.04", "Host/OS/Ubuntu Linux-25.04", "Host/OS/Ubuntu Linux-25.10");

  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 = {
  "Ubuntu Linux-24.04": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "24.04",
        "pkgs": [
          {"reference": "rust-wasmtime"}
        ]
      }
    ]
  },
  "Ubuntu Linux-25.04": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "25.04",
        "pkgs": [
          {"reference": "rust-wasmtime"}
        ]
      }
    ]
  },
  "Ubuntu Linux-25.10": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "25.10",
        "pkgs": [
          {"reference": "rust-wasmtime"}
        ]
      }
    ]
  }
};

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 report = linux_unpatched::check_unpatched_constraints(distro_constraints_values:distro_constraints_values);

if (!empty_or_null(report))
{
  security_report_v4(
      port       : 0,
      severity   : SECURITY_WARNING,
      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