HIGH 7.1

CVE-2019-25749: SQL Injection in Joomla J-CruisePortal 6.0.4 – Authenticated Database Access Risk

Joomla J-CruisePortal version 6.0.4 is vulnerable to SQL injection through the guest_adult parameter. An authenticated attacker can craft malicious SQL code within this field and send it via POST requests to the cruises endpoint, allowing them to directly query or manipulate the application's database. This is a moderately severe risk that requires user authentication to exploit but can lead to exposure of sensitive customer and operational data.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.1 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
Weaknesses (CWE)
CWE-89
Affected products
0 configuration(s)
Published / Modified
2026-06-19 / 2026-06-22

NVD description (verbatim)

Joomla J-CruisePortal 6.0.4 contains an SQL injection vulnerability that allows authenticated attackers to execute arbitrary SQL queries by injecting malicious code through the guest_adult parameter. Attackers can send POST requests to the cruises endpoint with crafted SQL payloads in the guest_adult parameter to extract sensitive database information or manipulate database records.

4 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2019-25749 is an authenticated SQL injection vulnerability (CWE-89) in J-CruisePortal 6.0.4. The guest_adult parameter in the cruises POST endpoint does not properly sanitize or parameterize user input before passing it to SQL queries. An attacker with valid credentials can inject arbitrary SQL syntax to read unauthorized data, modify records, or potentially access restricted information depending on database permissions and the application's database user privileges.

Business impact

Successful exploitation enables attackers to breach passenger records, itinerary data, booking details, and payment information stored in the J-CruisePortal database. For cruise operators, this translates to regulatory exposure under data protection laws (GDPR, CCPA), reputational damage, and operational disruption if records are altered or deleted. Guest privacy is directly compromised, creating liability for the organization.

Affected systems

Joomla J-CruisePortal version 6.0.4 is explicitly vulnerable. Organizations running this specific version with active user accounts should assess exposure immediately. Earlier and later versions require independent verification against vendor advisories. The vulnerability requires authenticated access, limiting the immediate attack surface to users with valid credentials or attackers who have compromised an account.

Exploitability

Exploitation requires valid authentication credentials; the CVSS vector reflects this with a PR:L (Privilege: Low) rating. However, once authenticated, exploitation is straightforward—SQL injection is well-understood, tooling is abundant, and no special conditions or user interaction are required. The barrier to entry is credential access, not technical sophistication. Insider threats or compromised accounts represent the primary risk vector.

Remediation

Upgrade J-CruisePortal to a patched version released after 6.0.4. Verify the patch version against the vendor's official security advisory. Interim controls include restricting authenticated user access to trusted internal networks, monitoring database query logs for anomalous SQL patterns, and implementing database user privilege restrictions to limit data exfiltration scope.

Patch guidance

Consult the official Joomla and J-CruisePortal vendor advisories for the specific patched version. Apply updates in a test environment first to validate compatibility with your cruise booking workflows and integrations. Prioritize this patch for immediate deployment given the sensitivity of passenger data involved. Confirm successful patching by validating the guest_adult parameter accepts only expected numeric or alphanumeric input without executing injected SQL.

Detection guidance

Monitor for SQL error messages in application logs when the guest_adult parameter receives unexpected input. Examine database query logs for unusual SQL syntax (UNION, SELECT, EXEC, etc.) within guest_adult parameter values. Search firewall and WAF logs for POST requests to the cruises endpoint containing SQL keywords. Implement application firewalls with SQL injection signatures if not already in place. Query database access logs for queries initiated by the J-CruisePortal application user account that deviate from expected patterns.

Why prioritize this

This vulnerability merits high priority due to the sensitivity of cruise booking data (names, contact information, payment details, travel dates) and the ease of exploitation once authentication is obtained. The CVSS 7.1 rating reflects high confidentiality impact and the direct database access threat. Authentication requirement moderates urgency but should not defer patching, as compromised or insider accounts create realistic attack scenarios.

Risk score, explained

CVE-2019-25749 scores CVSS 3.1 High (7.1) reflecting: (AV:N) network-accessible endpoint requiring no special positioning, (AC:L) straightforward exploitation with no unusual conditions, (PR:L) requirement for low-privilege authenticated access, (UI:N) no user interaction needed, (S:U) impact confined to the vulnerable component, (C:H) high confidentiality impact from direct database read access, (I:L) limited integrity impact from controlled data modification, (A:N) no availability impact. The authentication requirement prevents a Critical rating but does not diminish the severity once credentials are obtained.

Frequently asked questions

Does this vulnerability affect all Joomla installations, or only J-CruisePortal?

Only Joomla installations running the J-CruisePortal extension version 6.0.4 are affected. Standard Joomla is not vulnerable. If you do not have J-CruisePortal installed, you are not at risk from this CVE.

Can this vulnerability be exploited without a valid user account?

No. The vulnerability requires authenticated access, meaning an attacker must have valid login credentials or must have compromised an existing user account. This limits the attack surface but does not eliminate risk—employee accounts, contractor access, or weak credentials increase likelihood of compromise.

What data is most at risk if this vulnerability is exploited?

Passenger personal information (names, contact details), booking records, itinerary data, and payment information stored in the J-CruisePortal database are directly accessible. The scope depends on what data the application stores and the database user's privilege level.

Should we block this parameter entirely as a temporary control?

Blocking the guest_adult parameter would likely break booking functionality. Instead, implement input validation (whitelist numeric-only input), enable SQL query logging and alerting, and restrict authenticated access to known-good IP addresses or internal networks until patching is complete.

This analysis is provided for informational purposes and does not constitute professional security advice. Verify all patch versions, affected product lists, and remediation steps against official vendor advisories before implementation. Testing in non-production environments is mandatory. Organizations should engage qualified security professionals to assess their specific exposure and validate remediation effectiveness. No exploit code or proof-of-concept details are provided; responsible disclosure practices should be followed. Source: NVD (public-domain), retrieved 2026-07-27. Analysis generated by SEC.co (claude-haiku-4-5).