Navarino Infinity Blind SQL Injection / Session Fixation

Navarino Infinity versions prior to 2.2 suffer from session fixation and remote blind SQL injection vulnerabilities.


MD5 | 8c6b15e0bd87e4ae1bcbbb82908fa878

There is also a blog post about that on:
https://medium.com/@evstykas/pwning-ships-vsat-for-fun-and-profit-ba0fe9f42fb3 <https://medium.com/@evstykas/pwning-ships-vsat-for-fun-and-profit-ba0fe9f42fb3>

Vulnerability Security Advisory < 201800217 >
=======================================================================
title: Multiple vulnerabilities
product: All Navarino infinity products
vulnerable version: Navarino infinity < 2.2
fixed version: Navarino infinity > 2.2
CVE number: -
impact: critical
found: 2017-12-13
by: Vangelis Stykas

=======================================================================

Vendor description:
-------------------
Infinity is developed, owned and managed by Navarino. It is distributed by Navarino, Inmarsat Maritime and a growing number of other reputable maritime communications service providers.
Users of Infinity are no longer required to use exclusively Navarino airtime services or Inmarsat technology.

Infinity software is continuously developed and updated on a quarterly basis. It is designed in such a way that it continuously updates all installed units to incorporate new features as asked for by existing and prospective users. Therefore, all users benefit from every update and may find useful tools that were suggested by their peers in the shipping industry.
In navarinos website infinity has stated to handle more than 6000 vessels


Vulnerability overview/description:
-----------------------------------
1) Blind sql injection

Navarino infinity exposes an unauthenticated script that is prone to blind sql injection.
If successfully exploited the user can get info from the underlying postgresql database that
could lead into to total compromise of the product.
The said script is available with no authentication

2) Session fixation attack
All infinity products are prone to a session fixation attack.Server accepts the session id as a GET
parameter.This could lead to phishing attacks that can bypass the two factor authentication that is present
in some installations.Furthermore this can be chained with the vulnerability 1 and have the attacker login as
any user with no phissing required.

3) Authentication Bypass Using an Alternate Path or Channel
There are certain functions that when placed in the url bypass any authentication mechanism in place.This could
lead into information leaking.


Proof of concept:
-----------------
1) Blind sql injection

### Details
* Attack Vector: HTTP GET
* Prerequisites: None
* CWE: Sql Injection
* Technical Impact: Unrestricted access to database.
* Vulnerable query URL: /jq.php?action=loadtransactions&rows=5
* Vulnerable GET parameter: rows


2) Session fixation attack

### Details
* Attack Vector: HTTP GET
* Prerequisites: None
* CWE: Session Fixation, Session Hijacking
* Technical Impact: Logging in as another user
* Vulnerable query URL: /anyfile.php?PHPSESSID=123
* Vulnerable GET parameter: PHPSESSID


3) Authentication Bypass Using an Alternate Path or Channel
### Details
* Attack Vector: HTTP GET
* Prerequisites: None
* CWE: Authentication Bypass Using an Alternate Path or Channel
* Technical Impact: Information leak
* Vulnerable query URL: /anything/authenticate

If on the place of /anything/ in the url an existing class is entered that classes main function would be executed leaking (some) internal data.
e.g.
/index.php/logs/authenticate/
/index.php/admin/validateAuthentication/


Vulnerable / tested versions:
-----------------------------
Navarino infinity (most up to date version in December 2017)


Vendor contact timeline:
------------------------
2018-01-09: Contacting Navarino helpdesk (technical support) asking what is their procedure
for vulnerability disclosure.
2018-01-11: Follow up contact with Navarino technical support as no answer was received.
2018-01-16: Contact with a new ticket Navarino technical support asking again for their
procedure for vulnerability disclosure.
2018-01-16: Technical support responds providing an email for disclosing.
2018-01-16: Sending vulnerability disclosure to given email and asking for an ETA of fixing.
2018-01-16: Navarino acknowledges receival of disclosure asking for some more info.
2018-01-17: More info provided for all vulnerabilities with an exploit scenario
for each one.
2018-01-25: Reaching out for an update as no response was sent for the previous email.
2018-01-31: Navarino responds with an update that they are working on a fix and updating all vessels.
2018-02-17: Public advisory release.



Related Posts