La omisión crítica de clave API de mejor autenticación permite la apropiación de cuentas

El complemento de claves API de mejor autenticación contiene una vulnerabilidad crítica de omisión de autenticación rastreada como CVE-2025-61928 que permite a atacantes no autenticados crear claves API privilegiadas para cualquier cuenta de usuario. Todas las versiones anteriores a la 1.3.26 sufren esta falla, que afecta a más de 300 000 descargas semanales de npm que impulsan la autenticación para empresas, incluida Equinor.

SAST de ZeroPathEl escáner descubrió el problema el 1 de octubre de 2025 durante el análisis de dependencia para organizaciones grandes. ElcreateApiKeyEl controlador no puede validar las solicitudes no autenticadas que contienenuserIden el cuerpo JSON.

Cuando no existe ninguna sesión perouserIdaparece,authRequiredevalúa falso. Los atacantes eluden la validación y las claves mint con privilegios elevados comorateLimitMax,permissions, yrefillAmount.

Causa raíz técnica

Lógica condicional defectuosa:

javascriptif (!session && !body.userId) {
  authRequired = true;  // Blocks unauthenticated
}

Ruta de ataque:

textPOST /api/auth/api-key/create
{
  "userId": "[email protected]",
  "rateLimitMax": 999999,
  "permissions": ["admin", "billing"]
}

El controlador construye un objeto de usuario a partir de la entrada del atacante, omitiendo las comprobaciones de privilegios. El mismo defecto golpeaupdateApiKeyentrenador de animales.

Flujo de ataque completo

  1. reconocimiento: Enumerar/adivinar objetivouserIdvalores
  2. Me gusta clave: PUBLICAR solicitud no autenticada con la víctimauserId
  3. Escalada de privilegios: Establecer arbitrariorateLimitMax,permissions
  4. Adquisición de cuenta: Utilice la clave API sin pasar por MFA por completo
  5. Persistencia: La clave sobrevive a las sesiones del navegador.

Solicitud de publicación únicaotorga acceso API completo a cualquier cuenta.

Evaluación de impacto

Área de impactoGravedadDescripción
Adquisición de cuentaCríticoAcuñación de claves API no autenticadas
Escalada de privilegiosCríticoAsignación de permisos arbitrarios
Omisión MFACríticoLas claves de larga duración ignoran 2FA
Abuso de automatizaciónAltoLímites de tasa elevados para ataques programados

Las claves API otorgan privilegios de automatización desde nuevas empresas hasta empresas de escala Equinor.

Versiones afectadas y alcance

PaqueteRango vulnerableDescargas/SemanaVersión fija
mejor-autenticación/claves-api< 1.3.26300,000+1.3.26

Cada lanzamientocon complemento de claves API vulnerable. Ninguna versión es segura hasta que se parchee.

Análisis de parches

Corrección de la versión 1.3.26:

javascript// Proper auth check BEFORE user construction
if (!session?.userId) {
  throw new UnauthorizedError('Authentication required');
}

Línea de tiempo de ruta cero:

  • 1 de octubre de 2025: Descubrimiento
  • 2 de octubre de 2025: parche enviado (24 horas)
  • 10 de octubre de 2025: divulgación pública (8 días)

Los mantenedores respondieron dentro de las 24 horas posteriores a la divulgación responsable.

Actualiza primero:

textnpm install [email protected]
# Restart all services

Rotación de credenciales:

  • Invalidar TODAS las claves API generadas antes del 1.3.26
  • Rotar cuentas de servicio usando mejor autenticación
  • Auditar claves activas para permisos inusuales

Revisión de registros(últimos 6 meses):

textPOST /api/auth/api-key/create  # Missing session cookies
POST /api/auth/api-key/update  # Contains userId, permissions

Indicadores de detección

Solicitudes sospechosas:

textNo session cookies + userId in body
rateLimitMax > normal limits
permissions array contains admin/billing
Unknown IP minting keys

Anomalías clave:

textNew keys with elevated rateLimitMax
Permissions not matching user roles
Mass key generation events

Acciones empresariales

Verificación de tuberías:

textnpm ls better-auth
npm audit --audit-level moderate

reglas WAF:

textBlock POST /api/auth/api-key/* without session cookies
Rate limit key creation endpoints
Validate userId against session owner

Marco de prevención

Revisión de código:

  • Análisis estático para patrones de omisión de autenticación
  • Validación de sesión antes de la construcción del usuario.
  • Emisión de claves API de confianza cero

Tiempo de ejecución:

  • Aplicación de la autenticación de la puerta de enlace API
  • Políticas de rotación de claves (90 días)
  • Monitoreo y alertas de uso

Preguntas frecuentes

¿Qué vulnerabilidad afecta una mejor autenticación?

CVE-2025-61928: Acuñación de claves API no autenticadas.

¿Qué versiones son vulnerables?

Toda la autenticación es mejor con el complemento de claves API anteriores a 1.3.26.

¿Es posible la adquisición mediante solicitud única?

Sí. POST /api/auth/api-key/create con la clave privilegiada del ID de usuario de la víctima.

¿Disponibilidad de parches?

La versión 1.3.26 corrige la lógica de autenticación. Implementar inmediatamente.

¿Indicadores de registro?

POST no autenticados para puntos finales clave con ID de usuario en el cuerpo.

¿Equinor afectado?

Paquete utilizado por Equinor y más de 300.000 descargas semanales.