CVE-2026-82329 is a critical authentication bypass in JFrog Artifactory, scored CVSS 9.8 and rooted in JFrog Access — the component that issues and validates every credential the platform trusts. On a default-configured, self-managed instance, an unauthenticated attacker who can reach the web port can forge an administrator-level access token. No stolen password, API key, or session is required.
JFrog patched the flaw on August 28, 2026. By September 1, watchTowr had observed exploitation in the wild; CISA added the CVE to the Known Exploited Vulnerabilities catalog on September 2. Because Artifactory is the binary and build-artifact backbone of thousands of CI/CD pipelines, admin access here is a supply-chain detonator — every downstream consumer of a poisoned package inherits the compromise.
This briefing walks the mechanics of the phantom join key, how a predictable signing secret becomes a forged JWT, what responders should hunt in Artifactory logs, and why patching alone does not evict an attacker who already minted a token.
◈ Table of Contents
01 · Vulnerability Profile
CVE-2026-82329The flaw lives in JFrog Access, the internal service that signs and verifies the tokens Artifactory uses for authentication and inter-service trust. A weakness in how the signing material is derived on a default configuration collapses the entire authentication model down to a value an attacker can compute offline.
| Attribute | Value |
|---|---|
| CVE ID | CVE-2026-82329 |
| CVSS 3.1 Base | 9.8 Critical |
| CVSS Vector | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Weakness | CWE-287 — Improper Authentication |
| Affected component | JFrog Access (credential issuance & validation) |
| Deployment impacted | Self-managed Artifactory in default config; JFrog Cloud not affected |
| Pre-conditions | Network access to the Artifactory web port; no join key explicitly set |
| NVD published | 2026-08-28 (last modified 2026-09-03) |
| CISA KEV | Added 2026-09-02 |
| Exploitation | Confirmed in the wild (watchTowr, 2026-09-01) |
| CVSS 3.1 metric | Value | Meaning |
|---|---|---|
| Attack Vector (AV) | Network | Exploitable remotely over the web port |
| Attack Complexity (AC) | Low | No special conditions; reliably reproducible |
| Privileges Required (PR) | None | No prior account or credential needed |
| User Interaction (UI) | None | No victim action required |
| Scope (S) | Unchanged | Impact confined to the vulnerable component's authority — which here is total |
| C / I / A | High / High / High | Full read, modify and disruption of the platform |
The CVSS vector reads AV:N/AC:L/PR:N/UI:N — network-reachable, low complexity, no privileges, no user interaction. This is the exact profile that gets internet-exposed appliances mass-scanned. Treat any self-managed instance below the fixed build as presumed reachable-and-exploitable.
02 · Disclosure & Exploitation Timeline
4-day patch-to-KEV- 1Aug 28, 2026 — JFrog publishes fixed builds and the advisory for CVE-2026-82329. The CVE record is published to NVD the same day.
- 2Sep 1, 2026 — watchTowr reports observing exploitation against exposed instances, including forged admin tokens and enumeration activity.
- 3Sep 2, 2026 — CISA adds CVE-2026-82329 to the Known Exploited Vulnerabilities catalog, setting a remediation deadline for federal agencies.
- 4Sep 3, 2026 — NVD last-modified date reflects updated scoring and configuration data as vendor and downstream analyses land.
The window between a JFrog advisory and working exploitation is now measured in days, not weeks. Artifactory advisories should trigger the same emergency-change process you reserve for internet-facing VPN and firewall CVEs.
03 · Affected & Fixed Versions
6 release trainsJFrog issued parallel fixes across all supported 7.x maintenance trains. Match your running build to its train, then confirm you are on the fixed patch level or higher. Anything below the fixed build in a listed train is vulnerable.
| Release train | Affected range | Fixed build |
|---|---|---|
| 7.161.x | 7.161.0 – 7.161.19 | 7.161.20 fixed |
| 7.146.x | 7.146.0 – 7.146.37 | 7.146.38 fixed |
| 7.133.x | 7.133.0 – 7.133.28 | 7.133.29 fixed |
| 7.125.x | 7.125.0 – 7.125.19 | 7.125.20 fixed |
| 7.117.x | 7.117.0 – 7.117.27 | 7.117.28 fixed |
| 7.111.x | 7.111.4 – 7.111.20 | 7.111.21 fixed |
JFrog Cloud (SaaS) instances were protected server-side and require no action. This CVE is a self-managed / on-prem problem — do not assume "we use JFrog" means "we're covered."
04 · Initial Access: The Phantom Join Key
Empty-string secretIn a JFrog deployment, the join key is the shared secret that binds services together and underpins the trust JFrog Access uses when it derives the material for signing tokens. It is meant to be a high-entropy value that an administrator provisions and guards. If it is unknown to an attacker, tokens cannot be forged — verification of a signed token depends on knowing the signing secret.
CVE-2026-82329 breaks that assumption for instances where an administrator never explicitly configured an additional join key. According to watchTowr's analysis, those instances receive a "phantom" join key generated by the product itself — and crucially, the vulnerable code accepts an empty string ("") as a valid join key.
When the system computes the signing key from an empty join key, the result is fully deterministic — a known, predictable secret rather than a random one. Since the attacker knows the input (the empty string) and the derivation, they can reproduce the same signing material offline. The secret that was supposed to be the keystone of trust becomes a constant anyone can calculate.
This is a classic "insecure default meets weak input validation" pairing: an empty secret should have been rejected outright, and a missing secret should never resolve to a computable constant. Together they turn a cryptographic control into a rubber stamp.
05 · Technical Deep Dive: Forging the Token
JWT mechanicsArtifactory access tokens are signed credentials issued by JFrog Access. A token carries the subject (who), the scope (what they can do — including the coveted applied-permissions/admin scope), and an expiry, all protected by a signature. Artifactory trusts a presented token if, and only if, the signature validates against the expected signing key. Verification never phones home; it is a local cryptographic check.
That design is sound — until the signing key stops being secret. If an attacker can derive the same key the server uses to verify, they can construct a token with any subject and any scope they like, sign it, and it will pass verification as though JFrog Access had issued it. The server has no way to tell a self-signed forgery from a genuine one, because both carry a mathematically valid signature.
On a vulnerable, default-configured instance the join key resolves to the phantom value — effectively an empty string. Because the signing material is derived deterministically from that input, the attacker reproduces it without ever touching the target: same empty input, same derivation, same key. This is why watchTowr notes that no exploit crosses the wire — the heavy lifting happens on the attacker's own machine.
The above is a structural illustration only. It contains no real signing key, algorithm, or reproducible parameter — CyberHawk does not publish working forgery material. The takeaway for defenders is the property, not the recipe: on a vulnerable instance, token trust is broken end-to-end.
Once minted, the forged token behaves exactly like a legitimate admin token. It authenticates over standard TLS to the standard API endpoints; the requests are well-formed; the signature validates. As watchTowr puts it, no network signature fires because an administrative session is simply going about its business. There is no malformed payload for an IDS to catch and no exploit string for a WAF to block — which is precisely why log-based, behavioral detection (Phase 09) matters more here than perimeter signatures.
Access tokens are independent credentials with their own lifetimes. A token minted before you patched keeps working after the upgrade unless you explicitly revoke it — the binary fix does not invalidate previously issued tokens.
06 · Post-Exploitation & Supply-Chain Impact
Observed activitywatchTowr grouped observed attacker behaviour into three broad patterns — from lightweight verification through to hands-on persistence. Because Artifactory sits upstream of build and deployment, admin access is not the end state; it is the launch point for a software supply-chain compromise.
Verification
The attacker confirms the flaw works — mints a token, makes a benign admin call, then stops. Low noise, easy to miss without token-issuance auditing.
Enumeration
Users, groups, existing tokens, credentials and federated access topologies are queried to map trust relationships and downstream targets.
Persistence
Backdoor admin users are created so access survives token revocation and patching — the highest-severity outcome observed.
| Pattern | Observed actions | Responder signal |
|---|---|---|
| Verification | Mint token, issue one benign admin call, disengage | Isolated token issuance without a matching login |
| Enumeration | Query users, groups, tokens, credentials, federation topology | Burst of reads across security endpoints from one principal |
| Persistence | Create backdoor admin user; alter security config | New admin account; permission / config change events |
| Supply-chain impact | Overwrite or republish packages and images | Admin-driven PUT/DEPLOY overwrites in repositories |
With admin rights, an attacker can read every artifact, steal every stored credential and access token, alter security configuration, and — most damaging — overwrite or poison packages that developers and pipelines pull on trust. A single tampered dependency or container image propagates into every build that consumes it. Artifactory typically holds Maven, npm, PyPI, Docker, NuGet and Go artifacts side by side, so one compromised host can seed malware across multiple language ecosystems at once.
- Read and exfiltrate all repository contents and build artifacts
- Harvest stored credentials, API keys and every existing access token
- Overwrite / republish packages and container images consumed downstream
- Modify permissions, replication and federation to widen blast radius
- Create backdoor admin accounts for post-remediation persistence
Treat a confirmed compromise as a supply-chain incident, not a single-host incident. Every artifact served since the earliest suspicious token issuance is suspect until integrity-verified against a known-good source.
07 · Exposure & Attack Surface
Recon pivotswatchTowr reported that early exploitation came from a small number of IP addresses across varying geographies, without broad-scale scanning at the time of reporting — a pattern consistent with targeted operators rather than mass opportunism. That can change fast once a public proof-of-concept lands, so measuring your own exposure now is the priority.
Artifactory instances are commonly published for developer and CI/CD convenience. Use external asset-discovery pivots to enumerate what you actually expose, then cross-check against your patch state.
Do not rely on "it's only reachable internally." A forged token needs only network reachability — a compromised workstation, a flat build network, or an over-permissive VPN is enough to reach an internal Artifactory.
08 · Indicators of Compromise
Behavioral IOCsNo universal network IOCs (fixed hashes, domains or IPs) have been published for this campaign — and by design, a forged token leaves no exploit artifact on the wire. The reliable indicators are behavioral, drawn from Artifactory's own access and audit logs. Hunt for the effects of admin abuse rather than the exploit itself.
| Indicator | Where to look | Why it matters |
|---|---|---|
| Admin token issued with no preceding login | Access audit log · access.log | Forged tokens appear as issuance/usage without a matching interactive authentication event |
| New admin user created off-hours | Access audit log | Backdoor persistence — the highest-severity observed action |
| Burst enumeration of users / groups / tokens | request.log | Mapping of trust relationships and federation topology |
| Security config or permission change | Access audit log | Widening blast radius, disabling controls |
| Package overwrite / republish by admin | request.log (PUT/DEPLOY) | Supply-chain poisoning of downstream consumers |
| Admin activity from unfamiliar source IP | request.log | Early exploitation seen from a small set of foreign IPs |
Default log retention may be shorter than the attacker's dwell time. If logs do not reach back to at least August 28, treat the gap as an unknown and widen scope accordingly — absence of evidence is not evidence of absence here.
09 · Detection & Hunt Queries
KQL · SPL · SigmaThe queries below assume Artifactory access and request logs are shipped to your SIEM. Adjust table names, sourcetypes and field mappings to your ingestion pipeline. Each query is paired KQL (Microsoft Sentinel) and SPL (Splunk).
| Log source | Default path | What it gives you |
|---|---|---|
| Access audit log | JFrog Access service logs | Token issuance, user/role creation, security config changes |
| request.log | $JFROG_HOME/artifactory/var/log/request.log | Per-request method, URI, principal, source IP, status |
| access.log | $JFROG_HOME/artifactory/var/log/access.log | Authentication and authorization decisions |
| Reverse proxy / LB logs | nginx / HAProxy / cloud LB | External source IPs and TLS metadata for admin sessions |
Baseline your legitimate token-issuance pattern first. Automated pipelines mint tokens constantly; the signal is issuance that does not correlate to a known service principal or an interactive login, not token issuance in general.
10 · MITRE ATT&CK Mapping
7 techniques| Tactic | Technique | Application to CVE-2026-82329 |
|---|---|---|
| Initial Access | T1190 — Exploit Public-Facing Application | Unauthenticated exploitation of the exposed Artifactory web service |
| Defense Evasion / Persistence | T1078.001 — Valid Accounts: Default Accounts | Abuse of the default (phantom) join-key configuration |
| Credential Access | T1555 — Credentials from Password Stores | Harvesting stored credentials and access tokens after gaining admin |
| Credential Access | T1552 — Unsecured Credentials | Reading API keys and secrets held in repositories and config |
| Persistence | T1136 — Create Account | Creating backdoor administrator users that survive patching |
| Persistence / Priv. Manipulation | T1098 — Account Manipulation | Altering roles, permissions and security configuration |
| Impact | T1195.002 — Supply Chain Compromise: Software Supply Chain | Poisoning packages and images consumed by downstream builds |
11 · Mitigation & Hardening
Patch + rotateUpgrade self-managed Artifactory to the fixed build in your maintenance train: 7.161.20, 7.146.38, 7.133.29, 7.125.20, 7.117.28 or 7.111.21. Prioritise internet-exposed instances, then internal ones reachable from developer or CI/CD networks. JFrog Cloud requires no action.
Access tokens are independent credentials with their own expiry; an upgrade does not invalidate tokens already issued. Any token an attacker forged before you patched keeps working. Revoke and reissue tokens, rotate stored credentials and secrets, and re-key the join key explicitly rather than relying on the auto-generated default.
If any backdoor admin account may have been created, rotating tokens alone will not evict the attacker. Enumerate all admin users, remove unrecognised ones, and force credential resets across the platform.
- 1Review access and audit logs from Aug 28 onward for the behavioral IOCs in Phase 08.
- 2Enumerate all admin users and tokens; remove and revoke anything unattributable.
- 3Explicitly set a strong join key; do not leave it auto-generated or empty.
- 4Validate artifact integrity for anything served since the earliest suspicious event; rebuild from known-good sources if in doubt.
- 5Rotate CI/CD integration credentials and review federation / replication relationships with connected systems.
- 6Remove Artifactory from direct internet exposure where possible; front it with authenticated reverse proxy / access controls.
- All instances on a fixed build for their train
- Join key explicitly configured with a strong value
- All tokens rotated; no unattributable tokens remain
- Admin user list verified; backdoor accounts removed
- Artifact integrity validated; poisoned packages purged
- Logs reviewed back to Aug 28 with findings documented
12 · Sources & References
Primary + corroboratingIs your build infrastructure exposed?
Run any IPs, domains or artifact hosts you are unsure about through the CyberHawk IOC Scanner, and track live exploitation of edge and supply-chain CVEs on the CyberHawk Threat Intel feed. For step-by-step response playbooks, browse the CyberHawk SOP library.
◈ Stay Connected
Follow CyberHawk Threat Intel for threat intelligence, deployment guides and hands-on SOC tooling content.
"They can't exploit you if you are the Exploit."