CVE-2026-7820 in pgAdmin 4información

Resumen

por VulDB • 2026-05-11

Restricción inadecuada de intentos excesivos de autenticación (CWE-307) en pgAdmin 4.

pgAdmin aplica MAX_LOGIN_ATTEMPTS únicamente dentro de su vista personalizada /authenticate/login. La vista /login predeterminada de Flask-Security, que se registra automáticamente mediante security.init_app() y es accesible en todos los servidores, nunca consultaba el campo User.locked: el modelo User de pgAdmin dependía de UserMixin.is_locked() de Flask-Security (que siempre devuelve 'no bloqueado') y de is_active de Flask-Login (que solo verifica la columna active, no locked). Por lo tanto, un atacante que provocara el bloqueo de una cuenta a través de /authenticate/login podría obtener una sesión volviendo a enviar credenciales válidas directamente a /login, eludiendo el control de protección contra ataques de fuerza bruta para las cuentas que utilizan la fuente de autenticación INTERNAL. El mismo bypass implica que los intentos de inicio de sesión a través de /login nunca están sujetos a límites de velocidad, por lo que un atacante puede realizar un ataque de adivinación de contraseñas en línea sin límites contra las cuentas INTERNAL, independientemente de MAX_LOGIN_ATTEMPTS.

La corrección sobrescribe User.is_active y User.is_locked() para que la columna locked se aplique en todas las rutas de autenticación. Los usuarios de LDAP, OAuth2, Kerberos y Webserver no son alcanzables mediante este bypass porque no tienen una contraseña local y son rechazados por LoginForm.validate de Flask-Security antes de la verificación de bloqueo; el propio bloqueo también es interno (la vista /authenticate/login filtra por auth_source=INTERNAL).

Este problema afecta a pgAdmin 4: versiones anteriores a 9.15.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsable

PostgreSQL

Reservar

2026-05-04

Divulgación

2026-05-11

Moderación

aceptado

Artículo

VDB-362625

CPE

listo

EPSS

0.00043

KEV

no

Actividades

bajo

Fuentes

Interested in the pricing of exploits?

See the underground prices here!