Advanced Custom Fields: Extended <= 0.9.2.7 - Missing Authorization to Unauthenticated Data Exposure via Multiple AJAX Endpoints
Impact
The Advanced Custom Fields: Extended plugin for WordPress is vulnerable to unauthorized access of data and triggering of server-side actions in all versions up to, and including, 0.9.2.7. This is due to multiple AJAX handlers registered for unauthenticated users (wp_ajax_nopriv_) that fail to implement proper current_user_can() authorization checks. While these handlers use ACF's acf_verify_ajax() function to validate cryptographic nonces, the acf_nonce values are generated for guest users and publicly exposed in the page source of any frontend page utilizing an ACF form. This makes it…
Source excerpt · WordfenceAffected packages
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
hwk-fr · Advanced Custom Fields: Extended
Other versions: unaffected
| Version / range | Source status |
|---|---|
| 0 through 0.9.2.7 (inclusive) | affected |
Original source description
The Advanced Custom Fields: Extended plugin for WordPress is vulnerable to unauthorized access of data and triggering of server-side actions in all versions up to, and including, 0.9.2.7. This is due to multiple AJAX handlers registered for unauthenticated users (wp_ajax_nopriv_*) that fail to implement proper current_user_can() authorization checks. While these handlers use ACF's acf_verify_ajax() function to validate cryptographic nonces, the acf_nonce values are generated for guest users and publicly exposed in the page source of any frontend page utilizing an ACF form. This makes it possible for unauthenticated attackers to extract the guest nonce and bypass WordPress visibility permissions, leading to the unauthorized disclosure of post titles and internal Flexible Content layout structures. The vulnerability was partially patched in version 0.9.2.4.
References
- Security advisory www.wordfence.com/threat-intel/vulnerabilities/id/9954ef37-bae0-48fb-9654-ff54750c46c2
- Source reference plugins.trac.wordpress.org/browser/acf-extended/trunk/includes/fields/field-advanced-link.php
- Source reference plugins.trac.wordpress.org/browser/acf-extended/trunk/includes/fields/field-advanced-link.php
- Source reference plugins.trac.wordpress.org/browser/acf-extended/trunk/includes/fields/field-flexible-content-async.php
- Source reference plugins.trac.wordpress.org/browser/acf-extended/trunk/includes/fields/field-flexible-content-async.php
- Patch plugins.trac.wordpress.org/changeset/3516027/
- Patch plugins.trac.wordpress.org/changeset/3754818/