CVE-2026-66384

CVE-2026-66384: JFrog Artifactory Path Traversal (CWE-22) Exploitation

Initial Access Collection Discovery Last updated:

Detects exploitation attempts against CVE-2026-66384, an improper limitation of a pathname to a restricted directory (path traversal, CWE-22) vulnerability in JFrog Artifactory. This CISA KEV-listed flaw allows an attacker to supply crafted pathnames — typically via repository artifact download/upload APIs or the UI — to escape the intended repository storage root and read or write arbitrary files on the Artifactory host (e.g. Artifactory config, database credentials, master.key, or OS files). Detection focuses on traversal sequences (../, encoded variants, absolute paths, null bytes) in HTTP request paths and query parameters directed at Artifactory endpoints (/artifactory/api/, /ui/, /access/), anomalous access to files outside repository roots, and requests targeting sensitive system paths.

Vulnerability Intelligence

KEV — Known Exploited

What is CVE-2026-66384 CVE-2026-66384: JFrog Artifactory Path Traversal (CWE-22) Exploitation?

CVE-2026-66384: JFrog Artifactory Path Traversal (CWE-22) Exploitation (CVE-2026-66384) maps to the Initial Access and Collection and Discovery tactics — the adversary is trying to get into your network in MITRE ATT&CK.

This page provides production-ready detection logic for CVE-2026-66384: JFrog Artifactory Path Traversal (CWE-22) Exploitation, covering the data sources and telemetry it touches: IIS/Reverse-proxy logs, WAF/App Gateway diagnostics, Web server access logs. The queries below are rated high severity at medium confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.

MITRE ATT&CK

Tactic
Initial Access Collection Discovery
Microsoft Sentinel / Defender
kusto
let traversalPatterns = dynamic(["..%2f","..%5c","%2e%2e%2f","%2e%2e/","..\\/","..%252f","%00","/etc/passwd","master.key","/access/etc","artifactory.config"]);
let rawTraversal = @'(\.\./|\.\.\\|\.\.%2[fF]|%2[eE]%2[eE])';
union isfuzzy=true W3CIISLog, AzureDiagnostics, CommonSecurityLog
| extend reqUri = tostring(coalesce(column_ifexists("csUriStem",""), column_ifexists("requestUri_s",""), column_ifexists("requestUrl",""))),
         reqQuery = tostring(coalesce(column_ifexists("csUriQuery",""), column_ifexists("requestQuery_s",""))),
         clientIp = tostring(coalesce(column_ifexists("cIP",""), column_ifexists("clientIP_s",""), column_ifexists("SourceIP",""))),
         httpStatus = tostring(coalesce(column_ifexists("scStatus",""), column_ifexists("httpStatus_d","")))
| where reqUri has_any ("/artifactory","/access","/ui/api") or reqUri contains "artifactory"
| extend combined = strcat(reqUri, "?", reqQuery)
| where combined matches regex rawTraversal or combined has_any (traversalPatterns)
| project TimeGenerated, clientIp, reqUri, reqQuery, httpStatus, combined
| summarize attempts = count(), sampleUris = make_set(reqUri, 10), statuses = make_set(httpStatus, 10) by clientIp
| where attempts >= 1
| order by attempts desc

Flags HTTP requests to Artifactory endpoints containing path traversal sequences or references to sensitive files, correlated by source IP.

high severity medium confidence

Data Sources

IIS/Reverse-proxy logs WAF/App Gateway diagnostics Web server access logs

Required Tables

W3CIISLog AzureDiagnostics CommonSecurityLog

False Positives

  • Legitimate artifact paths that coincidentally contain double-dot sequences in package version strings
  • Security scanners and authorized vulnerability assessment tools probing the host
  • Automated CI/CD clients using relative repository paths that get URL-normalized upstream

Sigma rule & cross-platform mapping

The detection logic for CVE-2026-66384: JFrog Artifactory Path Traversal (CWE-22) Exploitation (CVE-2026-66384) above is provided in a vendor-neutral form so you can deploy it on any SIEM. The same logic is shipped here as native KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the following logsource:

logsource:
  category: network_connection
  product: windows

Browse the community-maintained Sigma rules for this technique:


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Basic path traversal to /etc/passwd via Artifactory download API

    Expected signal: Web/proxy and Artifactory access logs record a request to an /artifactory/ path containing %2f-encoded dot-dot sequences and 'etc/passwd'.

  2. Test 2Double-encoded traversal targeting master.key

    Expected signal: Access logs record a request with %252f (double-encoded) traversal sequences referencing master.key under an Artifactory API path.

  3. Test 3Backslash traversal probe against UI API endpoint (Windows host)

    Expected signal: IIS/reverse-proxy and Artifactory logs record a /ui/api request whose query contains backslash dot-dot sequences and a Windows path.


Response Playbook

Triage

  1. Confirm the target host is a JFrog Artifactory instance and identify its running version; compare against the JFrog security advisory for CVE-2026-66384 to determine if it is a vulnerable build.
  2. Extract the full decoded request path and query from the alert; determine whether the traversal targeted a sensitive file (e.g. master.key, access/etc/security.json, artifactory.config, /etc/passwd, DB connection files).
  3. Correlate the source IP: check whether it is internal CI/CD infrastructure, a known scanner, or an unexpected external address, and enumerate all other requests from that IP in the surrounding time window.
  4. Determine the HTTP response status/size for the suspicious requests — a 200 with a non-trivial body indicates a successful arbitrary file read.

