เจเจ—เจœเจผเจฟเจฎ เจตเจฟเฉฑเจš เจ—เฉฐเจญเฉ€เจฐ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจœเฉ‹ เจฐเฉ‚เจŸ เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ

เจเจ—เจœเจผเจฟเจฎ เจฎเฉ‡เจฒ เจธเจฐเจตเจฐ เจตเจฟเฉฑเจš เจชเจ›เจพเจฃ เจ•เฉ€เจคเฉ€ เจจเจพเจœเจผเฉเจ• เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ (CVE-2019-10149), เจœเฉ‹ เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจฐเฉ‚เจŸ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจจเจพเจฒ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจฐเจฟเจฎเฉ‹เจŸ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ€ เจ…เจ—เจตเจพเจˆ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจธเจฎเฉฑเจธเจฟเจ† เจฆเฉ‡ เจธเจผเฉ‹เจธเจผเจฃ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ 4.87 เจคเฉ‹เจ‚ 4.91 เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจตเจฟเฉฑเจš เจœเจพเจ‚ EXPERIMENTAL_EVENT เจตเจฟเจ•เจฒเจช เจฆเฉ‡ เจจเจพเจฒ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจจเฉ‹เจŸ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€เฅค

เจกเจฟเจซเฉŒเจฒเจŸ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš, เจนเจฎเจฒเจพ เจ‡เฉฑเจ• เจธเจฅเจพเจจเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉเจ†เจฐเจพ เจฌเฉ‡เจฒเฉ‹เฉœเฉ€ เจชเฉ‡เจšเฉ€เจฆเจ—เฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ "เจชเฉœเจคเจพเจฒ = เจชเฉเจฐเจพเจชเจคเจ•เจฐเจคเจพ" ACL เจฒเจพเจ—เฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจฌเจพเจนเจฐเฉ€ เจชเจคเจฟเจ†เจ‚ เจฒเจˆ เจตเจพเจงเฉ‚ เจœเจพเจ‚เจšเจพเจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจฐเจฟเจฎเฉ‹เจŸ เจนเจฎเจฒเจพ เจ‰เจฆเฉ‹เจ‚ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจฌเจฆเจฒเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจกเฉ‹เจฎเฉ‡เจจ เจฒเจˆ เจธเฉˆเจ•เฉฐเจกเจฐเฉ€ MX เจตเจœเฉ‹เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ, "verify=recipient" ACL เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃเจพ, เจœเจพเจ‚ local_part_suffix เจตเจฟเฉฑเจš เจ•เฉเจ เจฌเจฆเจฒเจพเจ…)เฅค เจ‡เฉฑเจ• เจฐเจฟเจฎเฉ‹เจŸ เจนเจฎเจฒเจพ เจตเฉ€ เจธเฉฐเจญเจต เจนเฉˆ เจœเฉ‡เจ•เจฐ เจนเจฎเจฒเจพเจตเจฐ เจธเจฐเจตเจฐ เจจเจพเจฒ เจ•เจจเฉˆเจ•เจธเจผเจจ เจจเฉ‚เฉฐ 7 เจฆเจฟเจจเจพเจ‚ เจฒเจˆ เจ–เฉเฉฑเจฒเฉเจนเจพ เจฐเฉฑเจ–เจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉเฉฐเจฆเจพ เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ, เจ‡เฉฑเจ• เจŸเจพเจˆเจฎเจ†เจŠเจŸ เจจเฉ‚เฉฐ เจฌเจพเจˆเจชเจพเจธ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฌเจพเจˆเจŸ เจชเฉเจฐเจคเฉ€ เจฎเจฟเฉฐเจŸ เจญเฉ‡เจœเจฃเจพ)เฅค เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจ‡เจน เจธเฉฐเจญเจต เจนเฉˆ เจ•เจฟ เจธเจฎเฉฑเจธเจฟเจ† เจฆเฉ‡ เจฐเจฟเจฎเฉ‹เจŸ เจธเจผเฉ‹เจธเจผเจฃ เจฒเจˆ เจธเจฐเจฒ เจนเจฎเจฒเฉ‡ เจตเฉˆเจ•เจŸเจฐ เจนเจจ.

เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ /src/deliver.c เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค deliver_message() เจซเฉฐเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจชเฉเจฐเจพเจชเจคเจ•เจฐเจคเจพ เจฆเฉ‡ เจชเจคเฉ‡ เจฆเฉ€ เจ—เจฒเจค เจชเฉเจธเจผเจŸเฉ€ เจฆเฉ‡ เจ•เจพเจฐเจจ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจเจกเจฐเฉˆเฉฑเจธ เจซเจพเจฐเจฎเฉˆเจŸเจฟเฉฐเจ— เจตเจฟเฉฑเจš เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจ•เจฐเจ•เฉ‡, เจ‡เฉฑเจ• เจนเจฎเจฒเจพเจตเจฐ เจฐเฉ‚เจŸ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ execv() เจซเฉฐเจ•เจธเจผเจจ เจฆเฉเจ†เจฐเจพ เจฌเฉเจฒเจพเจ เจ—เจ เจ•เจฎเจพเจ‚เจก เจฆเฉ‡ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจตเจฟเฉฑเจš เจ†เจชเจฃเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจฌเจฆเจฒ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ“เจชเจฐเฉ‡เจธเจผเจจ เจฒเจˆ เจฌเจซเจฐ เจ“เจตเจฐเจซเจฒเฉ‹ เจœเจพเจ‚ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจญเฉเจฐเจฟเจธเจผเจŸเจพเจšเจพเจฐ เจฒเจˆ เจตเจฐเจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจคเจ•เจจเฉ€เจ•เจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ;

เจธเจฎเฉฑเจธเจฟเจ† เจเจกเจฐเฉˆเฉฑเจธ เจชเจฐเจฟเจตเจฐเจคเจจ เจฒเจˆ เจจเจฟเจฐเจฎเจพเจฃ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉˆ:

เจกเจฟเจฒเฉ€เจตเจฐ_เจฒเฉ‹เจ•เจฒเจชเจพเจฐเจŸ = เจซเฉˆเจฒเจพเจ“_เจธเจŸเฉเจฐเจฟเฉฐเจ— (
string_sprintf("${local_part:%s}", new->address));
เจกเจฟเจฒเฉ€เจตเจฐ_เจกเฉ‹เจฎเฉ‡เจจ = เจซเฉˆเจฒเจพเจ“_เจธเจŸเฉเจฐเจฟเฉฐเจ— (
string_sprintf("${เจกเฉ‹เจฎเฉ‡เจจ:%s}", เจจเจตเจพเจ‚->เจชเจคเจพ));

