Модуль массовой почты DjangoCRM визуализирует контролируемые пользователем поля EmlMessage (тема, контент) через конструктор Django Template() без очистки как минимум в трех местах: message_previews.py создает f-строку, встраивающую message.subject/message.content непосредственно в вызов Template(); email_creators.py передает eml_message.subject непосредственно в качестве строки шаблона в Template(); и helpers.py содержит тот же шаблон интерполяции f-строки. Аутентифицированный пользователь с правами на редактирование сообщений массовой рассылки может внедрить синтаксис шаблона Django ({{ }} / {% %}), который выполняется во время рендеринга, позволяя раскрывать данные и хэши паролей других пользователей через переменные контекста запроса, подделку токенов CSRF и включение произвольных зарегистрированных шаблонов.
Показать оригинальное описание (EN)
DjangoCRM's massmail module renders user-controlled EmlMessage fields (subject, content) through Django's Template constructor with no sanitization, in at least three locations: message_previews.py builds an f-string embedding message.subject/message.content directly into a Template call; email_creators.py passes eml_message.subject directly as a template string to Template; and helpers.py contains the same f-string interpolation pattern.
Характеристики атаки
Последствия
Строка CVSS v3.1