Lucene search
K

Linux Distros Unpatched Vulnerability : CVE-2024-53054

Linux/Unix hosts with unpatched vulnerability CVE-2024-53054 may lead to deadlock issues in kernel.

Related
Refs
Code
ReporterTitlePublishedViews
Family
Circl
CVE-2024-53054
29 Nov 202409:21
circl
CNNVD
编号撤回
19 Nov 202400:00
cnnvd
CVE
CVE-2024-53054
19 Nov 202417:19
cve
Cvelist
CVE-2024-53054
19 Nov 202417:19
cvelist
Debian
[SECURITY] [DSA 5818-1] linux security update
24 Nov 202416:09
debian
Debian CVE
CVE-2024-53054
19 Nov 202417:19
debiancve
Tenable Nessus
Debian dsa-5818 : affs-modules-6.1.0-21-4kc-malta-di - security update
24 Nov 202400:00
nessus
EUVD
EUVD-2024-51773
3 Oct 202520:07
euvd
NVD
CVE-2024-53054
19 Nov 202418:15
nvd
OpenVAS
Debian: Security Advisory (DSA-5818-1)
25 Nov 202400:00
openvas
Rows per page
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(230296);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2025/03/06");

  script_cve_id("CVE-2024-53054");

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

  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.

  - In the Linux kernel, the following vulnerability has been resolved: cgroup/bpf: use a dedicated workqueue
    for cgroup bpf destruction A hung_task problem shown below was found: INFO: task kworker/0:0:8 blocked for
    more than 327 seconds. echo 0 > /proc/sys/kernel/hung_task_timeout_secs disables this message.
    Workqueue: events cgroup_bpf_release Call Trace: <TASK> __schedule+0x5a2/0x2050 ?
    find_held_lock+0x33/0x100 ? wq_worker_sleeping+0x9e/0xe0 schedule+0x9f/0x180
    schedule_preempt_disabled+0x25/0x50 __mutex_lock+0x512/0x740 ? cgroup_bpf_release+0x1e/0x4d0 ?
    cgroup_bpf_release+0xcf/0x4d0 ? process_scheduled_works+0x161/0x8a0 ? cgroup_bpf_release+0x1e/0x4d0 ?
    mutex_lock_nested+0x2b/0x40 ? __pfx_delay_tsc+0x10/0x10 mutex_lock_nested+0x2b/0x40
    cgroup_bpf_release+0xcf/0x4d0 ? process_scheduled_works+0x161/0x8a0 ?
    trace_event_raw_event_workqueue_execute_start+0x64/0xd0 ? process_scheduled_works+0x161/0x8a0
    process_scheduled_works+0x23a/0x8a0 worker_thread+0x231/0x5b0 ? __pfx_worker_thread+0x10/0x10
    kthread+0x14d/0x1c0 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x59/0x70 ? __pfx_kthread+0x10/0x10
    ret_from_fork_asm+0x1b/0x30 </TASK> This issue can be reproduced by the following pressuse test: 1. A
    large number of cpuset cgroups are deleted. 2. Set cpu on and off repeatly. 3. Set watchdog_thresh
    repeatly. The scripts can be obtained at LINK mentioned above the signature. The reason for this issue is
    cgroup_mutex and cpu_hotplug_lock are acquired in different tasks, which may lead to deadlock. It can lead
    to a deadlock through the following steps: 1. A large number of cpusets are deleted asynchronously, which
    puts a large number of cgroup_bpf_release works into system_wq. The max_active of system_wq is
    WQ_DFL_ACTIVE(256). Consequently, all active works are cgroup_bpf_release works, and many
    cgroup_bpf_release works will be put into inactive queue. As illustrated in the diagram, there are 256 (in
    the acvtive queue) + n (in the inactive queue) works. 2. Setting watchdog_thresh will hold
    cpu_hotplug_lock.read and put smp_call_on_cpu work into system_wq. However step 1 has already filled
    system_wq, 'sscs.work' is put into inactive queue. 'sscs.work' has to wait until the works that were put
    into the inacvtive queue earlier have executed (n cgroup_bpf_release), so it will be blocked for a while.
    3. Cpu offline requires cpu_hotplug_lock.write, which is blocked by step 2. 4. Cpusets that were deleted
    at step 1 put cgroup_release works into cgroup_destroy_wq. They are competing to get cgroup_mutex all the
    time. When cgroup_metux is acqured by work at css_killed_work_fn, it will call cpuset_css_offline, which
    needs to acqure cpu_hotplug_lock.read. However, cpuset_css_offline will be blocked for step 3. 5. At this
    moment, there are 256 works in active queue that are cgroup_bpf_release, they are attempting to acquire
    cgroup_mutex, and as a result, all of them are blocked. Consequently, sscs.work can not be executed.
    Ultimately, this situation leads to four processes being blocked, forming a deadlock. system_wq(step1)
    WatchDog(step2) cpu offline(step3) cgroup_destroy_wq(step4) ... 2000+ cgroups deleted asyn 256 actives + n
    inactives __lockup_detector_reconfigure P(cpu_hotplug_lock.read) put sscs.work into system_wq 256 + n +
    1(sscs.work) sscs.work wait to be executed warting sscs.work finish percpu_down_write
    P(cpu_hotplug_lock.write) ...blocking... css_killed_work_fn P(cgroup_mutex) cpuset_css_offline
    P(cpu_hotplug_lock.read) ...blocking... 256 cgroup_bpf_release mutex_lock(&cgroup_mutex); ..blocking... To
    fix the problem, place cgroup_bpf_release works on a dedicated workqueue which can break the loop and
    solve the problem. System wqs are for misc things which shouldn't create a large number of concurrent work
    items. If something is going to generate > ---truncated--- (CVE-2024-53054)

Note that Nessus relies on the presence of the package as reported by the vendor.");
  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:L/AC:L/Au:N/C:C/I:C/A:C");
  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:L/UI:N/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-2024-53054");

  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/11/19");
  script_set_attribute(attribute:"plugin_publication_date", value:"2025/03/06");

  script_set_attribute(attribute:"plugin_type", value:"local");
  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 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("ssh_get_info2.nasl");
  script_require_keys("Host/cpu", "Host/local_checks_enabled", "global_settings/vendor_unpatched");
  script_require_ports("Host/RedHat/release", "Host/RedHat/rpm-list");

  exit(0);
}
include('vdf.inc');

# @tvdl-content
var vuln_data = {
 "metadata": {
  "spec_version": "1.0p"
 },
 "requires": [
  {
   "scope": "scan_config",
   "match": {
    "vendor_unpatched": true
   }
  },
  {
   "scope": "target",
   "match": {
    "os": "linux"
   }
  }
 ],
 "report": {
  "report_type": "unpatched"
 },
 "checks": [
  {
   "product": {
    "name": [
     "kernel",
     "kernel-rt"
    ],
    "type": "rpm_package"
   },
   "check_algorithm": "rpm",
   "constraints": [
    {
     "requires": [
      {
       "scope": "target",
       "match": {
        "distro": "redhat"
       }
      },
      {
       "scope": "target",
       "match_one": {
        "os_version": [
         "8",
         "9"
        ]
       }
      }
     ]
    }
   ]
  }
 ]
};

var vdf_res = vdf::check_and_report(vuln_data:vuln_data, severity:SECURITY_HOLE);
vdf::handle_check_and_report_errors(vdf_result: vdf_res);

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