Pulse Connect Secure exploited via multiple RCE vulnerabilities
Free public brief. The indicators, the detections with Splunk SPL already written (plus Elastic and KQL where they apply), and a Slack alert the next time this touches a vendor you run are in the app — free account, no card.
Threat actors exploiting Pulse Connect Secure vulnerabilities to deploy webshells, affecting U.S. government and critical infrastructure since June 2020.
Beginning in June 2020 or earlier, a cyber threat actor or actors have been exploiting multiple vulnerabilities in Ivanti Pulse Connect Secure appliances to compromise U.S. government agencies, critical infrastructure entities, and private sector organizations. The attacker leverages CVE-2019-11510, CVE-2020-8260, CVE-2020-8243, and CVE-2021-22893 to gain initial access, then deploys webshells on affected devices for persistence and further exploitation. The webshells enable authentication bypass, multi-factor authentication bypass, password logging, and persistence across patches by modifying legitimate Pulse Secure files including DSUpgrade.pm, Licenseserverproto.cgi, Secid_canceltoken.cgi, compcheckresult.cgi, Login.cgi, and Healthcheck.cgi.
The threat actor uses compromised residential devices—including NAS devices and small business routers—located in victim countries to proxy connections, blending malicious traffic with legitimate telework activity. Defenders can detect exploitation through impossible travel analysis (legitimate user credentials used from geographically distant locations simultaneously) and by examining unauthenticated request logs for suspicious URIs. The attacker has been observed performing cleanup operations including timestomping modified binaries and deleting temporary files to evade detection.
CISA and Ivanti released the Pulse Secure Connect Integrity Tool to detect compromised devices. Organizations must assume all credentials passing through exploited appliances are compromised and perform exhaustive password resets. Additional patches addressing CVE-2021-22894, CVE-2021-22899, and CVE-2021-22900 were released May 3, 2021, with further updates in August 2021.
Mentioned in this report
Detection guidance
Pulse Connect Secure Path Traversal Request (CVE-2019-11510 Style)
Web requests to Pulse Secure /dana-na/ or /dana/html5acc/guacamole/ paths containing directory traversal sequences, the pattern used to read arbitrary files from the appliance before webshell deployment. 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.
title: Pulse Connect Secure Path Traversal Request (CVE-2019-11510 Style)
description: Detects HTTP requests to Pulse Connect Secure /dana-na/ or /dana/html5acc/guacamole/
paths that contain directory traversal sequences. This is the unauthenticated arbitrary
file read pattern used to harvest credentials and session data ahead of webshell
deployment. Matches the traversal technique, not a specific source address.
tags:
- attack.initial-access
- attack.t1190
logsource:
category: webserver
detection:
selection_path:
cs-uri-stem|contains:
- /dana-na/
- /dana/html5acc/guacamole/
selection_traversal:
cs-uri-stem|contains:
- ../
- ..%2f
- '%2e%2e/'
- '%2e%2e%2f'
condition: selection_path and selection_traversal
falsepositives:
- Vulnerability scanners run by the organisation against its own VPN appliance
level: high
id: 29784a17-82bb-5c17-9dfb-5725a5e51560
status: experimental
author: Vorant
references:
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa21-110a
Request to Pulse Secure CGI/Perl Components Abused by Webshells
Requests to Pulse Secure CGI files that were modified with webshell code in these intrusions and that carry command-like or encoded query parameters. 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.
title: Request to Pulse Secure CGI/Perl Components Abused by Webshells
description: Detects web requests to Pulse Secure CGI files that were trojanised with
webshell code (for example Secid_canceltoken.cgi, compcheckresult.cgi, Licenseserverproto.cgi)
when the query string looks like command execution or encoded payloads. The query-string
condition keeps this specific to webshell-style use rather than normal host-checker
traffic. Review hits together with Pulse Integrity Tool results.
tags:
- attack.persistence
- attack.t1505.003
logsource:
category: webserver
detection:
selection_file:
cs-uri-stem|contains:
- /secid_canceltoken.cgi
- /compcheckresult.cgi
- /licenseserverproto.cgi
selection_query:
cs-uri-query|contains:
- cmd=
- exec=
- base64
- /bin/sh
- /bin/bash
- whoami
- wget
- curl
condition: selection_file and selection_query
falsepositives:
- Legitimate host-checker requests with unusually long or unusual query parameters
level: high
id: 392a942a-6d13-505d-b727-8d589c2e9def
status: experimental
author: Vorant
references:
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa21-110a
1 more detection for this report is in the app — the rules that match its indicators, plus the Sigma rules already converted to Splunk SPL, to Elastic where their fields map onto Elastic's integrations and to Microsoft Defender XDR KQL wherever Defender records the activity, and the YARA and Suricata. Three days of it free, no card.
Behavioural rules are generated from public reporting — validate in your environment before deploying.
Source reporting: https://www.cisa.gov/news-events/cybersecurity-advisories/aa21-110a
What this brief leaves out
This page is the free tier: the write-up, the severity, the names. In the app the same report carries its extracted indicators, its detections (Splunk SPL already written, plus Elastic and Microsoft KQL where they apply), the actors and CVEs it names as live profiles, and the vendor research on the same campaign — the primary source the news paraphrased, cited and read directly.
It sits in a corpus of 13,854 reports from 146 sources, 616 of them written in the last seven days, and it grows through the day.
A new account starts with three days of all of it, no card, then keeps the government and CERT reporting free. Name the vendors you run and Slack hears about the reports that touch them — about forty a week that are yours, not the four hundred that are not.
Create a free account What it costs