Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en phpCAS (CVE-2022-39369)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
01/11/2022
Última modificación:
07/11/2023

Descripción

phpCAS es una librería de autenticación que permite que las aplicaciones PHP autentiquen fácilmente a los usuarios a través del servidor Central Authentication Service (CAS). La librería phpCAS utiliza encabezados HTTP para determinar la URL del servicio utilizada para validar tickets. Esto permite a un atacante controlar el encabezado del host y utilizar un ticket válido otorgado para cualquier servicio autorizado en el mismo ámbito SSO (servidor CAS) para autenticarse en el servicio protegido por phpCAS. Dependiendo de la configuración del registro de servicios del servidor CAS, en el peor de los casos, esta puede ser cualquier otra URL de servicio (si las URL permitidas están configuradas en "^(https)://.*") o puede estar estrictamente limitada a servicios conocidos y autorizados. en la misma federación SSO si se aplica la validación adecuada del servicio URL. Esta vulnerabilidad puede permitir que un atacante obtenga acceso a la cuenta de una víctima en un servicio CASified vulnerable sin el conocimiento de la víctima, cuando la víctima visita el sitio web del atacante mientras está conectado al mismo servidor CAS. phpCAS 1.6.0 es una actualización de versión importante que comienza a imponer la validación de descubrimiento de URL del servicio, porque desafortunadamente no existe una configuración predeterminada 100% segura para usar en PHP. A partir de esta versión, es necesario pasar un argumento de URL base de servicio adicional al construir la clase de cliente. Para obtener más información, consulte el documento de actualización. Esta vulnerabilidad solo afecta al cliente CAS contra el que protege la librería phpCAS. El comportamiento problemático de descubrimiento de URL del servicio en phpCAS < 1.6.0 solo se deshabilitará y, por lo tanto, usted no se verá afectado si la configuración de phpCAS tiene la siguiente configuración: 1. Se llama a `phpCAS::setUrl()` (un recordatorio de que debe pasar la URL completa). de la página actual, en lugar de la URL base de su servicio), y 2. Se llama a `phpCAS::setCallbackURL()`, solo cuando el modo proxy está habilitado. 3. Si la entrada del encabezado HTTP de PHP `X-Forwarded-Host`, `X-Forwarded-Server`, `Host`, `X-Forwarded-Proto`, `X-Forwarded-Protocol` se sanitiza antes de llegar a PHP (por un proxy inverso, por ejemplo), esta vulnerabilidad tampoco le afectará. Si el registro de servicios de su servidor CAS está configurado para permitir solo URL de servicios conocidos y confiables, la gravedad de la vulnerabilidad se reduce sustancialmente ya que un atacante debe tener el control de otro servicio autorizado. De lo contrario, debe actualizar la librería para obtener un comportamiento de descubrimiento de servicios seguro.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:apereo:phpcas:*:*:*:*:*:*:*:* 1.6.0 (excluyendo)
cpe:2.3:o:fedoraproject:fedora:35:*:*:*:*:*:*:*
cpe:2.3:o:fedoraproject:fedora:36:*:*:*:*:*:*:*
cpe:2.3:o:fedoraproject:fedora:37:*:*:*:*:*:*:*