
CVE-2026-23842 — Уязвимость типа «Отказ в обслуживании» высокой степени серьезности, вызванная истощением пула соединений SQLAlchemy при параллельных вызовах get_response() в ChatterBot ≤ 1.2.10.
В этом репозитории задокументировано моё обнаружение и ответственное раскрытие CVE-2026-23842 — уязвимости высокой степени серьёзности, приводящей к отказу в обслуживании, в ChatterBot.
Версии ChatterBot ≤ 1.2.10 уязвимы к состоянию отказа в обслуживании, вызванному некорректным управлением сеансами базы данных и пулом соединений.
Одновременные вызовы:
get_response()
могут исчерпать базовый QueuePool SQLAlchemy, что приводит к:
sqlalchemy.exc.TimeoutError<= 1.2.10
>= 1.2.11
ChatterBot полагается на SQLAlchemy для взаимодействия с базой данных и использует конфигурацию пула соединений по умолчанию.
Однако:
Когда несколько потоков одновременно вызывают get_response():
TimeoutErrorЭто приводит к отказу в доступности всего сервиса.
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()
Следующее видео демонстрирует:
Если развёрнуто как:
Злоумышленник может удалённо вызвать это состояние без аутентификации.
| Метрика | Значение |
|---|---|
| Вектор атаки | Сеть |
| Сложность атаки | Низкая |
| Требуемые привилегии | Нет |
| Взаимодействие с пользователем | Нет |
| Конфиденциальность | Нет |
| Целостность | Нет |
| Доступность | Высокая |
| Дата | Событие |
|---|---|
| 9 янв | Уязвимость сообщена |
| 13 янв | Сопровождающий воспроизвёл проблему |
| 17 янв | Опубликована консультация |
| 19 янв | Присвоен CVE-2026-23842 |
| 21 янв | Публичный выпуск |
Обнаружено и ответственно раскрыто:
Aditya Bhatt Специалист по VAPT Автор отчёта о CVE-2026-23842
Эта уязвимость была ответственно раскрыта сопровождающему до публичного выпуска. Никакой эксплойт не был публично опубликован до доступности исправления.