CatalogPAN-OS GlobalProtect
PAN-OS GlobalProtect RCE (CVE-2024-3400)
Single product panos-globalprotect
Unauthenticated command injection as root in Palo Alto Networks PAN-OS GlobalProtect gateway/portal. CVSS 10.0. Zero-day exploitation by UTA0218 from March 2024. Listed in CISA KEV on 12 Apr 2024.
- Aliases
- Published
- Updated
What the bug is
CVE-2024-3400 is an arbitrary file creation leading to OS command injection in the GlobalProtect feature of Palo Alto Networks PAN-OS. Palo Alto Networks rates it CVSS 10.0 CRITICAL. An unauthenticated attacker can execute code with root privileges on a vulnerable firewall.
Only PAN-OS 10.2, 11.0, and 11.1 firewalls configured with GlobalProtect gateway or portal are exposed. Device telemetry does not need to be enabled. Cloud NGFW, Panorama appliances, and Prisma Access are not impacted per the vendor advisory.
Volexity detected zero-day exploitation on 10 Apr 2024 and later found probing back to 26 Mar 2024. The actor, tracked as UTA0218, deployed the UPSTYLE Python backdoor and stole credentials for lateral movement. Palo Alto Networks and Unit 42 later described the campaign as Operation MidnightEclipse.
Attack path
- GlobalProtect reachabilityUnauthenticated network access to a GlobalProtect portal or gateway on a vulnerable PAN-OS firewall.
- Arbitrary file createThe bug allows arbitrary file creation that becomes command injection.
- Root command execCommands run as root on the firewall operating system.
- Backdoor / theftObserved follow-on includes UPSTYLE and credential theft for lateral movement. Conceptual impact class only.
High-level only. Not a reproduction guide.
Exploitation status
CISA KEV
Listed in CISA KEV as of .
CISA KEV entry for CVE-2024-3400, Palo Alto Networks PAN-OS Command Injection Vulnerability. dateAdded 2024-04-12. knownRansomwareCampaignUse Known.
First seen
Seen . Source: Volexity
Volexity's earliest evidence of attempted exploitation is 26 Mar 2024, when attackers appeared to verify exploitation with zero-byte files. Confirmed customer compromise identified 10 Apr 2024.
What defenders should do today
Do today
- 1
Upgrade PAN-OS to a fixed hotfix
Move GlobalProtect-enabled firewalls to a fixed release such as PAN-OS 10.2.9-h1, 11.0.4-h1, 11.1.2-h3, or any later fixed version listed in the advisory. Palo Alto Networks advises upgrading even when workarounds were applied.
- 2
Apply Threat Prevention signatures if licensed
Threat IDs 95187, 95189, and 95191 (content 8836-8695 and later) can block attacks when vulnerability protection is applied to the GlobalProtect interface. This is interim only.
This week
- 1
Check gpsvc logs for path-like session IDs
Palo Alto Networks documents: grep pattern "failed to unmarshal session(.\+./" mp-log gpsvc.log* and treat non-GUID values between session( and ) as possible exploit attempts.
- 2
Collect forensics before reboot; consider enhanced factory reset
Collect a Tech Support File before rebooting into a fixed release. Palo Alto Networks recommends enhanced factory reset for devices that were unpatched or unprotected on or before 25 Apr 2024, or when persistence risk remains.
Detection rules
Sigma
Potential CVE-2024-3400 Exploitation - Palo Alto GlobalProtect OS Command Injection
title: Potential CVE-2024-3400 Exploitation - Palo Alto GlobalProtect OS Command Injection id: f130a5f1-73ba-42f0-bf1e-b66a8361cb8f status: test description: | Detects potential exploitation attempts of CVE-2024-3400 - an OS command injection in Palo Alto GlobalProtect. This detection looks for suspicious strings that indicate a potential directory traversal attempt or command injection. references: - https://security.paloaltonetworks.com/CVE-2024-3400 - https://labs.watchtowr.com/palo-alto-putting-the-protecc-in-globalprotect-cve-2024-3400/ - https://attackerkb.com/topics/SSTk336Tmf/cve-2024-3400/rapid7-analysis author: Nasreddine Bencherchali (Nextron Systems) date: 2024-04-18 modified: 2025-11-22 tags: - attack.initial-access - attack.persistence - attack.privilege-escalation - cve.2024-3400 - detection.emerging-threats - attack.stealth logsource: category: appliance product: paloalto service: globalprotect definition: 'Requirements: Palo Alto GlobalProtect "mp-log" and "gpsvc.log" log files need to be ingested' detection: keywords_generic: - 'failed to unmarshal session(../' - 'failed to unmarshal session(./../' - 'failed to unmarshal session(/..' - 'failed to unmarshal session(%2E%2E%2F' - 'failed to unmarshal session(%2F%2E%2E' - 'failed to unmarshal session(%2E%2F%2E%2E%2F' - 'failed to unmarshal session(%252E%252E%252F' - 'failed to unmarshal session(%252F%252E%252E' - 'failed to unmarshal session(%252E%252F%252E%252E%252F' keywords_telemetry_exploit: - '{IFS}' - 'base64' - 'bash' - 'curl' - 'http' keywords_telemetry_path: - '/opt/panlogs/tmp/device_telemetry/' condition: keywords_generic or (keywords_telemetry_exploit and keywords_telemetry_path) falsepositives: - Unknown level: highBy Nasreddine Bencherchali (Nextron Systems), . Source. License: DRL-1.1
Potential CVE-2024-3400 Exploitation - Palo Alto GlobalProtect OS Command Injection - File Creation
title: Potential CVE-2024-3400 Exploitation - Palo Alto GlobalProtect OS Command Injection - File Creation id: bcd95697-e3e7-4c6f-8584-8e3503e6929f status: test description: | Detects suspicious file creations in the Palo Alto Networks PAN-OS' parent telemetry folder, which are processed by the vulnerable 'dt_curl' script if device telemetry is enabled. As said script overrides the shell-subprocess restriction, arbitrary command execution may occur by carefully crafting filenames that are escaped through this function. references: - https://labs.watchtowr.com/palo-alto-putting-the-protecc-in-globalprotect-cve-2024-3400/ - https://nvd.nist.gov/vuln/detail/CVE-2024-3400 author: Andreas Braathen (mnemonic.io) date: 2024-04-25 tags: - attack.execution - cve.2024-3400 - detection.emerging-threats logsource: product: paloalto service: globalprotect category: file_event definition: 'Requirements: file creation events need to be ingested from the Palo Alto GlobalProtect appliance' detection: selection: TargetFilename|contains: - '{IFS}' - 'base64' - 'bash' - 'curl' - 'http' TargetFilename|startswith: '/opt/panlogs/tmp/device_telemetry/' condition: selection falsepositives: - The PAN-OS device telemetry function does not enforce a standard filename convention, but observations are unlikely. level: mediumBy Andreas Braathen (mnemonic.io), . Source. License: DRL-1.1
SPL (Splunk)
Palo Alto Threat Prevention IDs for CVE-2024-3400
sourcetype="pan:threat" threat_id IN (95187, 95189, 95191) | stats count min(_time) as firstTime max(_time) as lastTime values(action) as action by src_ip dest_ip threat_idBy vuln2shell, . Source. License: CC0 1.0
Written by vuln2shell. Untested, tune before use.
Threat IDs from the Palo Alto advisory. Check the field name your add-on version uses for the threat ID.
KQL (Microsoft Sentinel / Defender)
Palo Alto Threat Prevention IDs for CVE-2024-3400 (Sentinel)
CommonSecurityLog | where TimeGenerated > ago(30d) | where DeviceVendor =~ "Palo Alto Networks" | where DeviceEventClassID in ("95187", "95189", "95191") or AdditionalExtensions has_any ("95187", "95189", "95191") | summarize Count = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated) by SourceIP, DestinationIP, DeviceActionBy vuln2shell, . Source. License: CC0 1.0
Written by vuln2shell. Untested, tune before use.
Threat IDs from the Palo Alto advisory. Confirm which CEF field carries the threat ID in your connector.
LogScale (CrowdStrike)
gpsvc 'failed to unmarshal session' with a non-GUID value
"failed to unmarshal session(" | regex("failed to unmarshal session\\((?<session_value>[^)]*)\\)") | session_value!=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i | groupBy([session_value], function=count())By vuln2shell, . Source. License: CC0 1.0
Written by vuln2shell. Untested, tune before use.
Palo Alto says a session value that is a file path or shell command instead of a GUID warrants investigation; normal entries are GUIDs.
Suricata / Snort
ET WEB_SPECIFIC_APPS Palo Alto GlobalProtect Session Cookie Command Injection Attempt (CVE-2024-3400)
alert http any any -> $HOME_NET any (msg:"ET WEB_SPECIFIC_APPS Palo Alto GlobalProtect Session Cookie Command Injection Attempt (CVE-2024-3400)"; flow:established,to_server; http.cookie; content:"SESSID="; startswith; content:"/opt/panlogs/tmp/device_telemetry/"; distance:0; fast_pattern; pcre:"/(?:\x60|\x7b).*(?:\x24\x7bIFS\x7d|\x2c)/R"; reference:cve,2024-3400; reference:url,labs.watchtowr.com/palo-alto-putting-the-protecc-in-globalprotect-cve-2024-3400/; reference:url,www.volexity.com/blog/2024/05/15/detecting-compromise-of-cve-2024-3400-on-palo-alto-networks-globalprotect-devices/; classtype:trojan-activity; sid:2052122; rev:2; metadata:affected_product Palo_Alto_Networks, attack_target Networking_Equipment, tls_state TLSDecrypt, created_at 2024_04_16, cve CVE_2024_3400, deployment Perimeter, deployment Internal, deployment SSLDecrypt, performance_impact Low, confidence High, signature_severity Major, tag CISA_KEV, updated_at 2024_05_17, reviewed_at 2024_10_04, mitre_tactic_id TA0008, mitre_tactic_name Lateral_Movement, mitre_technique_id T1210, mitre_technique_name Exploitation_Of_Remote_Services; target:dest_ip;)By Emerging Threats (Proofpoint), . Source. License: BSD-3-Clause (ET Open, sids 2000000-2799999)
Needs decrypted HTTP to the GlobalProtect portal or gateway.
ET MALWARE Possible UPSTYLE Command Attempt
alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET MALWARE Possible UPSTYLE Command Attempt"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"img|5b|"; fast_pattern; pcre:"/img\x5b[a-zA-Z0-9+/=]{10,}\x5d/U"; content:!"|0d 0a|Referer|0d 0a|"; reference:url,www.volexity.com/blog/2024/04/12/zero-day-exploitation-of-unauthenticated-remote-code-execution-vulnerability-in-globalprotect-cve-2024-3400/; reference:url,unit42.paloaltonetworks.com/cve-2024-3400/; classtype:trojan-activity; sid:2052026; rev:1; metadata:affected_product Palo_Alto_Networks, attack_target Networking_Equipment, tls_state TLSDecrypt, created_at 2024_04_12, cve CVE_2024_3400, deployment Perimeter, deployment SSLDecrypt, malware_family UPSTYLE, performance_impact Moderate, confidence Low, signature_severity Major, updated_at 2024_04_12; target:dest_ip;)By Emerging Threats (Proofpoint), . Source. License: BSD-3-Clause (ET Open, sids 2000000-2799999)
UPSTYLE backdoor command requests described by Volexity.
YARA
APT_UTA028_ForensicArtefacts_PaloAlto_CVE_2024_3400_Apr24_1
rule APT_UTA028_ForensicArtefacts_PaloAlto_CVE_2024_3400_Apr24_1 : SCRIPT { meta: description = "Detects forensic artefacts of APT UTA028 as found in a campaign exploiting the Palo Alto CVE-2024-3400 vulnerability" author = "Florian Roth" reference = "https://www.volexity.com/blog/2024/04/12/zero-day-exploitation-of-unauthenticated-remote-code-execution-vulnerability-in-globalprotect-cve-2024-3400/" date = "2024-04-15" modified = "2024-04-18" score = 70 id = "32cf18ff-784d-5849-87f8-14ede7315188" strings: $x1 = "cmd = base64.b64decode(rst.group" $x2 = "f.write(\"/*\"+output+\"*/\")" $x3 = "* * * * * root wget -qO- http://" $x4 = "rm -f /var/appweb/sslvpndocs/global-protect/*.css" $x5a = "failed to unmarshal session(../" // https://security.paloaltonetworks.com/CVE-2024-3400 $x5b = "failed to unmarshal session(./../" // customer data $x6 = "rm -rf /opt/panlogs/tmp/device_telemetry/minute/*" base64 $x7 = "$(uname -a) > /var/" base64 condition: 1 of them }By Florian Roth, . Source. License: DRL-1.1
More detection content
- Palo Alto Networks: CVE-2024-3400 advisory (gpsvc check, Threat IDs)
By Palo Alto Networks,
- Volexity: Detecting compromise of CVE-2024-3400
By Volexity,
- Volexity: Zero-day exploitation of GlobalProtect (UPSTYLE)
By Volexity,
- Unit 42: Operation MidnightEclipse threat brief
By Unit 42,
Vendor signatures
| Signal | Log source | What to look for |
|---|---|---|
| Threat Prevention IDs 95187 / 95189 / 95191 | WAF / IPS event logs | Palo Alto Networks Threat Prevention signatures for CVE-2024-3400 in Applications and Threats content 8836-8695 and later. |
Affected versions
Palo Alto Networks PAN-OS (GlobalProtect gateway/portal)
| Version | Status | Advisory |
|---|---|---|
| PAN-OS 11.1 with GlobalProtect | Affected | PAN-OS 11.1 affected < 11.1.0-h3, < 11.1.1-h1, < 11.1.2-h3. Source |
| PAN-OS 11.0 with GlobalProtect | Affected | PAN-OS 11.0 affected before the listed hotfixes; fixed releases begin with 11.0.4-h1 (14 Apr 2024) and related hotfixes. Source |
| PAN-OS 10.2 with GlobalProtect | Affected | PAN-OS 10.2 affected before listed hotfixes; 10.2.9-h1 released 14 Apr 2024. Source |
| PAN-OS 10.1 / 10.0 / 9.1 / 9.0 | Vendor stated not affected | PAN-OS 10.1, 10.0, 9.1, and 9.0: Affected None / Unaffected All. Source |
| Cloud NGFW / Panorama / Prisma Access | Vendor stated not affected | Cloud NGFW, Panorama appliances, and Prisma Access are not impacted by this vulnerability. Source |
Timeline6
Key events
Newest first.
Palo Alto Networks updates the advisory on public post-exploit persistence techniques that survive resets and upgrades.
SourcewatchTowr publishes technical analysis of GlobalProtect exploitation.
SourceHotfixes begin shipping for commonly deployed PAN-OS maintenance releases (for example 10.2.9-h1, 11.0.4-h1, 11.1.2-h3).
SourcePalo Alto Networks publishes CVE-2024-3400. CISA adds it to KEV. Volexity publishes its report.
SourceVolexity confirms customer firewall compromise and reverse-shell activity.
SourceVolexity sees earliest UTA0218 probing with zero-byte files on GlobalProtect devices.
Source
Full timeline (6)
Mon 29 Apr 20241
Palo Alto Networks updates the advisory on public post-exploit persistence techniques that survive resets and upgrades.
Source
Tue 16 Apr 20241
watchTowr publishes technical analysis of GlobalProtect exploitation.
Source
Sun 14 Apr 20241
Hotfixes begin shipping for commonly deployed PAN-OS maintenance releases (for example 10.2.9-h1, 11.0.4-h1, 11.1.2-h3).
Source
Fri 12 Apr 20241
Palo Alto Networks publishes CVE-2024-3400. CISA adds it to KEV. Volexity publishes its report.
Source
Wed 10 Apr 20241
Volexity confirms customer firewall compromise and reverse-shell activity.
Source
Tue 26 Mar 20241
Volexity sees earliest UTA0218 probing with zero-byte files on GlobalProtect devices.
Source
News & write-ups
Research3
Vendor1
- CVE-2024-3400 PAN-OS advisory
Palo Alto Networks
PoC index (for defenders)
Public proof-of-concept links for defensive validation, with a source and a validation status.