usd-2019-0014 | Oracle Transportation Management (OTM)/6.4.3


Advisory ID: usd-2019-0014
CVE Number: CVE-2019-2709
Affected Product: Oracle Transportation Management
Affected Version: 6.4.3
Vulnerability Type: Reflected Cross-Site Scripting
Security Risk: High
Vendor URL: https://www.oracle.com
Vendor Status: Fixed

Description

Reflected XSS attack (or non-persistent attack) occur when a malicious script is reflected off of a web application to the victim’s browser. The attack is typically delivered via email or a web site and activated through a link, which sends a request to a website with a vulnerability that enables execution of malicious scripts.

The vulnerability is located in the administrator section of the application. If an attacker succeeds to execute a specific GET request via CSRF inside the browser of a logged in administrator, he will execute javascript in the context of the administrator user. In result he can perform actions on behalf of the administrator and thus potentially compromise complete application.

Proof of Concept (PoC)

The vulnerability present is a reflected cross site scripting attack. The vulnerable parameter is „query_type“.

The request is send if the user:
1.) Logs in as an administrator
2.) Selects the menu „Restricted Party Screening“
3.) Selects the sub menu „Restricted Party Screening“.
4.) Clicks the button „Match“ to start a search. The search parameters may be empty.
5.) Inside the displayed table clicks on a column to sort the corresponding results.

Since the parameter is URL-encoded, the attacker also has to encode his payload. Due to incorrect filtering „> enables the attacker to break out of the context and insert custom HTML code.
The application tries to prevent Croos-Site Scripting attacks by filtering e.g. &ltscript> or &ltimg> tags with embedded javascript. But for example the string &ltsvg onload=alert(1);> is not being filtered.

The complete Payload would look like this: urlencode(„>&ltsvg onload=alert(1);>) .

GET /GC3/gtm.webserver.query.QueryResultSortServlet/1552062217898?ct=ODI3NjMyMjQxNjY5MzU5NDU5MQ%3D%3D&bcKey=MTU1MjA2MjIxNzkwMjox&sortField=FirstName&sortType=DESC&query_type=%22%3e%3c%73%76%67%0c%6f%6e%6c%6f%61%64%3d%64%6f%63%75%6d%65%6e%74%2e%6c%6f%63%61%74%69%6f%6e%2e%68%72%65%66%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%75%73%64%2e%64%65%22%3b%3e HTTP/1.1
Host: xxx.yyy.zzz
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://xxx.yyy.zzz/GC3/gtm.webserver.query.QueryResultSortServlet/1552062217898?ct=ODI3NjMyMjQxNjY5MzU5NDU5MQ%3D%3D&bcKey=MTU1MjA2MjIxNzkwMjox&sortField=FirstName&sortType=ASC&query_type=
Cookie: OTMi=2rVd7wQ7iXICrkfRPqoRYC3SUkoIqFCHRg8l197RCJbhrvK6v-gF!-1223214642
Connection: close
Upgrade-Insecure-Requests: 1

Fix

Make sure to encode the user supplied input.

Timeline

  • 2019-03-26 First contact request via secalert_us@oracle.com
  • 2019-03-27 Oracle Security Team opened a ticket for the issue
  • 2019-04-13 Status update: Issue is fixed in CPUApr2019
  • 2019-07-31 Security advisory released

Credits

This security vulnerability was found by Luca Rupp of usd AG.