Mailpit — это инструмент тестирования электронной почты и API для разработчиков. До версии 1.30.4 Mailpit считывает SMTP-команды через внутренний/smtpd/smtpd.go session.readLine() с использованием bufio.Reader.ReadString до того, как session.parseLine() анализирует глагол или применяется ограничение командной строки RFC 5321 на 512 октетов. Удаленный SMTP-клиент, не прошедший проверку подлинности, может отправить одну командную строку слишком большого размера, которая полностью выделяется до отклонения синтаксиса или истечения времени ожидания, а обычные ограничения MaxMessageSize и DATA не применяются к этому пути перед DATA.
Один и тот же модуль чтения команд используется в строках продолжения handleAuthLogin(), handleAuthPlain() и handleAuthCramMD5(), поэтому одновременные вводы слишком большого размера могут создать нехватку памяти и снизить доступность службы. Эта проблема исправлена в версии 1.30.4.
Показать оригинальное описание (EN)
Mailpit is an email testing tool and API for developers. Prior to 1.30.4, Mailpit reads SMTP commands through internal/smtpd/smtpd.go session.readLine() using bufio.Reader.ReadString before session.parseLine() parses the verb or the RFC 5321 512-octet command-line limit is enforced. An unauthenticated remote SMTP client can send an oversized single command line that is fully allocated before syntax rejection or timeout, and the normal MaxMessageSize and DATA limits do not apply to this pre-DATA path. The same command reader is used by handleAuthLogin(), handleAuthPlain(), and handleAuthCramMD5() continuation lines, so concurrent oversized inputs can create memory pressure and reduce service availability. This issue is fixed in version 1.30.4.
Характеристики атаки
Последствия
Строка CVSS v3.1