VYPR
Unrated severityOSV Advisory· Published Oct 3, 2018· Updated Aug 5, 2024

CVE-2018-17552

CVE-2018-17552

Description

SQL Injection in login.php in Naviwebs Navigate CMS 2.8 allows remote attackers to bypass authentication via the navigate-user cookie.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

SQL injection in Navigate CMS 2.8 login.php allows remote attackers to bypass authentication via the navigate-user cookie.

Vulnerability

Navigate CMS version 2.8 contains a SQL injection vulnerability in login.php. The navigate-user cookie value is directly concatenated into SQL queries without sanitization, allowing an attacker to inject arbitrary SQL. The affected code path is in the database::protect method (or similar) as referenced in the Metasploit module [1]. The vulnerability exists in all versions up to and including 2.8.

Exploitation

An unauthenticated remote attacker can exploit this by sending a POST request to /login.php with a crafted navigate-user cookie. For example, setting the cookie to \" OR TRUE--%20 (URL-encoded) causes the SQL query to return a valid session, bypassing authentication [1]. No user interaction or prior access is required.

Impact

Successful exploitation allows the attacker to bypass authentication and gain administrative access to the Navigate CMS backend. This can be chained with other vulnerabilities, such as the path traversal in navigate_upload.php (CVE-2018-17553), to achieve remote code execution as demonstrated in the Metasploit module [1].

Mitigation

The fix was implemented in commit 6df73cc [2] by replacing string concatenation with parameterized queries in the query and query_single methods. Users should upgrade to a version containing this commit or later. No official release version number is specified, but the commit is dated September 2018. No workaround is available; upgrading is the only mitigation.

AI Insight generated on May 26, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

2

Patches

0

No patches discovered yet.

Vulnerability mechanics

Root cause

"Missing input sanitization and lack of parameterized queries allow SQL injection via the `navigate-user` cookie in login.php."

Attack vector

An attacker sends a crafted HTTP request to the login page with a malicious `navigate-user` cookie containing SQL injection payloads. The application concatenates this cookie value directly into SQL queries without sanitization or parameterization, allowing the attacker to manipulate the query logic. By injecting a payload such as `' OR '1'='1`, the attacker can bypass authentication entirely and gain unauthorized access to the administrative interface [ref_id=1].

Affected code

The vulnerability resides in the `login.php` file of Navigate CMS 2.8, where the `navigate-user` cookie is used directly in SQL queries without parameterization. The patch modifies the core database wrapper methods `query()`, `query_single()`, and `queryLimit()` in the database class to accept an optional `$parameters` array and use prepared statements when parameters are provided [ref_id=1].

What the fix does

The patch introduces an optional `$parameters` array parameter to the `query()`, `query_single()`, and `queryLimit()` methods. When parameters are supplied, the code uses `$this->db->prepare($sql)` followed by `$statement->execute($parameters)` instead of directly calling `$this->db->query($sql)`. This shifts from string concatenation to prepared statements, which separates SQL logic from user-supplied data and prevents injection. The patch also refactors the SQL string construction in `query_single()` to be built before the conditional block, improving code clarity [ref_id=1].

Preconditions

  • networkThe attacker must be able to send HTTP requests to the Navigate CMS login page
  • configThe application must be using the vulnerable version (Navigate CMS 2.8)
  • authNo authentication is required; the attack targets the login cookie before authentication occurs

Reproduction

1. Send a POST request to the Navigate CMS login page (e.g., `/navigate/login.php`) with a crafted cookie: `navigate-user=' OR '1'='1`. 2. The SQL query becomes `SELECT ... FROM users WHERE ... username='' OR '1'='1'`, which returns all users. 3. The application authenticates the attacker as the first user in the result set, granting admin access without a valid password [ref_id=1].

Generated on May 25, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

3

News mentions

0

No linked articles in our index yet.