El archivo /wp-json/wp/v2/passwd no es un endpoint estándar de WordPress. A diferencia de /wp-json/wp/v2/users o /wp-json/wp/v2/posts, WordPress Core no incluye un endpoint llamado passwd. Esto significa que, si lo encuentras en un sitio, normalmente ocurre una de estas situaciones:.

  1. Fue creado por un plugin.
  2. Fue creado por el tema del sitio.
  3. Fue desarrollado de forma personalizada mediante la REST API de WordPress.

¿Por qué puede ser una vulnerabilidad?

El problema no es el nombre del endpoint, sino lo que hace.

2. Reglas de protección en .htaccess

Un endpoint relacionado con "passwd" o "password" podría:

  1. Cambiar contraseñas de usuarios.
  2. Mostrar información sobre credenciales.
  3. Permitir recuperar contraseñas.
  4. Validar contraseñas.
  5. Restablecer cuentas.

Por ejemplo, un endpoint inseguro podría aceptar una petición como:

POST /wp-json/wp/v2/passwd { "user":"admin", "password":"NuevaPassword123" }

Si no verifica correctamente los permisos (current_user_can() o autenticación mediante nonce, cookies o tokens), cualquiera podría modificar la contraseña del administrador.

¿Cómo comprobar si existe?

Puedes visitar:
https://tuweb.com/wp-json/
Y revisa todas las rutas disponibles.
También puedes buscar específicamente:
https://tuweb.com/wp-json/wp/v2/passwd .
Si responde con:

{ "code":"rest_no_route" }

Entonces no existe.

Método 1: Bloquear el Acceso para Usuarios No Autenticados (Código)

Esta es la forma más directa: deshabilitar el endpoint para cualquier visitante que no haya iniciado sesión. Agrega este código al archivo functions.php de tu tema hijo o en un plugin de funcionalidad personalizada:

add_filter( 'rest_endpoints', function( $endpoints ) { // Reemplaza 'passwd' con el namespace y endpoint exacto que quieres proteger // Por ejemplo, si el endpoint es /wp-json/mi-plugin/v1/passwd if ( isset( $endpoints['/mi-plugin/v1/passwd'] ) ) { unset( $endpoints['/mi-plugin/v1/passwd'] ); } return $endpoints; } );

¿Es una vulnerabilidad por sí mismo?

No.

/wp-json/wp/v2/passwd No es una vulnerabilidad conocida de WordPress porque no forma parte del núcleo. Solo supone un riesgo si un plugin o un desarrollo personalizado lo expone de forma insegura.

En otras palabras:

  1. ✅ No existe en una instalación estándar de WordPress.
  2. ✅ Si aparece, proviene de código adicional.
  3. ⚠️ Puede convertirse en una vulnerabilidad grave si permite operaciones sobre contraseñas sin los controles adecuados de autenticación y autorización.

Información de Seguridad Adicional

Es crucial saber que WordPress no tiene un endpoint /wp/v2/passwd en su núcleo. Por lo tanto, su presencia es casi con certeza el resultado de un plugin o tema.

Como referencia, se han documentado vulnerabilidades en plugins que exponían información sensible (como contraseñas con hash) a través de la API REST.

Por ejemplo, el plugin WP Project Manager tuvo una vulnerabilidad (CVE-2024-10548) que permitía a atacantes autenticados acceder a contraseñas con hash de otros usuarios a través de un endpoint de la API.

Esto subraya la importancia crítica de identificar el plugin que añade este endpoint y verificar que esté actualizado o considerar su desactivación si no es esencial.

Acciones Inmediatas para Mitigar Riesgos

  1. Actualiza Todo: Asegúrate de que WordPress, tus plugins y temas estén actualizados a sus últimas versiones para corregir vulnerabilidades conocidas.
  2. Usa Contraseñas Fuertes y 2FA: Implementa una política de contraseñas robustas y, si es posible, autenticación de dos factores (2FA) para todas las cuentas de usuario, especialmente las administrativas.
  3. Monitorea tu Sitio: Revisa los logs del servidor y las actividades sospechosas en el panel de administración para detectar intentos de acceso no autorizados.