Страница 1 из 1

Ошибка раскрытия переменной $local_part@$domain в Exim 4.93 при передаче почты в dovecot

Добавлено: 2020-02-25 20:51:17
dserga
После перехода с Exim 4.92 на 4.93 обнаружился очень неприятный факт:
при передаче сообщения в локальную доставку в dovecot начали сыпаться ошибки следующего содержания:

Код: Выделить всё

2020-02-25 20:33:44 1j6YDF-000AY5-45 attempt to expand tainted string '$local_part@$domain'
2020-02-25 20:33:44 1j6YDF-000AY5-45 == d.zadonskiy@***** R=dovecot_user T=dovecot_virtual_delivery defer (0): Expansion of "$local_part@$domain" from command "/usr/local/libexec/dovecot/deliver -d $local_part@$domain" in dovecot_virtual_delivery transport failed: attempt to expand tainted string '$local_part@$domain'
2020-02-25 20:33:44 1j6YDF-000AY5-45 attempt to expand tainted string '$local_part@$domain'
2020-02-25 20:33:44 1j6YDF-000AY5-45 == e.ovsyanko@******** R=dovecot_user T=dovecot_virtual_delivery defer (0): Expansion of "$local_part@$domain" from command "/usr/local/libexec/dovecot/deliver -d $local_part@$domain" in dovecot_virtual_delivery transport failed: attempt to expand tainted string '$local_part@$domain'
Причем как выяснилось, что такое происходит, если в поле To: стоит не один а несколько получателей. Причем если получатели в поле CC: или BCC: такого поведения не наблюдается.
Во всех остальных местах переменная $local_part@$domain раскрывается нормально без проблем, но в секции транспорт изменений не производилось:

Код: Выделить всё

dovecot_virtual_delivery:
    driver = pipe
    command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
    message_prefix =
    message_suffix =
    delivery_date_add
    envelope_to_add
    return_path_add
    log_output
    user = mailnull
    group = mail
    temp_errors = 64 : 69 : 70: 71 : 72 : 73 : 74 : 75 : 78
секция 100% стандартная. Причем рядом есть аналогичная машина, обновленная до 4.93 с FreeBSD 12.0 на борту, на которой все это работает без проблем. Есть другая с 4.92.3 и там тоже все работает без проблем.

Чем может быть вызвано такое поведение? Причем dovecot обновлялся ранее, недели полторы до этого до версии 2.3.9.3 и работал без проблем.
Авторизация в exim сделана через dovecot, как обычно, где он выступает в роли lda.

Может у кого есть какие мысли куда копать?
Других ошибок обработки не происходить. Отправка сообщений наружу и прием почты в MTA происходит без проблем.

Ошибка раскрытия переменной $local_part@$domain в Exim 4.93 при передаче почты в dovecot

Добавлено: 2020-02-26 22:49:08
dserga
Как только откатил на версию 4.92.3 - все исправилось, ошибка исчезла.
Но там изменился в новой версии формат хранения писем в spool и все зависшие в очереди недоставленные письма стали нечитабельными.
Пришлось их там уничтожить, предварительно сохранив для истории spool (а может там что и нужное есть).
Я прочитал список изменений в exim 4.93, но может у меня глаза замылились, но ничего подобного, чтобы могло вызвать мою проблему в описании не обнаружил.

Ошибка раскрытия переменной $local_part@$domain в Exim 4.93 при передаче почты в dovecot

Добавлено: 2020-03-04 16:24:04
xM
Исправлено в последней версии Exim (4.93.0.4_3) в портах FreeBSD. Но имейте ввиду что в целях безопасности появились некоторые ограничения на использование не зависящих от конфигурации переменных в путях к файлам.
За подробностями - в официальную рассылку Exim.

Ошибка раскрытия переменной $local_part@$domain в Exim 4.93 при передаче почты в dovecot

Добавлено: 2020-03-04 19:30:47
dserga
xM, спасибо, буду смотреть, ибо те изменения, что были анонсированы в 4.93 важны для целей безопасности, да и развитие продукта тоже идет и появляются новые возможности.

Ошибка раскрытия переменной $local_part@$domain в Exim 4.93 при передаче почты в dovecot

Добавлено: 2020-05-26 10:41:02
PamelanuH
Добрый день.
Вот такая ситуация, периодически эксим делает копии исходящих писем в очереди. То есть я отправляю рассылку своим подписчикам 10 000 человек, а по статистике приходит 15000-17000 писем, получается по несколько копий каждому. В кроне стоит задача на проталкивание очереди /usr/sbin/exim4 -qf запуск раз в минуту, так как без нее отправка вообще может застопориться и все письма будут в очереди, пока не толкнешь. А так получается, что письма приходят плюс дублируются в очереди и приходят еще раз. Может проблема именно в той команде, которая в кроне. Но повторюсь, проблема не постоянная, день на день не приходится. Может кто сталкивался с подобным, подскажите, не откажите в любезности =

Ошибка раскрытия переменной $local_part@$domain в Exim 4.93 при передаче почты в dovecot

Добавлено: 2020-05-26 12:33:13
dserga
PamelanuH,

Такое возможно, если в момент срабатывания команды на запуск обработки через cron очереди у вас эта часть очереди уже обрабатывается. Либо запускать вашу рассылку меньшим количеством писем за раз, либо увеличить время между циклами в cron.