Testimonial < 2.3 - Multiple Vulnerabilities

2013-09-01 00:00
Adéla Goldová

Strategic Overview

Status
Patched in 2.3
Affected Plugin
Testimonial
Affected Version
< 2.3
CVSS
9.8Critical
Weakness type
CWE-89 · Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
CVE
CVE pending
View all Testimonial vulnerabilities

At a glance

This record tracks a critical-severity Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in the Testimonial WordPress plugin, affecting versions < 2.3. It carries a CVSS score of 9.8 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). Exploitation requires no authentication. The issue is fixed in version 2.3; sites on affected versions should update now. Disclosed September 2013, reported by Adéla Goldová.

Vulnerability Overview

The Testimonial plugin for WordPress is vulnerable to Cross-Site Request Forgery in versions up to, and including, 2.2. This is due to missing or incorrect nonce validation on the save_testimonial function. This makes it possible for unauthenticated attackers to perform Cross-Site Scripting and SQL Injection attacks via a forged request granted they can trick a site administrator into performing an action such as clicking on a link.

Technical Analysis

The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.

CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

Reaching this weakness in Testimonial < 2.3 takes a caller who can reach the endpoint. SQL injection happens when request data is concatenated into a query instead of being bound as a parameter, letting an attacker change the structure of the statement rather than just its values.

A working injection can read any table the database user can see, which on a WordPress install means user records, password hashes and session or API secrets stored in options. For Testimonial the fix is 2.3: builds < 2.3 are affected, anything from 2.3 onward is not.

Remediation

Update to version 2.3, or a newer patched version

How does WordSec protect against this?

The attempt arrives as an ordinary request to Testimonial: WordSec's web application firewall inspects request payloads before WordPress loads them. None of that substitutes for the fix: Testimonial 2.3 closes this, and updating the plugin is the step that ends it.

  • Firewall
  • Alerts

External References

Related records

Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C