
CVE-2026-23842 — Hochschwere Denial-of-Service-Schwachstelle, verursacht durch die Erschöpfung des SQLAlchemy-Verbindungspools bei gleichzeitigen get_response()-Aufrufen in ChatterBot ≤ 1.2.10.
Dieses Repository dokumentiert meine Entdeckung und verantwortungsvolle Offenlegung von CVE-2026-23842, einer Denial-of-Service-Schwachstelle mit hohem Schweregrad in ChatterBot.
ChatterBot-Versionen ≤ 1.2.10 sind anfällig für eine Denial-of-Service-Bedingung, die durch unsachgemäßes Datenbank-Session- und Verbindungspool-Management verursacht wird.
Gleichzeitige Aufrufe von:
get_response()
können den zugrunde liegenden SQLAlchemy QueuePool erschöpfen, was zu Folgendem führt:
sqlalchemy.exc.TimeoutError<= 1.2.10
>= 1.2.11
ChatterBot verlässt sich für die Datenbankinteraktion auf SQLAlchemy und verwendet eine Standard-Konfiguration für den Verbindungspool.
Allerdings:
Wenn mehrere Threads gleichzeitig get_response() aufrufen:
TimeoutError ausDies führt zu einer dienstweiten Verweigerung der Verfügbarkeit.
from chatterbot import ChatBot
import threading
bot = ChatBot("dos-test")
def attack():
bot.get_response("hello")
threads = []
for _ in range(30):
t = threading.Thread(target=attack)
t.start()
threads.append(t)
for t in threads:
t.join()
Das folgende Video demonstriert:
Wenn bereitgestellt als:
Kann ein Angreifer die Bedingung ohne Authentifizierung remote auslösen.
| Metrik | Wert |
|---|---|
| Angriffsvektor | Netzwerk |
| Angriffskomplexität | Niedrig |
| Erforderliche Rechte | Keine |
| Benutzerinteraktion | Keine |
| Vertraulichkeit | Keine |
| Integrität | Keine |
| Verfügbarkeit | Hoch |
| Datum | Ereignis |
|---|---|
| 9. Jan | Schwachstelle gemeldet |
| 13. Jan | Maintainer reproduzierte Problem |
| 17. Jan | Advisory veröffentlicht |
| 19. Jan | CVE-2026-23842 zugewiesen |
| 21. Jan | Öffentliche Veröffentlichung |
Entdeckt und verantwortungsvoll offengelegt von:
Aditya Bhatt VAPT-Spezialist CVE-2026-23842-Melder
Diese Schwachstelle wurde dem Maintainer vor der öffentlichen Veröffentlichung verantwortungsvoll gemeldet. Es wurde kein Exploit vor der Verfügbarkeit des Patches öffentlich geteilt.