Lucene search
+L

Siemens SIMATIC S7-1500 Improper Following of Specification by Caller (CVE-2025-39770)

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

Fix GSO IPv6 with extension headers by disabling checksum offload to prevent skb_warn_bad_offload.

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

include('compat.inc');

if (description)
{
  script_id(505156);
  script_version("1.3");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/07/17");

  script_cve_id("CVE-2025-39770");
  script_xref(name:"ICSA", value:"26-134-10");

  script_name(english:"Siemens SIMATIC S7-1500 Improper Following of Specification by Caller (CVE-2025-39770)");

  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: gso: Forbid IPv6 TSO with extensions on devices with only
IPV6_CSUM    When performing Generic Segmentation Offload (GSO) on an
IPv6 packet that  contains extension headers, the kernel incorrectly
requests checksum offload  if the egress device only advertises
NETIF_F_IPV6_CSUM feature, which has  a strict contract: it supports
checksum offload only for plain TCP or UDP  over IPv6 and explicitly
does not support packets with extension headers.  The current GSO
logic violates this contract by failing to disable the feature  for
packets with extension headers, such as those used in GREoIPv6
tunnels.    This violation results in the device being asked to
perform an operation  it cannot support, leading to a
`skb_warn_bad_offload` warning and a collapse  of network throughput.
While device TSO/USO is correctly bypassed in favor  of software GSO
for these packets, the GSO stack must be explicitly told not  to
request checksum offload.    Mask NETIF_F_IPV6_CSUM, NETIF_F_TSO6 and
NETIF_F_GSO_UDP_L4  in gso_features_check if the IPv6 header contains
extension headers to compute  checksum in software.    The exception
is a BIG TCP extension, which, as stated in commit  68e068cabd2c6c53
(net: reenable NETIF_F_IPV6_CSUM offload for BIG TCP packets):  The
feature is only enabled on devices that support BIG TCP TSO.  The
header is only present for PF_PACKET taps like tcpdump,  and not
transmitted by physical devices.    kernel log output (truncated):
WARNING: CPU: 1 PID: 5273 at net/core/dev.c:3535
skb_warn_bad_offload+0x81/0x140  ...  Call Trace:   <TASK>
skb_checksum_help+0x12a/0x1f0   validate_xmit_skb+0x1a3/0x2d0
validate_xmit_skb_list+0x4f/0x80   sch_direct_xmit+0x1a2/0x380
__dev_xmit_skb+0x242/0x670   __dev_queue_xmit+0x3fc/0x7f0
ip6_finish_output2+0x25e/0x5d0   ip6_finish_output+0x1fc/0x3f0
ip6_tnl_xmit+0x608/0xc00 [ip6_tunnel]   ip6gre_tunnel_xmit+0x1c0/0x390
[ip6_gre]   dev_hard_start_xmit+0x63/0x1c0
__dev_queue_xmit+0x6d0/0x7f0   ip6_finish_output2+0x214/0x5d0
ip6_finish_output+0x1fc/0x3f0   ip6_xmit+0x2ca/0x6f0
ip6_finish_output+0x1fc/0x3f0   ip6_xmit+0x2ca/0x6f0
inet6_csk_xmit+0xeb/0x150   __tcp_transmit_skb+0x555/0xa80
tcp_write_xmit+0x32a/0xe90   tcp_sendmsg_locked+0x437/0x1110
tcp_sendmsg+0x2f/0x50  ...  skb linear:   00000000: e4 3d 1a 7d ec 30
e4 3d 1a 7e 5d 90 86 dd 60 0e  skb linear:   00000010: 00 0a 1b 34 3c
40 20 11 00 00 00 00 00 00 00 00  skb linear:   00000020: 00 00 00 00
00 12 20 11 00 00 00 00 00 00 00 00  skb linear:   00000030: 00 00 00
00 00 11 2f 00 04 01 04 01 01 00 00 00  skb linear:   00000040: 86 dd
60 0e 00 0a 1b 00 06 40 20 23 00 00 00 00  skb linear:   00000050: 00
00 00 00 00 00 00 00 00 12 20 23 00 00 00 00  skb linear:   00000060:
00 00 00 00 00 00 00 00 00 11 bf 96 14 51 13 f9  skb linear:
00000070: ae 27 a0 a8 2b e3 80 18 00 40 5b 6f 00 00 01 01  skb linear:
00000080: 08 0a 42 d4 50 d5 4b 70 f8 1a

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:"see_also", value:"https://www.cisa.gov/news-events/ics-advisories/ICSA-26-134-10");
  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-39770");

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

  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/02/16");

  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:3.1.5");
  script_set_attribute(attribute:"generated_plugin", value:"former");
  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-4FX00-1AC0', '6ES7518-4AX00-1AC0', '6ES7518-4FX00-1AB0']},
    "cpe:/o:siemens:siplus_s7-1500_cpu_firmware:3.1.5" :
        {"versionStartIncluding" : "3.1.5", "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

17 Jul 2026 00:00Current
5.8Medium risk
Vulners AI Score5.8
CVSS 3.15.5
EPSS0.00153
4