← Back to Feed CACHED · 2026-09-12 09:02:37 · CACHE_KEY CVE-2026-42016
CVE-2026-42016 · CWE-863 · Disclosed 2026-07-27

JFrog Artifactory

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

Someone handed the janitor a master key because the building only checked his badge photo, not which doors he could open

CVE-2026-42016 is a privilege-escalation flaw in JFrog Artifactory Self Hosted versions prior to 7.133.11. When Artifactory validates an access token (JWT), it correctly verifies the cryptographic signature and the issuer claim but fails to validate the token's scope claim — the field that defines what the bearer is actually allowed to do. An authenticated user with any valid low-privilege token can exchange it at the /access/api/v1/tokens endpoint for a new token carrying admin scope, granting full control over the Artifactory instance: user management, repository configuration, plugin deployment, and cluster-key extraction. In the wild, this bug is chained with CVE-2026-42018 (which leaks an anonymous-user JWT to an unauthenticated caller), collapsing the entire path from zero access to full admin in two HTTP requests.

JFrog rated this HIGH at 8.1 — that score is dangerously low for the real-world situation. Artifactory is, by definition, a supply-chain artifact store: every CI/CD pipeline pulling packages through it trusts its integrity. Admin takeover means an attacker can inject poisoned artifacts into every downstream build. CISA agrees — they added it to the KEV catalog on September 2, 2026 with a September 25 remediation deadline. Wiz Research documented active exploitation from August 15 through September 8 with Rust-based backdoors, persistent admin accounts, and malicious Groovy plugins dropped post-compromise. Fastly logged 406,000 exploitation attempts on September 2 alone. The vendor's 8.1 dramatically underweights the blast radius of owning a package registry.

"KEV-listed supply-chain escalation: low-priv token to Artifactory admin, actively exploited in the wild"
02 · The Attack Path

6 steps from start to impact.

STEP 01

Obtain a low-privilege JWT (or chain CVE-2026-42018 for free)

The attacker needs any valid Artifactory JWT. Standalone, this requires at least a read-only account. In the observed campaign, attackers chain CVE-2026-42018: a POST /access/api/v1/aws/token/ returns an anonymous-user JWT even when anonymous access is disabled. This eliminates the authentication prerequisite entirely.
Conditions required:
  • Network access to the Artifactory HTTP(S) port
  • Either a valid low-privilege account OR an unpatched instance also vulnerable to CVE-2026-42018
Where this breaks in practice:
  • If CVE-2026-42018 is already patched, attacker needs credentials — reduces opportunity to insiders or credential-stuffing
  • WAF rules blocking /access/api/v1/aws/token/ would stop the free-token path
Detection/coverage: Monitor for POST /access/api/v1/aws/token/ returning HTTP 200 from unauthenticated sources. GreyNoise and Fastly have tagged scanning for this endpoint.
STEP 02

Exchange token for admin-scoped JWT

The attacker sends the low-privilege JWT to POST /access/api/v1/tokens with a request body specifying scope: applied-permissions/admin. Because Artifactory validates the token's signature and issuer but not its scope, the server mints a fresh JWT with full administrator privileges and returns it in the response body. The entire escalation is a single HTTP POST.
Conditions required:
  • A valid (any-scope) JWT from Step 1
Where this breaks in practice:
  • Patched instances (≥ 7.133.11) now validate scope on token exchange
  • Network segmentation preventing direct access to /access/ API paths would block this
Detection/coverage: Alert on any token:anonymous or low-privilege identity calling /access/api/v1/tokens and receiving HTTP 200. Correlate with subsequent privileged API calls within seconds.
STEP 03

Create persistent admin accounts

With the admin-scoped token, the attacker calls PUT /api/security/users/<username> to create new administrator accounts. Observed account names include svc_[a-zA-Z0-9]{8}, Nxploited_*, labadmin_*, 0xTerror, and names designed to blend in like jfrog-distribution, repo-service, backup-service, and ldap_admin.
Conditions required:
  • Admin-scoped JWT from Step 2
Where this breaks in practice:
  • None — this is a native Artifactory admin operation
Detection/coverage: Audit new user creation events in Artifactory access logs. Alert on admin-group membership changes outside change windows.
STEP 04

Deploy malicious Groovy plugins for code execution

Artifactory's plugin framework allows admin users to upload and execute Groovy scripts. Attackers upload a malicious plugin and trigger it via POST /api/plugins/execute/<plugin>, achieving arbitrary code execution on the Artifactory server with the privileges of the Artifactory process. This provides OS-level access to the host.
Conditions required:
  • Admin access from Step 3
  • Groovy plugin framework enabled (default in many deployments)
Where this breaks in practice:
  • Organizations that have disabled the Groovy plugin framework are protected from this specific post-exploitation path
  • File integrity monitoring on the plugin directory could detect the write
