I'm facing issue with tainted data from files. I even tried $domain_data instead of $domain, still not able to fix tainted data
Error log main.log
2022-09-06 12:55:31 1oVdjO-000WZa-39 => info R=localuser T=local_delivery
2022-09-06 12:55:31 1oVdjO-000WZa-39 == info@example.com R=autoreplay T=userautoreply defer (13): Permission denied: Tainted '/etc/exim/domains/example.com/autoreply.info.msg' (file for userautoreply transport) not permitted
If I manually put domain name (as below) in transports it works very well
# TRANSPORTS CONFIGURATION
userautoreply:
driver = autoreply
file = /etc/exim/domains/example.com/autoreply.info.msg
debug_print = "${local_part}@${domain}"
from = "${local_part}@${domain}"
headers = Content-Type: text/plain; charset=utf-8;\nContent-Transfer-Encoding: 8bit
subject = "${if def:h_Subject: {Autoreply: \"${rfc2047:$h_Subject:}\"} {Autoreply Message}}"
to = "${sender_address}"
Here exim config
Domains list
domainlist local_domains = lsearch;/etc/localdomains
domainlist relay_to_domains = +local_domains
localpartlist path_safe_localparts = \N^\.*[^./][^/]*$\N
# ROUTERS CONFIGURATION
autoreplay:
driver = accept
require_files = /etc/exim/domains/${lookup{$domain_data}dsearch{/etc/exim/domains/}}/autoreply.${local_part}.msg
condition = ${if exists{/etc/exim/domains/${lookup{$domain_data}dsearch{/etc/exim/domains/}}/autoreply.${local_part}.msg}{yes}{no}}
domains = !$primary_hostname : +local_domains
local_parts = +path_safe_localparts
retry_use_local_part
transport = userautoreply
unseen
Below debug log
12:49:31.797 124677 --------> autoreplay router aliases router <--------
12:49:31.798 124677 local_part=info domain=example.com
12:49:31.798 124677 checking require_files
12:49:31.798 124677 ╭considering: /etc/exim/domains/$domain/aliases
12:49:31.798 124677 ├───────text: /etc/exim/domains/
12:49:31.798 124677 ├considering: $domain/aliases
12:49:31.798 124677 ├considering: /aliases
12:49:31.798 124677 ├───────text: /aliases
12:49:31.798 124677 ├──expanding: /etc/exim/domains/$domain/aliases
12:49:31.798 124677 ╰─────result: /etc/exim/domains/example.com/aliases
12:49:31.798 124677 ╰──(tainted)
12:49:31.798 124677 file check: /etc/exim/domains/$domain/aliases
12:49:31.798 124677 expanded file: /etc/exim/domains/example.com/aliases
12:49:31.798 124677 stat() yielded -1
12:49:31.798 124677 errno = 2
12:49:31.798 124677 aliases router skipped: file check
Asked by Surjit Sidhu
(111 rep)
Sep 6, 2022, 06:54 PM
Last activity: Dec 23, 2022, 10:27 AM
Last activity: Dec 23, 2022, 10:27 AM