gesellix titlelink plugin_content_title.php sql injection
Description
A vulnerability classified as critical was found in gesellix titlelink on Joomla. Affected by this vulnerability is an unknown functionality of the file plugin_content_title.php. The manipulation of the argument phrase leads to sql injection. The patch is named b4604e523853965fa981a4e79aef4b554a535db0. It is recommended to apply a patch to fix this issue. The associated identifier of this vulnerability is VDB-217351.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected products
2Patches
Vulnerability mechanics
Root cause
"Direct string interpolation of user-controlled $phrase into SQL queries without escaping allows SQL injection."
Attack vector
An attacker can supply a crafted `$phrase` argument containing SQL metacharacters, which is then concatenated directly into SQL queries in `plugin_content_title.php` [patch_id=2243722]. The original code used string interpolation like `" LIKE '%$phrase%'"` and `"= '$phrase'"`, allowing the attacker to break out of the string context and inject arbitrary SQL commands [patch_id=2243722]. The vulnerability is reachable through the Joomla TitleLink plugin's content-linking functionality, where user-controlled input is passed as the `$phrase` parameter.
Affected code
The vulnerability resides in `j_1_5_x/plugin/titlelink_plugins/plugin_content_title.php` within the `plugin_contentTitle` function. The `$phrase` parameter was directly interpolated into SQL queries without sanitization, both in the `a.alias` and `a.title` WHERE clauses [patch_id=2243722]. The calling function `getByPlugins` in `j_1_5_x/plugin/titlelink.php` also passed the raw `$phrase` to plugins without escaping [patch_id=2243722].
What the fix does
The patch replaces direct string interpolation with calls to `$database->quote()` in `plugin_content_title.php`, which properly escapes the `$phrase` value before embedding it in SQL queries [patch_id=2243722]. Additionally, in `titlelink.php`, the `getByPlugins` function now escapes `$phrase` via `$database->getEscaped()` before passing it to plugin functions, providing defense-in-depth [patch_id=2243722]. The changelog entry confirms the fix addresses "[#20653] SQL Injection: $phrase is escaped now" [ref_id=1].
Preconditions
- configThe Joomla TitleLink plugin must be installed and enabled.
- inputAn attacker must be able to supply input that reaches the $phrase parameter of plugin_contentTitle.
Generated on May 24, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
3- github.com/gesellix/titlelink/commit/b4604e523853965fa981a4e79aef4b554a535db0mitrepatch
- vuldb.commitresignaturepermissions-required
- vuldb.commitrevdb-entrytechnical-description
News mentions
0No linked articles in our index yet.