ืคื’ื™ืขื•ืช ืงืจื™ื˜ื™ืช ื‘-Exim ื”ืžืืคืฉืจืช ืœื”ืคืขื™ืœ ืงื•ื“ ื‘ืฉืจืช ืขื ื”ืจืฉืื•ืช ืฉื•ืจืฉ

ื‘ืฉืจืช ื“ื•ืืจ ืฉืœ Exim ืžื–ื•ื”ื” ืงืจื™ื˜ื™ ืคื’ื™ืขื•ืช (CVE-2019-10149), ืžื” ืฉืขืœื•ืœ ืœื”ื•ื‘ื™ืœ ืœื‘ื™ืฆื•ืข ืงื•ื“ ืžืจื—ื•ืง ื‘ืฉืจืช ืขื ื–ื›ื•ื™ื•ืช ืฉื•ืจืฉ ื‘ืขืช ืขื™ื‘ื•ื“ ื‘ืงืฉื” ื‘ืขืœืช ืžื‘ื ื” ืžื™ื•ื—ื“. ื”ืืคืฉืจื•ืช ืœื ื™ืฆื•ืœ ื”ื‘ืขื™ื” ืฆื•ื™ื ื” ื‘ื’ืจืกืื•ืช ืž-4.87 ืขื“ 4.91 ื›ื•ืœืœ ืื• ื‘ืขืช ื‘ื ื™ื™ื” ืขื ืืคืฉืจื•ืช EXPERIMENTAL_EVENT.

ื‘ืชืฆื•ืจืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ, ื”ื”ืชืงืคื” ื™ื›ื•ืœื” ืœื”ืชื‘ืฆืข ืœืœื ืกื™ื‘ื•ื›ื™ื ืžื™ื•ืชืจื™ื ืขืœ ื™ื“ื™ ืžืฉืชืžืฉ ืžืงื•ืžื™, ืฉื›ืŸ ืžื•ื—ืœ ื”-ACL "verify = recipient", ืืฉืจ ืžื‘ืฆืข ื‘ื“ื™ืงื•ืช ื ื•ืกืคื•ืช ืขื‘ื•ืจ ื›ืชื•ื‘ื•ืช ื—ื™ืฆื•ื ื™ื•ืช. ื”ืชืงืคื” ืžืจื—ื•ืง ืขืœื•ืœื” ืœื”ืชืจื—ืฉ ื›ืืฉืจ ื”ื’ื“ืจื•ืช ืžืฉืชื ื•ืช, ื›ื’ื•ืŸ ืœืคืขื•ืœ ื›-MX ืžืฉื ื™ ืขื‘ื•ืจ ื“ื•ืžื™ื™ืŸ ืื—ืจ, ื”ืกืจืช ื”-ACL "verify=recipient" ืื• ืฉื™ื ื•ื™ื™ื ืžืกื•ื™ืžื™ื ื‘-local_part_suffix). ื”ืชืงืคื” ืžืจื—ื•ืง ืืคืฉืจื™ืช ื’ื ืื ื”ืชื•ืงืฃ ืžืฆืœื™ื— ืœืฉืžื•ืจ ืขืœ ื”ื—ื™ื‘ื•ืจ ืœืฉืจืช ืคืชื•ื— ืœืžืฉืš 7 ื™ืžื™ื (ืœื“ื•ื’ืžื”, ืฉืœื™ื—ืช ื‘ื™ื™ื˜ ืื—ื“ ืœื“ืงื” ื›ื“ื™ ืœืขืงื•ืฃ ืคืกืง ื–ืžืŸ). ื™ื—ื“ ืขื ื–ืืช, ื™ื™ืชื›ืŸ ืฉืงื™ื™ืžื™ื ื•ืงื˜ื•ืจื™ ืชืงื™ืคื” ืคืฉื•ื˜ื™ื ื™ื•ืชืจ ืœื ื™ืฆื•ืœ ืžืจื—ื•ืง ืฉืœ ื”ื‘ืขื™ื”.

