Mailpit — это инструмент тестирования электронной почты и API для разработчиков. С 1.30.0 по 1.30.5 внутренняя функция /smtpd/smtpd.go readData() Mailpit вызывает bufio.Reader.ReadBytes перед применением проверки размера len(data)+len(line) к завершенной строке SMTP DATA по Server.MaxSize. Неаутентифицированный SMTP-клиент может отправить одну строку, превышающую настроенный MaxMessageSize, в результате чего вся строка будет выделена до того, как Mailpit вернет отказ 552 5.3.4.
Этот пробел после исправления остается после того, как обычное многострочное накопление ДАННЫХ было ограничено, а одновременные строки слишком большого размера могут создавать значительную нагрузку на память, выходящую за пределы настроенного ограничения размера сообщения. Эта проблема исправлена в версии 1.30.5.
Показать оригинальное описание (EN)
Mailpit is an email testing tool and API for developers. From 1.30.0 until 1.30.5, Mailpit's internal/smtpd/smtpd.go readData() function calls bufio.Reader.ReadBytes before applying the len(data)+len(line) size check to the completed SMTP DATA line against Server.MaxSize. An unauthenticated SMTP client can send a single line larger than the configured MaxMessageSize, causing the full line to be allocated before Mailpit returns the 552 5.3.4 rejection. This post-fix gap remains after normal multi-line DATA accumulation was bounded, and concurrent oversized lines can create substantial memory pressure beyond the configured message-size cap. This issue is fixed in version 1.30.5.
Характеристики атаки
Последствия
Строка CVSS v3.1