CVE-2026-7820
MediumWhat is CVE-2026-7820?
Improper restriction of excessive authentication attempts (CWE-307) in pgAdmin 4. pgAdmin enforces MAX_LOGIN_ATTEMPTS only inside its custom /authenticate/login view. Flask-Security's default /login view, which is registered automatically by security.init_app() and is reachable on every server, never consulted the User.locked field: pgAdmin's User model relied on Flask-Security's UserMixin.is_locked() (which always returns 'not locked') and Flask-Login's is_active (which only checks the active column, not locked). An attacker who triggered an account lockout via /authenticate/login could therefore obtain a session by re-submitting valid credentials directly to /login, defeating the brute-force-protection control for accounts using the INTERNAL authentication source. The same bypass also means that login attempts via /login are never rate-limited, so an attacker can perform an unbounded online password-guessing attack against INTERNAL accounts regardless of MAX_LOGIN_ATTEMPTS. Fix overrides User.is_active and User.is_locked() so the locked column is enforced on every authentication path. LDAP, OAuth2, Kerberos, and Webserver users are not reachable by this bypass because they have no local password and are rejected by Flask-Security's LoginForm.validate before the locked check; the lockout itself is also internal-only (the /authenticate/login view filters by auth_source=INTERNAL). This issue affects pgAdmin 4: before 9.15.
CVSS Vector Breakdown
CVSS 3.1Exploitable remotely over the network without requiring access to the local system.
No special conditions required. Exploit can be performed reliably and repeatedly.
No authentication required. Any anonymous user can exploit this vulnerability.
No user interaction required. Exploit runs without any victim action.
Exploiting the vulnerability only affects the vulnerable component itself.
Some sensitive information is disclosed, but attacker has limited access.
Attacker can modify some data, but scope or consequence is limited.
No availability impact. Service remains fully operational.
FAQ
CVE-2026-7820 has a CVSS score of 6.5/10, rated as Medium. Review the affected products list and apply vendor patches.
CVSS (Common Vulnerability Scoring System) rates vulnerability severity from 0.0 to 10.0. CVE-2026-7820 scores 6.5/10 (Medium). Scores 9.0–10.0 are Critical, 7.0–8.9 are High, 4.0–6.9 are Medium, and below 4.0 are Low.
The list of devices confirmed to be affected by CVE-2026-7820 is shown in the "Affected Devices" section above. Check your firmware version against the vendor security advisory and apply the latest patch.
Apply the latest firmware or software update from the vendor. Check the References section above for official advisories and patch notes. If no patch is available, consider disabling the affected feature or isolating the device from untrusted networks.