Skip to content
Security

Unpatched SQL Injection Vulnerability Discovered in TI WooCommerce Wishlist Plugin

An unpatched SQL injection vulnerability in TI WooCommerce Wishlist plugin affects 100,000+ sites, allowing unauthenticated attackers to compromise WordPress databases.

Unpatched SQL Injection Vulnerability Discovered in TI WooCommerce Wishlist Plugin

The TI WooCommerce Wishlist plugin, active on more than 100,000 WordPress sites, currently suffers from an unpatched SQL injection vulnerability that allows unauthenticated attackers to potentially compromise site databases. Despite being publicly disclosed on September 9, 2024, no fix has yet been released by the plugin’s developer, putting WooCommerce store operators at risk.

Key Takeaways

  • The TI WooCommerce Wishlist plugin has a critical SQL injection vulnerability affecting 100,000+ active installs.
  • No patch is available as of September 9, 2024, increasing exposure risk for affected sites.
  • The vulnerability allows unauthenticated attackers to manipulate SQL queries via wishlist management code.
  • Immediate mitigation options include disabling the plugin or using a custom Web Application Firewall (WAF) rule.
  • A proof of concept for the exploit will be published on WPScan on September 16, 2024.

Technical Details of the Vulnerability

The vulnerability lies within how the TI WooCommerce Wishlist plugin constructs SQL queries to handle multi-language wishlist data. Specifically, the plugin concatenates user-supplied language parameters ($lang and $lang_default) into a SQL statement without proper sanitization or prepared statements.

The problematic code uses PHP’s implode function to combine language codes into a string for an IN() SQL clause. This string is then interpolated directly into the query, as shown in the plugin’s join conditions for translation tables:

if ($lang) {
  if ($lang_default) {
    $languages = sprintf("'%s'", implode("', '", array($lang, $lang_default)));
  } else {
    $languages = "'".$lang."'";
  }
}
$sql .= "LEFT JOIN {$table_translations} t ON tr.trid = t.trid AND t.element_type = 'post_product' AND t.language_code IN ({$languages})";

This construction allows an attacker who can control the $lang or $lang_default parameters to inject arbitrary SQL code by injecting additional SQL statements or escape characters. Since this query is executed with $wpdb->get_results() without parameter binding, it opens a classic SQL injection vector.

While the exploit requires a specific set of conditions to fully execute, it is a severe security risk because it can be triggered by unauthenticated users, which means attackers do not need credentials or elevated permissions.

Why This Vulnerability Matters to WooCommerce Store Operators

WooCommerce sites commonly rely on wishlist plugins to enhance user experience and drive sales. TI WooCommerce Wishlist is one of the more popular solutions, installed on sites ranging from small stores to large multi-language e-commerce platforms.

In practice, this vulnerability threatens the integrity of the entire WordPress database used by the site. Attackers exploiting SQL injection can read sensitive data, modify or delete content, and potentially escalate access to the WordPress admin account or hosting environment. For WooCommerce stores, this might mean exposure of customer data, order information, and payment details.

From hands-on experience with WordPress security incidents, we know that SQL injection vulnerabilities are among the highest-risk issues because they can be automated and exploited remotely without user interaction. They tend to cause long-term damage, including SEO penalties and loss of customer trust.

The plugin vendor has not released a patch as of this publication date, leaving site operators with limited options. WPScan has responsibly disclosed the vulnerability and plans to publish a proof of concept on September 16, 2024, which increases urgency for mitigation.

What To Do Now: Disable the TI WooCommerce Wishlist plugin immediately if possible. If the wishlist functionality is critical, apply a custom Web Application Firewall (WAF) rule to block suspicious SQL injection payloads targeting the language parameters. Additionally, monitor your site for unusual database activity and audit logs.

Because direct contact with the vendor has failed, WordPress.org has been notified to investigate potential plugin repository interventions. Until a patch is available, agencies and site administrators should prioritize risk mitigation and communicate with clients about the exposure.

Historical Context of SQL Injection in WordPress Plugins

SQL injection vulnerabilities have repeatedly impacted WordPress plugins over the years, often due to improper use of query construction without prepared statements. The WordPress database abstraction class $wpdb provides parameterized query methods specifically to avoid these risks, but plugin developers sometimes bypass these safeguards for convenience or due to legacy code.

TI WooCommerce Wishlist’s vulnerability fits a typical pattern where multi-language or dynamic query parts are concatenated unsafely. Such problems are especially common in plugins handling complex e-commerce data with multiple joins and translations.

From experience, plugins with more than 50,000 active installs that remain unpatched for SQL injection pose a significant threat to the broader WooCommerce ecosystem, since attackers actively scan for such vulnerabilities.

What This Means for WordPress Users

We strongly advise WordPress developers, agencies, and site operators using TI WooCommerce Wishlist to disable the plugin immediately or implement WAF rules to block SQL injection attempts. Waiting for a patch without any mitigation exposes sites to serious risk given the unauthenticated access level required to exploit this flaw.

This incident highlights ongoing challenges in the WordPress plugin ecosystem regarding timely vulnerability patching and vendor responsiveness. Users must maintain vigilance by subscribing to security feeds like WPScan and BaeWP’s own security coverage.

WooCommerce store operators should audit all third-party plugins with database query functionality, particularly those handling translations or multi-language content, since these are common sources of injection flaws.

For managed WordPress hosts, this case reinforces the value of integrated WAF protections and proactive security monitoring that catch plugin vulnerabilities before exploitation.

Frequently Asked Questions

Which versions of TI WooCommerce Wishlist are affected by the SQL injection?

All versions currently available on the WordPress plugin repository with over 100,000 active installs are affected, as no patch has been released at this time.

Can this SQL injection vulnerability be exploited by unauthenticated users?

Yes, the vulnerability can be triggered by unauthenticated visitors, which significantly increases the risk of mass exploitation.

What immediate steps should I take if I use this plugin on a WooCommerce store?

Disable the plugin immediately or implement custom Web Application Firewall rules to block SQL injection payloads. Monitor your site logs for suspicious activity and prepare to update the plugin once a patch is released.

Has the vulnerability been reported to WordPress.org or the plugin developer?

Yes, WPScan has notified WordPress.org due to the lack of vendor response, but no patch has been published yet.

Related News