เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™ Exim เป€เบ›เบตเบ”เป€เบœเบตเบ

เบˆเบฑเบ”เบžเบตเบกเบกเบฒ เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเปเบเป‰เป„เบ‚ Exim 4.92.2 เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹เบฅเป‰เบฒเบ‡โ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹ เบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญ (CVE-2019-15846), เป€เบŠเบดเปˆเบ‡เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเป‚เบ”เบเบœเบนเป‰เป‚เบˆเบกเบ•เบตเบ—เบตเปˆเบกเบตเบชเบดเบ”เบ—เบดเบ‚เบญเบ‡เบฎเบฒเบ. เบšเบฑเบ™เบซเบฒเบˆเบฐเบ›เบฒเบเบปเบ”เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ TLS เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปเบฅเบฐเบ–เบทเบเบ‚เบนเบ”เบฎเบตเบ”เป‚เบ”เบเบเบฒเบ™เบชเบปเปˆเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเบ–เบทเบเบญเบญเบเปเบšเบšเบžเบดเป€เบชเบ”เบซเบผเบทเบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ”เบฑเบ”เปเบ›เบ‡เปƒเบซเป‰เบเบฑเบš SNI. เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ เบเปเบฒเบ™เบปเบ” เป‚เบ”เบqualys.

เบšเบฑเบ™เบซเบฒ เบ›เบฐเบˆเบธเบšเบฑเบ™ เปƒเบ™ handler เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบซเบฅเบปเบšเบซเบ™เบตเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบžเบดเป€เบชเบ”เปƒเบ™ string (string_interpret_escape() เบˆเบฒเบ string.c) เปเบฅเบฐเป€เบเบตเบ”เบกเบฒเบˆเบฒเบเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ '\' เบขเบนเปˆเบ—เป‰เบฒเบเบ‚เบญเบ‡เบชเบฐเบ•เบฃเบดเบ‡เบ–เบทเบเบ•เบตเบ„เบงเบฒเบกเปเบฒเบเบเปˆเบญเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ null ('\0') เปเบฅเบฐ เปœเบตเป„เบ›. เป€เบกเบทเปˆเบญเบเบฒเบ™เบซเบฅเบปเบšเบซเบ™เบต, เบฅเปเบฒเบ”เบฑเบš '\' เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบ—เป‰เบฒเบเปเบ–เบง null เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ”เบฝเบง เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰เบ–เบทเบเบเป‰เบฒเบเป„เบ›เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ™เบญเบเปเบ–เบง, เป€เบŠเบดเปˆเบ‡เบ–เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบชเบทเบšเบ•เปเปˆเบ‚เบญเบ‡เปเบ–เบง.

เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เป‚เบ—เบซเบฒ string_interpret_escape() เบˆเบฑเบ”เบชเบฑเบ™ buffer เบชเปเบฒเบฅเบฑเบš drain เบญเบตเบ‡เบ•เบฒเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ•เบปเบงเบˆเบดเบ‡, เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰ exposed เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡ buffer เป„เบ”เป‰. เบ•เบฒเบกเบ™เบฑเป‰เบ™เปเบฅเป‰เบง, เป€เบกเบทเปˆเบญเบžเบฐเบเบฒเบเบฒเบกเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™, เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญเบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบšเบฑเบŸเป€เบŸเบตเบ—เบตเปˆเบˆเบฑเบ”เบชเบฑเบ™เป„เบงเป‰, เปเบฅเบฐเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™ string เบ—เบตเปˆเบšเปเปˆเบžเบปเป‰เบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ‚เบฝเบ™เป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡ buffer.

เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ‚เบนเบ”เบฎเบตเบ”เป‚เบ”เบเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบญเบญเบเปเบšเบšเบžเบดเป€เบชเบ”เป„เบ›เบซเบฒ SNI เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบ›เบญเบ”เป„เบžเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เบšเบฑเบ™เบซเบฒเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ‚เบนเบ”เบฎเบตเบ”เป‚เบ”เบเบเบฒเบ™เบ”เบฑเบ”เปเบ›เบ‡เบ„เปˆเบฒ peerdn โ€‹โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เป€เบžเบทเปˆเบญโ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เปƒเบšโ€‹เบขเบฑเป‰เบ‡โ€‹เบขเบทเบ™โ€‹เบฅเบนเบโ€‹เบ„เป‰เบฒ เบซเบผเบทโ€‹เป€เบกเบทเปˆเบญโ€‹เบ™เบณโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เปƒเบšโ€‹เบขเบฑเป‰เบ‡โ€‹เบขเบทเบ™. เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบœเปˆเบฒเบ™ SNI เปเบฅเบฐ peerdn เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบง Exim 4.80, เปƒเบ™เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™ string_unprinting() เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญ unprint เป€เบ™เบทเป‰เบญเปƒเบ™ peerdn เปเบฅเบฐ SNI.

เบ•เบปเป‰เบ™เปเบšเบšเบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบˆเบกเบ•เบตเบœเปˆเบฒเบ™ SNI, เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ i386 เปเบฅเบฐ amd64 เปƒเบ™เบฅเบฐเบšเบปเบš Linux เบเบฑเบš Glibc. เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบงเบฒเบ‡เบŠเป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆ heap, เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบเบฒเบ™เบ‚เบฝเบ™เบ—เบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบŠเบทเปˆเป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰. เบŠเบทเปˆเป„เบŸเบฅเปŒเบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบ "/../../../../../../../../etc/passwd". เบ•เปเปˆเป„เบ›, เบ•เบปเบงเปเบ›เบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบœเบนเป‰เบชเบปเปˆเบ‡เบˆเบฐเบ–เบทเบเบ‚เบฝเบ™เบ—เบฑเบš, เป€เบŠเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบšเบฑเบ™เบ—เบถเบ, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบœเบนเป‰เปƒเบŠเป‰เปƒเบซเบกเปˆเปƒเบ™เบฅเบฐเบšเบปเบš.

เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เปเบžเบฑเบเป€เบเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญเบ—เบตเปˆเบ›เปˆเบญเบเบญเบญเบเบกเบฒเป‚เบ”เบเบเบฒเบ™เปเบˆเบเบขเบฒเบ Debian, Ubuntu, Fedora, SUSE/openSUSE ะธ FreeBSD. เบšเบฑเบ™เบซเบฒ RHEL เปเบฅเบฐ CentOS เบšเปเปˆเบญเปˆเบญเบ™เป„เบซเบง, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ Exim เบšเปเปˆเป„เบ”เป‰เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบ„เบฑเบ‡เป€เบเบฑเบšเบŠเบธเบ”เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ (เปƒเบ™ เบญเบธเปˆเบ™ เบญเบฑเบšเป€เบ”เบ” เปเบฅเป‰เบง เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ เบšเปเปˆเป„เบ”เป‰เบงเบฒเบ‡เป„เบงเป‰ เบเบฑเบšโ€‹เบšเปˆเบญเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เบชเบฒโ€‹เบ—เบฒโ€‹เบฅเบฐโ€‹เบ™เบฐโ€‹)โ€‹. เปƒเบ™เบฅเบฐเบซเบฑเบ” Exim เบšเบฑเบ™เบซเบฒเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เบ”เป‰เบงเบเป€เบชเบฑเป‰เบ™เบ”เบฝเบง เป€เบžเบตเป‰เบก, เป€เบŠเบดเปˆเบ‡เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡ escaping เบ‚เบญเบ‡ backslash เบ–เป‰เบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™.

เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบดเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ TLS เบซเบผเบทเป€เบžเบตเปˆเบก
เบžเบฒเบเบชเปˆเบงเบ™ ACL โ€œacl_smtp_mailโ€:

เบ›เบฐเบ•เบดเป€เบชเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
เบ›เบฐเบ•เบดเป€เบชเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™