Detection/coverage: Monitor POST /api/plugins/execute/* and filesystem writes to the Artifactory plugins directory. Hash all deployed plugins against a known-good baseline.
STEP 05

Supply-chain poisoning and lateral movement

With admin access, the attacker can modify any artifact in any repository — injecting backdoored libraries, poisoned container images, or tampered binaries that downstream CI/CD pipelines will pull and deploy. Observed actors also extracted the cluster join key from /access/api/v1/system/security/join_key and dropped Rust-based backdoors to /tmp, /dev/shm, and /var/tmp for C2 communication to 64.207.232[.]6:8443.
Conditions required:
  • OS-level or admin-level access from Steps 3-4
Where this breaks in practice:
  • Artifact signing and verification (e.g., Sigstore/cosign) would catch tampered artifacts at consumption time
  • Network egress controls could block C2 callbacks
Detection/coverage: Monitor for unexpected artifact modifications (checksum changes on existing versions). Network detection for connections to known C2 infrastructure. File integrity monitoring on /tmp, /dev/shm, /var/tmp for new ELF binaries.
STEP 06

Persistence via Rust backdoor

The final observed stage is deployment of a custom Rust binary that establishes a reverse shell to attacker C2 infrastructure (hxxp://log.gitclone[.]org:45678/smtp for payload download, 64.207.232[.]6:8443 for C2). The backdoor survives Artifactory restarts and provides persistent access to the underlying host. SHA1: 513a907b69edffc3cb77a494da395178d21ef9bd.
Conditions required:
  • OS-level code execution from Step 4
Where this breaks in practice:
  • EDR/AV on the Artifactory host should detect the binary drop and C2 beacon
  • Container-based Artifactory deployments with read-only filesystems limit persistence locations
Detection/coverage: EDR alerting on new binaries in world-writable directories. Network IDS signatures for the known C2 domains and IPs.
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationActive. Wiz Research documented campaigns from Aug 15 – Sep 8, 2026 by multiple actors. Fastly logged 406,000 exploitation attempts on Sep 2 alone. Post-exploitation includes Rust backdoors, Groovy plugins, and persistent admin accounts.
CISA KEV StatusListed. Added September 2, 2026. Federal remediation deadline: September 25, 2026.
Proof-of-ConceptPublic. PoC appeared September 1, 2026. The exploit is trivial — two HTTP POST requests. Multiple PoC repos indexed on GitHub (SecureWithUmer/CVE-2026-PoCs).
EPSS Score0.00266 (low percentile). EPSS has not yet caught up to the active exploitation reality — this is a known lag for newly weaponized CVEs.
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N — Network-accessible, low complexity, low privilege required, no user interaction. Scope unchanged but Confidentiality and Integrity both HIGH. The PR:L is effectively neutralized when chained with CVE-2026-42018.
Affected VersionsJFrog Artifactory Self Hosted all versions prior to 7.133.11. The companion CVE-2026-42018 affects < 7.111.20, 7.117.x < 7.117.27, 7.125.x < 7.125.19, 7.133.x < 7.133.28, 7.146.x < 7.146.8.
Fixed Version7.133.11 (for CVE-2026-42016 specifically). To address the full chain including CVE-2026-42018: 7.111.20, 7.117.27, 7.125.19, 7.133.28, 7.146.8. JFrog Cloud customers are not affected.
Exposure DataWiz reports 67-69% of organizations running Artifactory had vulnerable instances at disclosure. Six weeks later, 59% remain vulnerable to CVE-2026-42016. Artifactory instances are commonly exposed on ports 8081/8082 or behind reverse proxies on 443.
Disclosure DateJuly 27, 2026 (CVE-2026-42016 published).
ResearchersWiz Research: Shahar Dorfman, Sean Johnstone, Zohar Kaplan, Kurt Giacchino. Active exploitation documented in their September 10, 2026 blog post.
04 · The Call

noisgate verdict.

Final Verdict
UPGRADED to CRITICAL (9.6/10)

The single most decisive factor is the role multiplier: JFrog Artifactory is canonically a supply-chain artifact store — 100% of its installs serve this high-value role — and admin takeover enables poisoning every artifact consumed by downstream CI/CD pipelines, making the blast radius supply-chain-scale. Active KEV-listed exploitation with a trivial two-request chain and 59% of instances still unpatched cements this as a CRITICAL that JFrog's HIGH 8.1 dangerously underrates.

HIGH Vulnerability existence and exploitability confirmed by active campaigns
HIGH Supply-chain blast radius — Artifactory's entire purpose is artifact delivery
MEDIUM Exact fraction of instances reachable from the internet (Wiz says 67-69% orgs affected, but not all are internet-facing)

Why this verdict

  • Active exploitation removes all theoretical friction. This is not a hypothetical chain — Wiz documented multiple actors exploiting it from Aug 15 through Sep 8, 2026, with Fastly logging 406K attempts in a single day. CISA KEV-listed it on September 2.
  • PR:L prerequisite is nullified in practice. CVE-2026-42018, which is present in overlapping version ranges, hands an anonymous JWT to any unauthenticated caller. The real-world chain is unauth → admin in two HTTP requests, not the PR:L the CVSS vector suggests.
  • Role multiplier: Artifactory IS the supply chain. Unlike a bug in a component that *might* be deployed in a high-value role, Artifactory's sole purpose is serving as a software artifact repository. 100% of installs occupy the 'CI/CD + artifact store' high-value role. Admin takeover → artifact poisoning → every downstream build is compromised. Blast radius is supply-chain-scale by definition.
  • Trivial exploit complexity. The attack is two POST requests with no memory corruption, no race conditions, no special tooling. Public PoC has been available since September 1. The bar for exploitation is script-kiddie level.
  • Remediation stall amplifies risk. Six weeks post-disclosure, 59% of Artifactory instances remain vulnerable per Wiz telemetry. The patch gap is widening the exploitation window.

Why not higher?

A 9.6 is already near the ceiling. The only factor preventing a 10.0 is that the Availability impact is None (the CVSS vector shows A:N) — the attacker gains read/write control but the vulnerability itself does not directly cause denial of service. Additionally, JFrog Cloud customers are unaffected, meaning a portion of the Artifactory user base is inherently protected.

Why not lower?

Downgrading below CRITICAL is impossible here. The affected component is canonically a supply-chain artifact store (100% of installs serve this role), the chain ends in full admin takeover enabling supply-chain poisoning, it is actively exploited in the wild with a trivial two-request chain, and CISA has KEV-listed it. Every floor condition is met: high-value role ≥10% of install base, blast radius at supply-chain scale, active exploitation. Even if we considered the PR:L in isolation, the companion CVE-2026-42018 eliminates it in overlapping version ranges. There is no friction factor that could pull this below the CRITICAL floor.

05 · Compensating Control

What to do — in priority order.

  1. Block /access/api/v1/ paths from untrusted networks immediately — The entire attack chain flows through Artifactory's Access API. Deploy WAF or reverse-proxy rules to restrict /access/api/v1/tokens, /access/api/v1/aws/token/, and /access/api/v1/registry/join to trusted management IPs only. This is your fastest mitigation — deploy within the 3-day noisgate mitigation SLA for CRITICAL.
  2. Audit all Artifactory admin accounts NOW — Search for the known IoC account patterns: svc_[a-zA-Z0-9]{8}, Nxploited_*, labadmin_*, 0xTerror, jfrog-distribution, repo-service, backup-service, ldap_admin. Any admin account created after August 15 that was not provisioned through your IAM workflow should be treated as compromise evidence. Do this today.
  3. Rotate all Artifactory tokens and the cluster join key — If you were vulnerable at any point during the Aug 15 – Sep 8 exploitation window, assume tokens may have been minted by attackers. Rotate all access tokens, revoke any you cannot account for, and regenerate the cluster join key (/access/api/v1/system/security/join_key). Do this within 3 days.
  4. Disable the Groovy plugin framework if not in use — Post-exploitation relies on Groovy plugins for code execution. If your deployment does not use custom plugins, disable the framework entirely to eliminate this lateral-movement path. This reduces blast radius even if the initial escalation succeeds.
  5. Deploy network egress controls on Artifactory hosts — Block outbound connections from Artifactory servers except to explicitly allowed destinations. This prevents C2 callback to attacker infrastructure (observed: 64.207.232[.]6:8443, log.gitclone[.]org:45678). Essential for limiting post-exploitation impact.
  6. Verify artifact integrity across all repositories — If compromise is suspected, audit artifact checksums against known-good baselines or upstream source checksums. Any artifact modified outside your CI/CD workflow during the exploitation window should be treated as potentially poisoned. Prioritize container images and internal library packages.
What doesn't work
  • Disabling anonymous access does not help. CVE-2026-42018 leaks an anonymous-user JWT *even when anonymous access is disabled* — that is the entire point of the companion vulnerability.
  • Network-level authentication (VPN/SSO) in front of Artifactory does not block the chain if any authenticated user can reach the Access API. The escalation works with *any* valid token, including read-only. Your SSO-authenticated read-only developer can be the unwitting token source.
  • Artifactory's built-in audit logging alone is insufficient for detection. The token exchange looks like a normal API call. You need *correlation* rules (low-priv identity → token mint → admin action) rather than simple log review.
06 · Verification

Crowdsourced verification payload.

Run this script on the Artifactory host or any machine with curl and network access to your Artifactory instance. Invoke as: bash check_cve_2026_42016.sh https://your-artifactory.example.com:8082. No authentication required — it checks the version endpoint which is typically unauthenticated.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_42016.sh — Detect CVE-2026-42016 (JFrog Artifactory token scope escalation)
# Usage: bash check_cve_2026_42016.sh <ARTIFACTORY_BASE_URL>
# Exit codes: 1=VULNERABLE, 0=PATCHED, 2=UNKNOWN

set -euo pipefail

if [ $# -lt 1 ]; then
  echo "Usage: $0 <ARTIFACTORY_BASE_URL>"
  echo "Example: $0 https://artifactory.corp.example.com:8082"
  exit 2
fi

BASE_URL="${1%/}"

# Attempt to get version from system info endpoint
VERSION=$(curl -sf --connect-timeout 10 "${BASE_URL}/api/system/version" 2>/dev/null | grep -oP '"version"\s*:\s*"\K[0-9.]+' || true)

if [ -z "$VERSION" ]; then
  # Try alternative endpoint
  VERSION=$(curl -sf --connect-timeout 10 "${BASE_URL}/api/system" 2>/dev/null | grep -oP '"version"\s*:\s*"\K[0-9.]+' || true)
fi

if [ -z "$VERSION" ]; then
  echo "UNKNOWN — Could not retrieve Artifactory version from ${BASE_URL}"
  echo "Ensure the URL is correct and the version endpoint is accessible."
  exit 2
fi

echo "Detected Artifactory version: ${VERSION}"

# Parse version components
IFS='.' read -ra PARTS <<< "$VERSION"
MAJOR=${PARTS[0]:-0}
MINOR=${PARTS[1]:-0}
PATCH=${PARTS[2]:-0}

# CVE-2026-42016 is fixed in 7.133.11
# All versions prior to 7.133.11 are vulnerable
if [ "$MAJOR" -lt 7 ]; then
  echo "VULNERABLE — Version ${VERSION} is below the 7.133.11 fix for CVE-2026-42016."
  exit 1
elif [ "$MAJOR" -eq 7 ]; then
  if [ "$MINOR" -lt 133 ]; then
    echo "VULNERABLE — Version ${VERSION} is below 7.133.11. Token scope validation is missing."
    exit 1
  elif [ "$MINOR" -eq 133 ] && [ "$PATCH" -lt 11 ]; then
    echo "VULNERABLE — Version ${VERSION} is below 7.133.11. Token scope validation is missing."
    exit 1
  elif [ "$MINOR" -eq 133 ] && [ "$PATCH" -ge 11 ]; then
    echo "PATCHED — Version ${VERSION} includes the CVE-2026-42016 fix."
    echo "NOTE: Also verify patches for CVE-2026-42018 and CVE-2026-82329 which affect different version branches."
    exit 0
  else
    # Versions on higher minor branches (7.146, 7.161, etc)
    # These branches have separate fix versions for the companion CVEs
    echo "PATCHED — Version ${VERSION} is on a branch above 7.133 (CVE-2026-42016 fix baseline)."
    echo "WARNING: Verify CVE-2026-42018 and CVE-2026-82329 patches for your specific branch."
    exit 0
  fi
else
  echo "PATCHED — Version ${VERSION} is above the affected major version."
  exit 0
fi
07 · Bottom Line

If you remember one thing.

TL;DR
Treat this as a hair-on-fire emergency. CVE-2026-42016 is KEV-listed, actively exploited by multiple actors, and your Artifactory instance is a supply-chain chokepoint — every poisoned artifact it serves lands in production. Per the noisgate mitigation SLA for CRITICAL, deploy compensating controls (block /access/api/v1/ from untrusted networks, audit admin accounts, rotate tokens) within 3 days — meaning by September 15, 2026. Per the noisgate remediation SLA, apply the vendor patch (upgrade to 7.133.11+) within 90 days (by December 11, 2026), but given active exploitation you should push the actual patch into your next emergency maintenance window, ideally this weekend. If you were running a vulnerable version at any point between August 15 and today, assume compromise until you can prove otherwise: hunt for the IoC account patterns, check for rogue Groovy plugins, and inspect /tmp, /dev/shm, /var/tmp for unexpected ELF binaries. Do not wait for Monday — this is a Saturday-morning page.

Sources

  1. Wiz Research — Artifactory Under Attack: In-the-Wild Exploitation
  2. The Hacker News — Attackers Chain JFrog Artifactory Flaws
  3. The Register — More JFrog Artifactory bugs under attack
  4. CybersecurityNews — JFrog Artifactory Vulnerabilities Actively Exploited
  5. GBHackers — Hackers Exploit JFrog Artifactory Flaws
  6. OpenCVE — CVE-2026-42016 Details
  7. CISA Known Exploited Vulnerabilities Catalog
  8. SecurityOnline — JFrog Artifactory Vulnerabilities Exploited in the Wild
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.