# Pulse Connect Secure zero-day exploited pre-patch

Published: 2021-05-06 · Severity: critical
Canonical: https://vorant.io/reports/75061654-83d1-5c19-8080-aea3181f2dfd/pulse-connect-secure-zero-day-exploited-pre-patch

> A Pulse Connect Secure VPN flaw allowing authentication bypass and remote code execution was exploited in the wild before a vendor patch existed.

IPA Japan issued an alert on a vulnerability in Ivanti's Pulse Connect Secure VPN appliance that allows a remote, unauthenticated attacker to bypass authentication and execute arbitrary code. As of the initial April 21, 2021 disclosure, no fixed version was available from the vendor, and IPA recommended organizations apply the vendor's interim workaround or temporarily suspend use of the product. The alert notes that exploitation had already been observed in the wild, though no domestic (Japan) victims had been confirmed at the time of writing.

Affected versions include Pulse Connect Secure 9.0R3 and later, and 9.1R1 and later, with the vendor noting other versions may also be impacted. On May 6, 2021, the vendor released patches covering all affected versions, and IPA updated the advisory to recommend immediate patching. Prior to the patch, the recommended mitigation involved importing an XML-based workaround file that reduces URL-based attack impact by disabling the Windows File Share Browser and Pulse Secure Collaboration features, with organizations advised to verify Windows File Browser was properly disabled post-import.

This vulnerability was part of a broader wave of Pulse Connect Secure zero-day exploitation targeting VPN appliances used for remote access, a common target for espionage-motivated intrusion activity given their gateway position into enterprise networks.

## Mentioned in this report

- Vulnerabilities: CVE-2021-22893 (KEV)

## Detection guidance (public sample)

### Shell Spawned from Web Service Process on VPN/Gateway Appliance

ATT&CK: T1190

Detects an interactive shell or scripting interpreter spawned as a child of a web/application server process, consistent with post-exploitation of an unauthenticated RCE vulnerability such as Pulse Connect Secure zero-day exploitation. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.

```yaml
title: Shell Spawned from Web Service Process on VPN/Gateway Appliance
id: 14487246-f5e9-5f84-946d-56112808b0e3
status: experimental
description: Detects an interactive shell or scripting interpreter (sh, bash, perl,
  python) spawned as a child of a web/application server or VPN appliance web service
  process. This pattern is consistent with successful exploitation of an unauthenticated
  remote code execution vulnerability in a public-facing appliance such as Pulse Connect
  Secure, where attackers leverage the web service to execute arbitrary commands prior
  to a vendor patch being available.
references:
- https://www.ivanti.com/blog/pulse-connect-secure
author: Vorant
logsource:
  category: process_creation
  product: linux
detection:
  selection_parent:
    ParentImage|contains:
    - /httpd
    - /nginx
    - /apache
    - dsserver
    - dspkginstall
    - /dana
  selection_child:
    Image|endswith:
    - /sh
    - /bash
    - /dash
    - /perl
    - /python
    - /python3
  condition: selection_parent and selection_child
falsepositives:
- Legitimate administrative scripts or health-check utilities that are invoked by
  the web service on some appliance configurations
- Vendor-provided maintenance or upgrade scripts that briefly spawn shells from the
  web service context
level: high
tags:
- attack.t1190
- attack.initial_access
```

### Web-Executable File Written to Web-Accessible Directory by Web Service Process

ATT&CK: T1190

Detects creation of script/webshell-style files (.jsp, .cgi, .pl, .php) by a web or VPN appliance service process, indicating possible webshell deployment following exploitation of an unauthenticated RCE such as the Pulse Connect Secure zero-day. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.

```yaml
title: Web-Executable File Written to Web-Accessible Directory by Web Service Process
id: 84d07afd-14c6-5e35-8c00-aa60afa2eea7
status: experimental
description: Detects a web server or VPN appliance service process writing a new script-type
  file (.jsp, .cgi, .pl, .php) into a directory that is typically served by the web
  application. This behaviour is consistent with webshell placement following successful
  exploitation of an unauthenticated remote code execution vulnerability in a public-facing
  appliance, as seen in pre-patch Pulse Connect Secure zero-day exploitation.
references:
- https://www.ivanti.com/blog/pulse-connect-secure
author: Vorant
logsource:
  category: file_event
  product: linux
detection:
  selection_process:
    Image|contains:
    - /httpd
    - /nginx
    - /apache
    - dsserver
    - /dana
  selection_file:
    TargetFilename|endswith:
    - .jsp
    - .cgi
    - .pl
    - .php
  filter_known_updates:
    TargetFilename|contains:
    - /upgrade/
    - /patch/
  condition: selection_process and selection_file and not filter_known_updates
falsepositives:
- Legitimate vendor patch or upgrade processes that deploy new CGI/script files as
  part of an authorized update
- Administrator-deployed custom web pages or scripts through supported management
  interfaces
level: high
tags:
- attack.t1190
- attack.persistence
```

### Outbound Network Connection Initiated by VPN Appliance Web Service Process

ATT&CK: T1190

Detects a web/application service process on a VPN or remote-access gateway appliance initiating outbound network connections, which may indicate a reverse shell or C2 callback established after exploitation of an unauthenticated RCE vulnerability such as the Pulse Connect Secure zero-day. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.

```yaml
title: Outbound Network Connection Initiated by VPN Appliance Web Service Process
id: 3a097a0f-c94c-5e05-a1b3-c51acd3046db
status: experimental
description: Detects a process associated with the VPN appliance's web or authentication
  service initiating outbound network connections to external hosts. Web/authentication
  service processes on gateway appliances typically only receive inbound connections;
  outbound connections from these processes can indicate a reverse shell or command-and-control
  channel established after successful exploitation of an unauthenticated remote code
  execution vulnerability, as seen in pre-patch Pulse Connect Secure exploitation.
references:
- https://www.ivanti.com/blog/pulse-connect-secure
author: Vorant
logsource:
  category: network_connection
  product: linux
detection:
  selection:
    Image|contains:
    - /httpd
    - /nginx
    - /apache
    - dsserver
    - /dana
    Initiated: true
  filter_internal:
    DestinationIp|startswith:
    - '10.'
    - 172.16.
    - 192.168.
  condition: selection and not filter_internal
falsepositives:
- Legitimate license validation or update-check callbacks made by the appliance software
  to vendor infrastructure
- Monitoring or telemetry agents integrated into the web service that report to internal
  management servers
level: medium
tags:
- attack.t1190
- attack.command_and_control
```

Behavioural rules are generated from public reporting — validate in your environment before deploying.

Source reporting: https://www.ipa.go.jp/archive/security/security-alert/2021/alert20210421.html

---

This is the free public brief from Vorant Threat Intelligence. When citing, attribute "Vorant" and link https://vorant.io/reports/75061654-83d1-5c19-8080-aea3181f2dfd/pulse-connect-secure-zero-day-exploited-pre-patch.
Full IOC sets, deployable detections, the entity graph, TAXII 2.1 feed and real-time alerts: https://vorant.io/signup
