Siemens RUGGEDCOM RST2428P Improper Input Validation (CVE-2026-23025)
| Reporter | Title | Published | Views | Family All 122 |
|---|---|---|---|---|
| CVE-2026-23025 | 31 Jan 202611:42 | – | attackerkb | |
| Amazon Linux 2023 : bpftool6.12, kernel6.12, kernel6.12-devel (ALAS2023-2026-1455) | 6 Mar 202600:00 | – | nessus | |
| Amazon Linux 2023 : bpftool, kernel, kernel-devel (ALAS2023-2026-1468) | 6 Mar 202600:00 | – | nessus | |
| Debian dla-4476 : linux-config-6.1 - security update | 11 Feb 202600:00 | – | nessus | |
| Debian dsa-6126 : ata-modules-6.12.31-armmp-di - security update | 9 Feb 202600:00 | – | nessus | |
| Debian dsa-6127 : affs-modules-6.1.0-37-4kc-malta-di - security update | 9 Feb 202600:00 | – | nessus | |
| Oracle Linux 10 / 9 : Unbreakable Enterprise kernel (ELSA-2026-50144) | 11 Mar 202600:00 | – | nessus | |
| Photon OS 5.0: Linux PHSA-2026-5.0-0837 | 16 Jun 202600:00 | – | nessus | |
| Photon OS 5.0: Linux PHSA-2026-5.0-0842 | 9 May 202600:00 | – | nessus | |
| Photon OS 5.0: Linux PHSA-2026-5.0-0926 | 24 Jul 202600:00 | – | nessus |
10
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(505443);
script_version("1.3");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/07/17");
script_cve_id("CVE-2026-23025");
script_xref(name:"ICSA", value:"26-188-05");
script_name(english:"Siemens RUGGEDCOM RST2428P Improper Input Validation (CVE-2026-23025)");
script_set_attribute(attribute:"synopsis", value:
"The remote OT asset is affected by a vulnerability.");
script_set_attribute(attribute:"description", value:
"In the Linux kernel, the following vulnerability has been resolved:
mm/page_alloc: prevent pcp corruption with SMP=n The kernel test
robot has reported: BUG: spinlock trylock failure on UP on CPU#0,
kcompactd0/28 lock: 0xffff888807e35ef0, .magic: dead4ead, .owner:
kcompactd0/28, .owner_cpu: 0 CPU: 0 UID: 0 PID: 28 Comm: kcompactd0
Not tainted 6.18.0-rc5-00127-ga06157804399 #1 PREEMPT
8cc09ef94dcec767faa911515ce9e609c45db470 Call Trace: <IRQ>
__dump_stack (lib/dump_stack.c:95) dump_stack_lvl
(lib/dump_stack.c:123) dump_stack (lib/dump_stack.c:130)
spin_dump (kernel/locking/spinlock_debug.c:71) do_raw_spin_trylock
(kernel/locking/spinlock_debug.c:?) _raw_spin_trylock
(include/linux/spinlock_api_smp.h:89 kernel/locking/spinlock.c:138)
__free_frozen_pages (mm/page_alloc.c:2973) ___free_pages
(mm/page_alloc.c:5295) __free_pages (mm/page_alloc.c:5334)
tlb_remove_table_rcu (include/linux/mm.h:? include/linux/mm.h:3122
include/asm-generic/tlb.h:220 mm/mmu_gather.c:227 mm/mmu_gather.c:290)
? __cfi_tlb_remove_table_rcu (mm/mmu_gather.c:289) ? rcu_core
(kernel/rcu/tree.c:?) rcu_core (include/linux/rcupdate.h:341
kernel/rcu/tree.c:2607 kernel/rcu/tree.c:2861) rcu_core_si
(kernel/rcu/tree.c:2879) handle_softirqs
(arch/x86/include/asm/jump_label.h:36 include/trace/events/irq.h:142
kernel/softirq.c:623) __irq_exit_rcu
(arch/x86/include/asm/jump_label.h:36 kernel/softirq.c:725)
irq_exit_rcu (kernel/softirq.c:741) sysvec_apic_timer_interrupt
(arch/x86/kernel/apic/apic.c:1052) </IRQ> <TASK> RIP:
0010:_raw_spin_unlock_irqrestore (arch/x86/include/asm/preempt.h:95
include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)
free_pcppages_bulk (mm/page_alloc.c:1494) drain_pages_zone
(include/linux/spinlock.h:391 mm/page_alloc.c:2632)
__drain_all_pages (mm/page_alloc.c:2731) drain_all_pages
(mm/page_alloc.c:2747) kcompactd (mm/compaction.c:3115) kthread
(kernel/kthread.c:465) ? __cfi_kcompactd (mm/compaction.c:3166)
? __cfi_kthread (kernel/kthread.c:412) ret_from_fork
(arch/x86/kernel/process.c:164) ? __cfi_kthread
(kernel/kthread.c:412) ret_from_fork_asm
(arch/x86/entry/entry_64.S:255) </TASK> Matthew has analyzed the
report and identified that in drain_page_zone() we are in a section
protected by spin_lock(&pcp->lock) and then get an interrupt that
attempts spin_trylock() on the same lock. The code is designed to
work this way without disabling IRQs and occasionally fail the
trylock with a fallback. However, the SMP=n spinlock implementation
assumes spin_trylock() will always succeed, and thus it's normally a
no-op. Here the enabled lock debugging catches the problem, but
otherwise it could cause a corruption of the pcp structure. The
problem has been introduced by commit 574907741599 (mm/page_alloc:
leave IRQs enabled for per-cpu page allocations). The pcp locking
scheme recognizes the need for disabling IRQs to prevent nesting
spin_trylock() sections on SMP=n, but the need to prevent the nesting
in spin_lock() has not been recognized. Fix it by introducing local
wrappers that change the spin_lock() to spin_lock_iqsave() with SMP=n
and use them in all places that do spin_lock(&pcp->lock).
[[email protected]: add pcp_ prefix to the spin_lock_irqsave wrappers,
per Steven]
This plugin only works with Tenable.ot.
Please visit https://www.tenable.com/products/tenable-ot for more information.");
script_set_attribute(attribute:"see_also", value:"https://cert-portal.siemens.com/productcert/html/ssa-253495.html");
script_set_attribute(attribute:"see_also", value:"https://support.industry.siemens.com/cs/ww/en/view/110002573/");
script_set_attribute(attribute:"see_also", value:"https://www.cisa.gov/news-events/ics-advisories/ICSA-26-188-05");
script_set_attribute(attribute:"solution", value:
"Refer to the vendor advisory.");
script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:S/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-2026-23025");
script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
script_set_attribute(attribute:"exploit_available", value:"false");
script_cwe_id(20);
script_set_attribute(attribute:"vuln_publication_date", value:"2026/01/31");
script_set_attribute(attribute:"patch_publication_date", value:"2026/06/02");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/06/18");
script_set_attribute(attribute:"plugin_type", value:"remote");
script_set_attribute(attribute:"cpe", value:"cpe:/o:siemens:ruggedcom_rst2428p_firmware");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Tenable.ot");
script_copyright(english:"This script is Copyright (C) 2026 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("tenable_ot_api_integration.nasl");
script_require_keys("Tenable.ot/Siemens");
exit(0);
}
include('tenable_ot_cve_funcs.inc');
get_kb_item_or_exit('Tenable.ot/Siemens');
var asset = tenable_ot::assets::get(vendor:'Siemens');
var vuln_cpes = {
"cpe:/o:siemens:ruggedcom_rst2428p_firmware" :
{"family" : "RuggedCom", "orderNumbers" : ['6GK6242-6PA00'], "versionEndExcluding" : "4.0"}
};
tenable_ot::cve::compare_and_report(asset:asset, cpes:vuln_cpes, severity:SECURITY_WARNING);
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
17 Jul 2026 00:00Current
6.7Medium risk
Vulners AI Score6.7
CVSS 3.17.8
EPSS0.00184