Solucionar problemas

Diagnosticar errores criptográficos de Sodium en WordPress

Revisado el 3 min de lectura wordpress errores seguridad

WordPress y algunos plugins usan funciones criptográficas para verificar firmas y proteger datos. PHP puede proporcionarlas mediante la extensión Sodium nativa y WordPress incluye además una biblioteca de compatibilidad para los entornos que no disponen de ella.

Un registro puede mostrar un error como este:

PHP Fatal error: Uncaught TypeError: Argument 2 must be a string, integer given. 
in /home/usuario/public_html/wp-includes/sodium_compat/src/Core/Util.php:242

Este TypeError confirma que el segundo argumento recibido era un entero cuando la función exigía una cadena. Que la traza pase por wp-includes/sodium_compat/ no demuestra que falte Sodium ni que activar la extensión convierta correctamente ese dato.

1. Conserva la traza completa

Anota la hora y busca en la traza el primer fichero situado fuera de wp-includes/sodium_compat/. Normalmente permite identificar el plugin, tema o integración que preparó los argumentos. No modifiques los archivos de wp-includes: se reemplazan al actualizar y no corrigen al llamador.

2. Comprueba el entorno PHP de la web

Revisa en la información de PHP si la extensión sodium está cargada. Haz la comprobación desde el mismo PHP que ejecuta la web: PHP CLI puede usar otra versión o configuración.

  • Si el plugin exige expresamente la extensión nativa y no está cargada, actívala desde Seleccionar versión de PHP o pide al proveedor que lo haga.
  • Si Sodium ya está activa, o el error indica un tipo inválido, actualiza el componente identificado y revisa con su desarrollador por qué envía un entero.
  • Si el fallo apareció tras cambiar PHP, confirma que la web conserva las mismas extensiones en la nueva versión.

3. Verifica la corrección

Repite exactamente la operación que fallaba y revisa el registro de la misma hora. Confirma que ya no aparece el TypeError y que la firma, webhook o integración implicada completa su proceso. La presencia de la extensión por sí sola no verifica que los datos enviados sean válidos.

No conviertas el argumento a texto dentro de sodium_compat para evitar el TypeError: claves, firmas y mensajes tienen formatos y longitudes concretos. Una conversión que elimina el error puede dejar una verificación incorrecta.

Al comunicar la traza al desarrollador, conserva nombres de funciones y tipos, pero omite claves, firmas privadas, tokens y contenido sensible. Usa datos de prueba para reproducir la operación criptográfica; una pantalla sin error no basta si la validación se ha omitido.

También te puede ayudar

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.