ื”ืคื’ื™ืขื•ืช ื ื’ืจืžืช ืขืœ ื™ื“ื™ ืื™ืžื•ืช ืฉื’ื•ื™ ืฉืœ ื›ืชื•ื‘ืช ื”ื ืžืขืŸ ื‘ืคื•ื ืงืฆื™ื” deliver_message() ื”ืžื•ื’ื“ืจืช ื‘ืงื•ื‘ืฅ /src/deliver.c. ืขืœ ื™ื“ื™ ืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ืขื™ืฆื•ื‘ ื”ื›ืชื•ื‘ื•ืช, ืชื•ืงืฃ ื™ื›ื•ืœ ืœื”ืฉื™ื’ ืืช ื”ื—ืœืคืช ื”ื ืชื•ื ื™ื ืฉืœื• ืœืืจื’ื•ืžื ื˜ื™ื ืฉืœ ืคืงื•ื“ื” ื”ื ืงืจืืช ื“ืจืš ื”ืคื•ื ืงืฆื™ื” execv() ืขื ื–ื›ื•ื™ื•ืช ืฉื•ืจืฉ. ื”ืคืขื•ืœื” ืื™ื ื” ืžืฆืจื™ื›ื” ืฉื™ืžื•ืฉ ื‘ื˜ื›ื ื™ืงื•ืช ืžื•ืจื›ื‘ื•ืช ื”ืžืฉืžืฉื•ืช ืœื”ืฆืคืช ืžืื’ืจ ืื• ื”ืฉื—ืชืช ื–ื™ื›ืจื•ืŸ; ืžืกืคื™ืงื” ื”ื—ืœืคืช ืชื•ื•ื™ื ืคืฉื•ื˜ื”.

ื”ื‘ืขื™ื” ืงืฉื•ืจื” ืœืฉื™ืžื•ืฉ ื‘ืžื‘ื ื” ืœื”ืžืจืช ื›ืชื•ื‘ืช:

delivery_localpart = expand_string(
string_sprintf("${local_part:%s}", new->address));
delivery_domain = expand_string(
string_sprintf("${domain:%s}", new->address));

ื”ืคื•ื ืงืฆื™ื” expand_string() ื”ื™ื ืฉื™ืœื•ื‘ ืžืกื•ื‘ืš ืžื“ื™, ื›ื•ืœืœ ื–ื™ื”ื•ื™ ื”ืคืงื•ื“ื” "${run{command arguments}", ืฉืžื•ื‘ื™ืœื” ืœื”ืคืขืœื” ืฉืœ ืžื˜ืคืœ ื—ื™ืฆื•ื ื™. ืœืคื™ื›ืš, ื›ื“ื™ ืœืชืงื•ืฃ ื‘ืชื•ืš ื”ืคืขืœืช SMTP, ืžืฉืชืžืฉ ืžืงื•ืžื™ ืฆืจื™ืš ืจืง ืœืฉืœื•ื— ืคืงื•ื“ื” ื›ืžื• 'RCPT TO "username+${run{...}}@localhost"', ื›ืืฉืจ localhost ื”ื•ื ืื—ื“ ื”ืžืืจื—ื™ื ืžืจืฉื™ืžืช local_domains, ื•ืฉื ืžืฉืชืžืฉ ื”ื•ื ืฉื ืฉืœ ืžืฉืชืžืฉ ืžืงื•ืžื™ ืงื™ื™ื.

ืื ื”ืฉืจืช ืคื•ืขืœ ื›ืžืžืกืจ ื“ื•ืืจ, ืžืกืคื™ืง ืœืฉืœื•ื— ืžืจื—ื•ืง ืืช ื”ืคืงื•ื“ื” 'RCPT TO "${run{...}}@relaydomain.com"', ื›ืืฉืจ relaydomain.com ื”ื•ื ืื—ื“ ื”ืžืืจื—ื™ื ื”ืจืฉื•ืžื™ื ื‘-relay_to_domains ืกืขื™ืฃ ื”ื”ื’ื“ืจื•ืช. ืžื›ื™ื•ื•ืŸ ืฉ-Exim ืื™ื ื• ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืœืžืฆื‘ ืฉื—ืจื•ืจ ื”ืจืฉืื•ืช (deliver_drop_privilege = false), ืคืงื•ื“ื•ืช ื”ืžื•ืขื‘ืจื•ืช ื‘ืืžืฆืขื•ืช "${run{...}}" ื™ื‘ื•ืฆืขื• ื›-root.

