Lucene search
+L

Microsoft HTTP.sys RCE Vulnerability (MS15-034) - Active Check

🗓️ 15 Apr 2015 00:00:00Reported by Copyright (C) 2015 Greenbone AGType 
openvas
 openvas
🔗 plugins.openvas.org👁 792 Views

Microsoft HTTP.sys RCE Vulnerability (MS15-034) - Active Check. Flaw in HTTP protocol stack allows remote code execution

Related
Refs
Code
ReporterTitlePublishedViews
Family
zdt
zdt
Microsoft Window - HTTP.sys PoC (MS15-034)
15 Apr 201500:00
zdt
zdt
zdt
Microsoft Window (HTTP.sys) HTTP Request Parsing DoS (MS15-034)
17 Apr 201500:00
zdt
zdt
zdt
MS15-034 Microsoft IIS Remote Code Execution Exploit
19 Apr 201500:00
zdt
githubexploit
GithubExploit
Exploit for Code Injection in Microsoft
20 Oct 202511:22
githubexploit
githubexploit
GithubExploit
Exploit for Code Injection in Microsoft
20 Jun 201814:28
githubexploit
githubexploit
GithubExploit
Exploit for Code Injection in Microsoft
15 Apr 201515:05
githubexploit
gitee
Gitee
Exploit for Code Injection in Microsoft
27 Nov 202010:59
gitee
gitee
Gitee
Exploit for Code Injection in Microsoft
25 Nov 202023:04
gitee
gitee
Gitee
Exploit for Code Injection in Microsoft
17 Nov 202009:07
gitee
attackerkb
ATTACKERKB
CVE-2015-1635
14 Apr 201500:00
attackerkb
Rows per page
# SPDX-FileCopyrightText: 2015 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

CPE = "cpe:/a:microsoft:internet_information_services";

if(description)
{
  script_oid("1.3.6.1.4.1.25623.1.0.105257");
  script_version("2026-04-28T06:28:06+0000");
  script_tag(name:"last_modification", value:"2026-04-28 06:28:06 +0000 (Tue, 28 Apr 2026)");
  script_tag(name:"creation_date", value:"2015-04-15 18:02:08 +0200 (Wed, 15 Apr 2015)");
  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_cve_id("CVE-2015-1635");

  # nb: Only basic response check, might be not fully reliable in e.g. Proxy environments
  script_tag(name:"qod_type", value:"remote_analysis");

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

  script_name("Microsoft HTTP.sys RCE Vulnerability (MS15-034) - Active Check");

  script_category(ACT_ATTACK);

  script_copyright("Copyright (C) 2015 Greenbone AG");
  script_family("Web Servers");
  script_dependencies("webmirror.nasl", "gb_microsoft_iis_http_detect.nasl");
  script_require_ports("Services/www", 80);
  script_mandatory_keys("IIS/installed");

  script_tag(name:"summary", value:"This host is missing an important security update according to
  Microsoft Bulletin MS15-034.");

  script_tag(name:"vuldetect", value:"Sends a special crafted HTTP GET request and checks the
  response.");

  script_tag(name:"impact", value:"Successful exploitation will allow remote attackers to run
  arbitrary code in the context of the current user and to perform actions in the security context
  of the current user.");

  script_tag(name:"insight", value:"Flaw exists due to the HTTP protocol stack 'HTTP.sys' that is
  triggered when parsing HTTP requests.");

  script_tag(name:"affected", value:"- Microsoft Windows 8 x32/x64

  - Microsoft Windows 8.1 x32/x64

  - Microsoft Windows Server 2012

  - Microsoft Windows Server 2012 R2

  - Microsoft Windows Server 2008 x32/x64 Service Pack 2 and prior

  - Microsoft Windows 7 x32/x64 Service Pack 1 and prior");

  script_tag(name:"solution", value:"The vendor has released updates. Please see the references for
  more information.");

  script_xref(name:"URL", value:"https://support.microsoft.com/en-us/topic/ms15-034-vulnerability-in-http-sys-could-allow-remote-code-execution-april-14-2015-e8755c1e-c5a8-fa75-c7b1-32087b127850");
  script_xref(name:"URL", value:"https://learn.microsoft.com/en-us/security-updates/SecurityBulletins/2015/ms15-034");
  script_xref(name:"URL", value:"http://pastebin.com/ypURDPc4");
  script_xref(name:"CISA", value:"Known Exploited Vulnerability (KEV) catalog");
  script_xref(name:"URL", value:"https://www.cisa.gov/known-exploited-vulnerabilities-catalog");

  exit(0);
}

include("host_details.inc");
include("http_func.inc");
include("http_keepalive.inc");
include("misc_func.inc");

if( ! port = get_app_port( cpe:CPE, service:"www" ) )
  exit( 0 );

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

# nb: This is expected to be here, we're using the same call later to add the port to the host header...
host = http_host_name( dont_add_port:TRUE );

is_iis = FALSE;

# nb: We might have hit the wrong vhost here (limitation of the scanner) so need to check for existence of IIS once more...
#     See as well gb_microsoft_iis_http_detect.nasl for additional remarks
check_urls = make_list( "/vt-test-non-existent.html",
                        "/vt-test/vt-test-non-existent.html",
                        "/vt-test-non-existent.aspx",
                        "/vt-test/vt-test-non-existent.aspx",
                        "/vt-test-non-existent/"
                      );

asp_list = http_get_kb_file_extensions( port:port, host:host, ext:"asp*" );
if( asp_list[0] )
  check_urls = make_list( check_urls, asp_list[0] );

foreach check_url( check_urls ) {
  # nb: Do a new request to avoid wrong cached responses from other vhosts
  req = http_get( port:port, item:check_url );
  res = http_keepalive_send_recv( port:port, data:req );

  if( egrep( string:res, pattern:"^Server\s*:\s*Microsoft", icase:TRUE ) ) {
    is_iis = TRUE;
    break;
  }
}

if( ! is_iis )
  exit( 0 );

known_urls = http_get_kb_file_extensions( port:port, host:host, ext:"*" );
default_urls = make_list( "/",
                          "/welcome.png",
                          "/iis-85.png",
                          "/Iisstart.htm",
                          "/resources/logo.png",
                          "/favicon.ico" );

if( known_urls )
  files = make_list( default_urls, known_urls );
else
  files = default_urls;

checked = 0;

foreach file( files ) {
  headers = make_array( "Range", "bytes=0-18446744073709551615" );

  req = http_get_req( port:port, url:file, add_headers:headers );
  res = http_keepalive_send_recv( port:port, data:req );
  checked++;

  # nb: e.g. https://github.com/zigoo0/MS15-034/blob/master/http-sys.py#L48
  if( "Requested Range Not Satisfiable" >< res || res =~ "^HTTP/1\.[01] 416" ) {
    report = "The response to a crafted HTTP GET request indicates that the host is affected." +
            '\n\nResponse:\n\n' + chomp( res );
    security_message( port:port, data:report );
    exit( 0 );
  }

  if( "request has an invalid header name" >< res )
    exit( 0 );

  if( checked > 20 )
    exit( 99 );
}

exit( 99 );

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

28 Apr 2026 00:00Current
8.3High risk
Vulners AI Score8.3
CVSS 210
CVSS 3.19.8
EPSS0.99999
SSVC
792