Mailpit — это инструмент тестирования электронной почты и API для разработчиков. С 1.29.0 по 1.30.6 промежуточное программное обеспечение происхождения server/server.go Mailpit проверяет необработанный RequestURI на наличие префикса /api/, в то время как ServeMux Go маршрутизируется с использованием пути URL-адреса, декодированного в процентах, а server/websockets/client.go настраивает websocket.Upgrader.CheckOrigin на возврат true. Вредоносный веб-сайт может запрашивать /%61pi/events, пропускать corsOriginAccessControl(), обращаться к обработчику WebSocket /api/events и получать идентификаторы текущих сообщений, значения Message-Id, поля отправителя и получателя, темы, теги и фрагменты тела из неаутентифицированного экземпляра Mailpit по умолчанию после того, как пользователь посещает сайт.
Это регресс более ранней защиты источника WebSocket и не влияет на развертывания, защищенные --ui-auth-file. Эта проблема исправлена в версии 1.30.6.
Показать оригинальное описание (EN)
Mailpit is an email testing tool and API for developers. From 1.29.0 until 1.30.6, Mailpit's server/server.go origin middleware checks the raw RequestURI for the /api/ prefix while Go's ServeMux routes using the percent-decoded URL path, and server/websockets/client.go configures websocket.Upgrader.CheckOrigin to return true. A malicious website can request /%61pi/events, skip corsOriginAccessControl(), reach the /api/events WebSocket handler, and receive live message IDs, Message-Id values, sender and recipient fields, subjects, tags, and body snippets from an unauthenticated default Mailpit instance after the user visits the site. This is a regression of the earlier WebSocket origin protection and does not affect deployments protected by --ui-auth-file. This issue is fixed in version 1.30.6.
Характеристики атаки
Последствия
Строка CVSS v3.1