ืจืื•ื™ ืœืฆื™ื™ืŸ ื›ื™ ื”ืคื’ื™ืขื•ืช ื”ื™ื™ืชื” ื—ื•ืกืœื• ื‘ืžื”ื“ื•ืจืช 4.92 ืฉืคื•ืจืกืžื” ื‘ืคื‘ืจื•ืืจ, ืžื‘ืœื™ ืœื”ื“ื’ื™ืฉ ืฉื”ืชื™ืงื•ืŸ ืขืœื•ืœ ืœื”ื•ื‘ื™ืœ ืœื‘ืขื™ื•ืช ืื‘ื˜ื—ื”. ืื™ืŸ ืกื™ื‘ื” ืœื”ืืžื™ืŸ ืฉื”ื™ื™ืชื” ื”ืกืชืจื” ืžื›ื•ื•ื ืช ืฉืœ ื”ืคื’ื™ืขื•ืช ืขืœ ื™ื“ื™ ืžืคืชื—ื™ ืืงืกื™ื, ืฉื›ืŸ ื”ื‘ืขื™ื” ืชื•ืงื ื” ื‘ืžื”ืœืš ืชื™ืงื•ื ื™ื ื›ืฉืœ ื”ืžืชืจื—ืฉ ื›ืืฉืจ ื›ืชื•ื‘ื•ืช ืฉื’ื•ื™ื•ืช ืžืฉื•ื“ืจื•ืช, ื•ื”ืคื’ื™ืขื•ืช ื–ื•ื”ืชื” ืขืœ ื™ื“ื™ Qualys ื‘ืžื”ืœืš ื‘ื™ืงื•ืจืช ืฉืœ ืฉื™ื ื•ื™ื™ื ื‘-Exim.

ืชื™ืงื•ืŸ ืขื‘ื•ืจ ื’ืจืกืื•ืช ืงื•ื“ืžื•ืช ืฉืžืžืฉื™ื›ื™ื ืœืฉืžืฉ ื‘ื”ืคืฆื•ืช ื–ืžื™ืŸ ื›ืจื’ืข ืจืง ื‘ืฉื ืชื™ืงื•ืŸ. ืžื”ื“ื•ืจื•ืช ืชื™ืงื•ืŸ ืขื‘ื•ืจ ืกื ื™ืคื™ื ืงื•ื“ืžื™ื ืœืชื™ืงื•ืŸ ื”ื‘ืขื™ื” ืžืชื•ื›ื ื ื•ืช ืœ-11 ื‘ื™ื•ื ื™. ืขื“ื›ื•ื ื™ ื”ื—ื‘ื™ืœื•ืช ืžื•ื›ื ื™ื ื“ื‘ื™ืืŸ, ืื•ื‘ื•ื ื˜ื•, openSUSE. Arch Linux ะธ ืคื“ื•ืจื” ื”ื ืžืกืคืงื™ื ื’ืจืกื” 4.92, ืฉื‘ื” ื”ื‘ืขื™ื” ืœื ืžื•ืคื™ืขื”. ื‘ืขื™ื™ืช RHEL ื•- CentOS ืœื ืจื’ื™ืฉื™ื, ืžื›ื™ื•ื•ืŸ ืฉ-Exim ืื™ื ื• ื›ืœื•ืœ ื‘ืžืื’ืจ ื”ื—ื‘ื™ืœื•ืช ื”ืจื’ื™ืœ ืฉืœื”ื.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”