Update:
Fix for pgarchives' load_message.py is pretty straightforward: exim provides the untainted version of $local_part,
$local_part_data.Same for $domain and $domain_data.
Pglister's inject.py is a tougher situation. I can't seem to get an untainted version of $sender_address and
$header_message-id.
However, replacing them with fake values does get things delivered properly. I'm starting to wonder if we really need
thesevalues. Why does inject.py need them for exactly? Header-message-id seems to only be displayed in the moderation
queue,and sender address is correctly retrieved anyway (or is it just for the "envelope:" field of the moderation
queue?).
> Maybe we could have a switch to inject that picks these up from the environment: I *think* most of those are actually
madeavailable by default as environment variables in exim if I understand
https://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_pipe_transport.html
<https://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_pipe_transport.html>point 4 correct. Or would those
havethe same problems with tainting?
>
> AIUI the only thing we couldn't get that way might be the message-id? The question is, can we add that to the
environmentwithout getting into taint problems?
Can't get that to work (${env{SENDER_ADDRESS}} or SENDER is replaced by an empty value). I could keep trying, but that
stillwouldn't solve the problem for $header_message-id.
--
Célestin Matte