Lucene search
+L

Siemens SIMATIC S7-1500 NULL Pointer Dereference (CVE-2025-38468)

🗓️ 23 Mar 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 4 Views

Linux kernel fix for null pointer dereference in htb lookup when the red black tree is empty during queue processing.

Related
Refs
Code
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(505245);
  script_version("1.2");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/03/24");

  script_cve_id("CVE-2025-38468");

  script_name(english:"Siemens SIMATIC S7-1500 NULL Pointer Dereference (CVE-2025-38468)");

  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:
net/sched: Return NULL when htb_lookup_leaf encounters an empty rbtree
htb_lookup_leaf has a BUG_ON that can trigger with the following:
tc qdisc del dev lo root  tc qdisc add dev lo root handle 1: htb
default 1  tc class add dev lo parent 1: classid 1:1 htb rate 64bit
tc qdisc add dev lo parent 1:1 handle 2: netem  tc qdisc add dev lo
parent 2:1 handle 3: blackhole  ping -I lo -c1 -W0.001 127.0.0.1
The root cause is the following:    1. htb_dequeue calls
htb_dequeue_tree which calls the dequeue handler on     the selected
leaf qdisc  2. netem_dequeue calls enqueue on the child qdisc  3.
blackhole_enqueue drops the packet and returns a value that is not
just NET_XMIT_SUCCESS  4. Because of this, netem_dequeue calls
qdisc_tree_reduce_backlog, and     since qlen is now 0, it calls
htb_qlen_notify -> htb_deactivate ->     htb_deactiviate_prios ->
htb_remove_class_from_row -> htb_safe_rb_erase  5. As this is the only
class in the selected hprio rbtree,     __rb_change_child in
__rb_erase_augmented sets the rb_root pointer to     NULL  6. Because
blackhole_dequeue returns NULL, netem_dequeue returns NULL,     which
causes htb_dequeue_tree to call htb_lookup_leaf with the same
hprio rbtree, and fail the BUG_ON    The function graph for this
scenario is shown here:   0)               |  htb_enqueue() {   0) +
13.635 us   |    netem_enqueue();   0)   4.719 us    |
htb_activate_prios();   0) # 2249.199 us |  }   0)               |
htb_dequeue() {   0)   2.355 us    |    htb_lookup_leaf();   0)
|    netem_dequeue() {   0) + 11.061 us   |      blackhole_enqueue();
0)               |      qdisc_tree_reduce_backlog() {   0)
|        qdisc_lookup_rcu() {   0)   1.873 us    |
qdisc_match_from_root();   0)   6.292 us    |        }   0)   1.894 us
|        htb_search();   0)               |        htb_qlen_notify() {
0)   2.655 us    |          htb_deactivate_prios();   0)   6.933 us
|        }   0) + 25.227 us   |      }   0)   1.983 us    |
blackhole_dequeue();   0) + 86.553 us   |    }   0) # 2932.761 us |
qdisc_warn_nonwc();   0)               |    htb_lookup_leaf() {   0)
|      BUG_ON();   ------------------------------------------    The
full original bug report can be seen here [1].    We can fix this just
by returning NULL instead of the BUG_ON,  as htb_dequeue_tree returns
NULL when htb_lookup_leaf returns  NULL.    [1]
https://lore.kernel.org/netdev/pF5XOOIim0IuEfhI-SOxTgRvNoDwuux7UHKnE_Y
5-
zVd4wmGvNk2ceHjKb8ORnzw0cGwfmVu42g9dL7XyJLf1NEzaztboTWcm0Ogxuojoeo=@wi
llsroot.io/

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-082556.html");
  script_set_attribute(attribute:"solution", value:
"Refer to the vendor advisory.");
  script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:S/C:N/I:N/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:N/I:N/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-2025-38468");

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

  script_set_attribute(attribute:"vuln_publication_date", value:"2025/06/10");
  script_set_attribute(attribute:"patch_publication_date", value:"2025/06/10");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/03/23");

  script_set_attribute(attribute:"plugin_type", value:"remote");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:siemens:simatic_s7-1500_cpu_firmware:3.1.5");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:siemens:siplus_s7-1500_cpu_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:simatic_s7-1500_cpu_firmware:3.1.5" :
        {"versionStartIncluding" : "3.1.5", "family" : "S71500", "orderNumbers" : ['6ES7518-4AX00-1AB0', '6ES7518-4AX00-1AC0', '6ES7518-4FX00-1AB0', '6ES7518-4FX00-1AC0']},
    "cpe:/o:siemens:siplus_s7-1500_cpu_firmware" :
        {"family" : "S71500", "orderNumbers" : ['6AG1518-4AX00-4AC0']}
};

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

24 Mar 2026 00:00Current
6.2Medium risk
Vulners AI Score6.2
CVSS 3.15.5
EPSS0.00162
4