12/18/2023にSMTP Smugglingという脆弱性(CVE-2023-51764(Postfix), CVE-2023-51765(Sendmail), CVE-2023-51766(exim4))が公開されました。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について纏めます。
2023/12/27 Sendmail(CVE-2023-51765), exim4(CVE-2023-51766)を追加しました。
関連する製品
- Postfix(CVE-2023-51764)
- Sendmail(CVE-2023-51765)
- exim4(CVE-2023-51766)
CVSS/プライオリティ
- CVE-2023-51764
- 影響する製品
- Postfix
- 一次情報源
- Priority
- Vendor: 未公開
- CVSS Score / CVSS Vector
- 未公開
- 影響する製品
- CVE-2023-51765
- 影響する製品
- Sendmail
- 一次情報源
- Priority
- Vendor: 未公開
- CVSS Score / CVSS Vector
- 未
- 影響する製品
- CVE-2023-517666
- 影響する製品
- exim4
- 一次情報源
- SMTP Smuggling – Spoofing E-Mails Worldwide
- Bug 3063 – Partially vulnerable to “SMTP Smuggling” if pipelining is enabled and chunking is disabled/unused
- Priority
- Vendor: 未公開
- CVSS Score / CVSS Vector
- 未
- 影響する製品
各実装の対応
- Postfix:「SMTP Smuggling」
CVE概要(詳細はCVEのサイトをご確認ください)
まず、本脆弱性ですがSMTPプロトコルの中での解釈(実装)の違いから発生しています。
SMTPではSMTPコマンドで「mail from:」と「rcpt to:」でメールの送信元・送信先を指定します。それらがSPFなどのチェックを経てパスされると、dataを打ち込み、Subjectやその他の情報をデータとして渡すことが出来ます。
ここで、<CR><LF>.<CR><LF>でデータの終わりを表します。
そこで、下の画像のようにSMTPプロトコルでの「data」部分で<LF>.<LF>と送ってみます。
これは当然データの終わりではないのでSMTPプロトコルでのやり取りは続けられる(データの終端を待つ)はずです。しかし、実装によっては、受信した際に<LF>.<LF>をメッセージの終端と受け取ってしまうものがあった様です。そのため、上述のメールは
の様に2通目として違うメールを潜り込ませることが可能になります。このメッセージは当然送信の際にも弾かれるべきですが、これが素通りし、当然SPF等のチェックも素通りします。
SMTP Smugglingは、この様に実装によってSMTPプロトコルでの終わりを宣言する文字の解釈が異なることを利用した攻撃になります。
この実装ですが、2023/12/25時点ではPostfixの方で修正が出ています。他のメールソフト/SMTPソフト関係もアップデート情報が出てくると思います。
(一次情報源によると、Ciscoではバグとして扱われている様です。Exchangeでは重大な問題としては受け取られていない様です)。
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
- Debian
- Red Hat Enterprise Linux/CentOS
- Ubuntu
- SUSE/openSUSE
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。