pgAdmin 4 bis 9.14 /authenticate/login User.locked Information Disclosure
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 5.8 | $0-$5k | 0.00 |
Zusammenfassung
Es wurde eine problematische Schwachstelle in pgAdmin 4 bis 9.14 entdeckt. Es ist betroffen eine unbekannte Funktion der Datei /authenticate/login. Die Veränderung des Parameters User.locked resultiert in Information Disclosure. Diese Schwachstelle wird als CVE-2026-7820 gehandelt. Es ist möglich, den Angriff aus der Ferne durchzuführen. Es ist kein Exploit verfügbar. Es wird empfohlen, die betroffene Komponente zu aktualisieren.
Details
Es wurde eine Schwachstelle in pgAdmin 4 bis 9.14 ausgemacht. Sie wurde als problematisch eingestuft. Es betrifft unbekannter Code der Datei /authenticate/login. Durch Beeinflussen des Arguments User.locked mit einer unbekannten Eingabe kann eine Information Disclosure-Schwachstelle ausgenutzt werden. Im Rahmen von CWE wurde eine Klassifizierung als CWE-307 vorgenommen. Dies hat Einfluss auf die Vertraulichkeit. Die Zusammenfassung von CVE lautet:
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.Die Schwachstelle wurde durch Fernando Bortotti publiziert. Bereitgestellt wird das Advisory unter github.com. Die Identifikation der Schwachstelle wird seit dem 04.05.2026 mit CVE-2026-7820 vorgenommen. Das Ausnutzen gilt als leicht. Der Angriff kann über das Netzwerk erfolgen. Zur Ausnutzung ist keine spezifische Authentisierung erforderlich. Es sind zwar technische Details, jedoch kein verfügbarer Exploit zur Schwachstelle bekannt. Als Angriffstechnik weist das MITRE ATT&CK Projekt die ID T1110.001 aus.
Ein Aktualisieren auf die Version 9.15 vermag dieses Problem zu lösen.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Produkt
Name
Version
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Zuverlässigkeit: 🔍
CNA CVSS-B Score: 🔒
CNA CVSS-BT Score: 🔒
CNA Vector: 🔒
CVSSv3
VulDB Meta Base Score: 5.9VulDB Meta Temp Score: 5.8
VulDB Base Score: 5.3
VulDB Temp Score: 5.1
VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍
CNA Base Score: 6.5
CNA Vector (PostgreSQL): 🔒
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vektor | Komplexität | Authentisierung | Vertraulichkeit | Integrität | Verfügbarkeit |
|---|---|---|---|---|---|
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Zuverlässigkeit: 🔍
Exploiting
Klasse: Information DisclosureCWE: CWE-307 / CWE-799 / CWE-400
CAPEC: 🔒
ATT&CK: 🔒
Physisch: Nein
Lokal: Nein
Remote: Ja
Verfügbarkeit: 🔒
Status: Nicht definiert
EPSS Score: 🔒
EPSS Percentile: 🔒
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔒
| 0-Day | freischalten | freischalten | freischalten | freischalten |
|---|---|---|---|---|
| Heute | freischalten | freischalten | freischalten | freischalten |
Threat Intelligence
Interesse: 🔍Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍
Gegenmassnahmen
Empfehlung: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: pgAdmin 4 9.15
Timeline
04.05.2026 CVE zugewiesen11.05.2026 Advisory veröffentlicht
11.05.2026 VulDB Eintrag erstellt
11.05.2026 VulDB Eintrag letzte Aktualisierung
Quellen
Advisory: github.comPerson: Fernando Bortotti
Status: Bestätigt
CVE: CVE-2026-7820 (🔒)
GCVE (CVE): GCVE-0-2026-7820
GCVE (VulDB): GCVE-100-362625
Eintrag
Erstellt: 11.05.2026 18:09Anpassungen: 11.05.2026 18:09 (77)
Komplett: 🔍
Cache ID: 216::103
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Bisher keine Kommentare. Sprachen: de + en.
Bitte loggen Sie sich ein, um kommentieren zu können.