Containment

  1. Block the offending source IP(s) at the WAF/reverse proxy and, if external exposure is not required, remove Artifactory from public internet access.
  2. Apply the JFrog fixed release for CVE-2026-66384 (upgrade Artifactory to the patched version per the JFrog self-managed releases advisory) or apply the vendor mitigation/workaround if immediate patching is not possible.
  3. If arbitrary file read is confirmed, rotate exposed secrets: Artifactory master.key/join key, database credentials, API keys, and any tokens stored in the config.

Evidence Collection

  1. Preserve reverse proxy, load balancer, and Artifactory access/request logs (access.log, request.log) covering the exploitation window with full URIs.
  2. Capture the Artifactory system state: config files, master.key modification timestamps, and any newly created or modified files in the storage/data directories that could indicate arbitrary write.

Escalation Criteria

  • ! Escalate to IR lead if any request returned a 200/206 for a path resolving outside the repository root (confirmed arbitrary file read) or if master.key/credentials were accessed.
  • ! Escalate to incident response if evidence of arbitrary file write, deployed webshell, or post-exploitation lateral movement from the Artifactory host is observed.

Investigation Guide

Forensic Artifacts

  • > Artifactory access.log / request.log entries containing traversal sequences and the resolved target path
  • > Reverse proxy/WAF logs showing raw and decoded request URIs
  • > Access or modification timestamps on master.key, security.json, and config files outside normal repository directories
  • > New or altered files in Artifactory storage directories indicating arbitrary write

Tuning Guidance

Baseline the legitimate artifact paths for your repositories — some package ecosystems embed dot-dot sequences in version coordinates, so refine the regex to require encoded traversal (%2e%2e, %2f) or references to sensitive filenames rather than bare '../' if you see high volumes of benign matches. Whitelist known CI/CD source IPs and authorized scanner ranges. Prioritize alerts where the HTTP response was 2xx/3xx with a meaningful body size, as these indicate successful file reads rather than blocked attempts.


Hunting Queries

Hunt across web/proxy logs for any Artifactory request containing traversal tokens or sensitive-file references, surfacing successful (2xx) reads by source IP.

Hunting — KQL
kql
W3CIISLog | where csUriStem contains "artifactory" | where csUriStem matches regex @'(\.\./|%2e%2e%2f|%00)' or csUriQuery matches regex @'(\.\./|%2e%2e%2f|master\.key|/etc/passwd)' | summarize count(), make_set(csUriStem,20) by cIP, scStatus | order by count_ desc
Hunting — SPL
spl
index=web sourcetype IN ("jfrog:artifactory:access","nginx:plus:access") uri="*artifactory*" | regex uri="(?i)(\.\./|%2e%2e%2f|%00|master\.key|/etc/passwd)" | stats count values(status) by src_ip uri | sort - count

Atomic Red Team Tests

Test 1 Basic path traversal to /etc/passwd via Artifactory download API
linux

Sends an encoded directory traversal request to the Artifactory artifact download endpoint attempting to read /etc/passwd (lab-only, non-destructive read attempt).

Command

bash
curl -sk 'https://artifactory.lab.local/artifactory/example-repo/..%2f..%2f..%2f..%2f..%2fetc%2fpasswd' -H 'Authorization: Bearer LAB_TOKEN' -o /tmp/cve_2026_66384_test.out; echo "status=$?"

Cleanup

bash
rm -f /tmp/cve_2026_66384_test.out

Expected Telemetry

Web/proxy and Artifactory access logs record a request to an /artifactory/ path containing %2f-encoded dot-dot sequences and 'etc/passwd'.

Expected Detection

The kql/spl rules match on the encoded traversal tokens targeting an Artifactory path and raise an alert keyed on the source IP.

Test 2 Double-encoded traversal targeting master.key
linux

Sends a double-URL-encoded traversal payload aimed at the Artifactory master.key to simulate a stealthier read attempt.

Command

bash
curl -sk 'https://artifactory.lab.local/artifactory/api/repositories/..%252f..%252f..%252fvar%252fopt%252fjfrog%252fartifactory%252fetc%252fsecurity%252fmaster.key' -o /tmp/cve_2026_66384_mk.out; echo "status=$?"

Cleanup

bash
rm -f /tmp/cve_2026_66384_mk.out

Expected Telemetry

Access logs record a request with %252f (double-encoded) traversal sequences referencing master.key under an Artifactory API path.

Expected Detection

Rules matching %2e%2e/%252f patterns and the 'master.key' string flag the request; tuning guidance recommends prioritizing this sensitive-file match.

Test 3 Backslash traversal probe against UI API endpoint (Windows host)
windows

Sends a backslash-based traversal probe to an Artifactory UI API endpoint on a Windows-hosted instance to read a Windows system file.

Command

powershell
curl.exe -sk "https://artifactory.lab.local/ui/api/v1/download?path=..\..\..\..\Windows\win.ini" -o %TEMP%\cve_2026_66384_win.out & echo status=%errorlevel%

Cleanup

powershell
del /q %TEMP%\cve_2026_66384_win.out

Expected Telemetry

IIS/reverse-proxy and Artifactory logs record a /ui/api request whose query contains backslash dot-dot sequences and a Windows path.

Expected Detection

The kql and elastic_eql rules match the backslash traversal tokens ('..\\') in the query targeting the Artifactory UI API endpoint.

Related Detections