expand_string() เจซเฉฐเจ•เจธเจผเจจ เจ‡เฉฑเจ• เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจ•เฉฐเจฌเจพเจˆเจจเจฐ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ•เจฎเจพเจ‚เจก โ€œ${run{command arguments}โ€ เจจเฉ‚เฉฐ เจชเจ›เจพเจฃเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉˆ, เจœเฉ‹ เจ‡เฉฑเจ• เจฌเจพเจนเจฐเฉ€ เจนเฉˆเจ‚เจกเจฒเจฐ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจตเฉฑเจฒ เจฒเฉˆ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจ‡เฉฑเจ• SMTP เจธเฉˆเจธเจผเจจ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจนเจฎเจฒเจพ เจ•เจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจธเจฅเจพเจจเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ•เจฎเจพเจ‚เจก เจญเฉ‡เจœเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ 'RCPT TO โ€œusername+${run{...}}@localhostโ€, เจœเจฟเฉฑเจฅเฉ‡ เจฒเฉ‹เจ•เจฒเจนเฉ‹เจธเจŸ เจฒเฉ‹เจ•เจฒ_เจกเฉ‹เจฎเฉ‡เจจ เจธเฉ‚เจšเฉ€ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจนเฉ‹เจธเจŸ เจนเฉˆ, เจ…เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเจพเจฎ เจ‡เฉฑเจ• เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฅเจพเจจเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเจพ เจจเจพเจฎ เจนเฉˆเฅค

เจœเฉ‡เจ•เจฐ เจธเจฐเจตเจฐ เจ‡เฉฑเจ• เจฎเฉ‡เจฒ เจฐเฉ€เจฒเฉ‡เจ… เจตเจœเฉ‹เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจน เจฐเจฟเจฎเฉ‹เจŸเจฒเฉ€ เจ•เจฎเจพเจ‚เจก 'RCPT TO "${run{...}}@relaydomain.com" เจจเฉ‚เฉฐ เจญเฉ‡เจœเจฃ เจฒเจˆ เจ•เจพเจซเฉ€ เจนเฉˆ, เจœเจฟเฉฑเจฅเฉ‡ relaydomain.com relay_to_domains เจตเจฟเฉฑเจš เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจนเฉ‹เจธเจŸเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจนเฉˆเฅค เจธเฉˆเจŸเจฟเฉฐเจ— เจธเฉˆเจ•เจธเจผเจจ. เจ•เจฟเจ‰เจ‚เจ•เจฟ เจเจ—เจœเจผเจฟเจฎ เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐ เจฎเฉ‹เจก เจจเฉ‚เฉฐ เจ›เฉฑเจกเจฃ เจฒเจˆ เจกเจฟเจซเฉŒเจฒเจŸ เจจเจนเฉ€เจ‚ เจนเฉˆ (เจกเจฟเจฒเฉ€เจตเจฐ_เจกเฉเจฐเฉŒเจช_เจชเฉเจฐเฉ€เจตเจฟเจฒเฉ‡เจœ = เจ—เจฒเจค), "${run{...}}" เจฆเฉเจ†เจฐเจพ เจชเจพเจธ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจจเฉ‚เฉฐ เจฐเฉ‚เจŸ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจšเจฒเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

เจตเจฐเจจเจฃเจฏเฉ‹เจ— เจนเฉˆ เจ•เจฟ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจธเฉ€ เจ–เจคเจฎ เจ•เฉ€เจคเจพ เจซเจฐเจตเจฐเฉ€ เจตเจฟเฉฑเจš เจœเจพเจฐเฉ€ เจ•เฉ€เจคเฉ€ เจ—เจˆ 4.92 เจฐเฉ€เจฒเฉ€เจœเจผ เจตเจฟเฉฑเจš, เจ‡เจธ เจ—เฉฑเจฒ 'เจคเฉ‡ เจœเจผเฉ‹เจฐ เจฆเจฟเฉฑเจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ•เจฟ เจซเจฟเจ•เจธ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเจพ เจ•เจพเจฐเจจ เจฌเจฃ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจฎเฉฐเจจเจฃ เจฆเจพ เจ•เฉ‹เจˆ เจ•เจพเจฐเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจเจ—เจœเจผเจฟเจฎ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจจเฉ‚เฉฐ เจœเจพเจฃเจฌเฉเฉฑเจ เจ•เฉ‡ เจ›เฉเจชเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจ‡เจธ เจฆเฉŒเจฐเจพเจจ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ เจธเฉเจงเจพเจฐ เจ…เจธเจซเจฒเจคเจพ เจœเฉ‹ เจ‰เจฆเฉ‹เจ‚ เจตเจพเจชเจฐเจฆเฉ€ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจ—เจฒเจค เจชเจคเฉ‡ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจ•เฉเจ†เจฒเจฟเจธ เจฆเฉเจ†เจฐเจพ เจเจ—เจœเจผเจฟเจฎ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฆเฉ‡ เจ†เจกเจฟเจŸ เจฆเฉŒเจฐเจพเจจ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€เฅค

เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจœเจพเจฃ เจตเจพเจฒเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจซเจฟเจ•เจธ เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš เจธเจฟเจฐเจซ เจ‡เจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเฉˆ เจชเฉˆเจš. เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจจ เจฒเจˆ เจชเจฟเจ›เจฒเฉ€เจ†เจ‚ เจฌเฉเจฐเจพเจ‚เจšเจพเจ‚ เจฒเจˆ เจธเฉเจงเจพเจฐเจพเจคเจฎเจ• เจฐเฉ€เจฒเฉ€เจœเจผ 11 เจœเฉ‚เจจ เจจเฉ‚เฉฐ เจคเจนเจฟ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค เจชเฉˆเจ•เฉ‡เจœ เจ…เฉฑเจชเจกเฉ‡เจŸ เจฒเจˆ เจคเจฟเจ†เจฐ เจนเจจ เจกเฉ‡เจฌเฉ€เจ…เจจ, เจ‰เจฌเจคเฉ‚เฉฐ, เจ“เจชเจจเจธเฉ‚เจธเฉ‡. Arch เจฒเฉ€เจจเจ•เจธ ะธ เจซเฉ‡เจกเฉ‹เจฐเจพ เจ‰เจน เจธเฉฐเจธเจ•เจฐเจฃ 4.92 เจฆเฉ€ เจธเจชเจฒเจพเจˆ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ† เจฆเจฟเจ–เจพเจˆ เจจเจนเฉ€เจ‚ เจฆเจฟเฉฐเจฆเฉ€เฅค RHEL เจ…เจคเฉ‡ CentOS เจธเจฎเฉฑเจธเจฟเจ† เจธเฉฐเจตเฉ‡เจฆเจจเจธเจผเฉ€เจฒ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจเจ—เจœเจผเจฟเจฎ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจธเจŸเฉˆเจ‚เจกเจฐเจก เจชเฉˆเจ•เฉ‡เจœ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