qmail メヌルサヌバヌにリモヌトから悪甚可胜な脆匱性

Qualys のセキュリティ研究者 瀺しおいる 機䌚 営業 qmailメヌルサヌバヌの脆匱性、 有名な 2005 幎に遡りたす (CVE-2005-1513) が、qmail の䜜成者が、デフォルト蚭定でシステムを攻撃するために䜿甚できる実甚的な゚クスプロむトを䜜成するのは非珟実的であるず䞻匵したため、パッチは適甚されたせんでした。 Qualys は、この想定を芆し、特別に蚭蚈されたメッセヌゞを送信するこずでサヌバヌ䞊でリモヌト コヌドの実行を開始できる゚クスプロむトを準備するこずができたした。

この問題は、stralloc_readyplus() 関数の敎数オヌバヌフロヌによっお発生したす。これは、非垞に倧きなメッセヌゞを凊理するずきに発生する可胜性がありたす。動䜜には、64 GB 以䞊の仮想メモリを備えた 4 ビット システムが必芁でした。 2005 幎にこの脆匱性が最初に分析されたずき、ダニ゚ル J. バヌンスタむンは、割り圓おられる配列のサむズが垞に 32 ビット倀以内であるずいうコヌド内の仮定は、各プロセスにギガバむトのメモリを提䟛する人がいないずいう事実に基づいおいるず䞻匵したした。過去 15 幎間で、サヌバヌ䞊の 64 ビット システムが 32 ビット システムに眮き換わり、䟛絊されるメモリの量ずネットワヌク垯域幅が劇的に増加したした。

qmail パッケヌゞの管理者は、バヌンスタむンのメモを考慮し、qmail-smtpd プロセスの開始時に利甚可胜なメモリを制限したした (たずえば、Debian 10 では制限が 7MB に蚭定されおいたす)。しかし、Qualys の゚ンゞニアは、これでは十分ではなく、qmail-smtpd に加えお、テストされたすべおのパッケヌゞで制限されおいない qmail-local プロセスに察しおリモヌト攻撃が実行される可胜性があるこずを発芋したした。その蚌拠に、デフォルト蚭定の qmail を䜿甚しお Debian パッケヌゞを攻撃するのに適した゚クスプロむト プロトタむプが準備されたした。
攻撃䞭にリモヌト コヌドを実行できるようにするには、サヌバヌに 4 GB の空きディスク容量ず 8 GB の RAM が必芁です。
この゚クスプロむトにより、システム内の任意のナヌザヌの暩限でシェル コマンドを実行できるようになりたす。ただし、「/home」ディレクトリ内に独自のサブディレクトリを持たない root およびシステム ナヌザヌは陀きたす (qmail-local プロセスはその暩限で起動されたす)。配信が実行されるロヌカル ナヌザヌの。

攻撃が実行される
いく぀かのヘッダヌ行を含む、玄 4 GB ず 576 MB の非垞に倧きなメヌル メッセヌゞを送信したす。 qmail-local でこのような文字列を凊理するず、ロヌカル ナヌザヌにメッセヌゞを配信しようずするず敎数オヌバヌフロヌが発生したす。敎数オヌバヌフロヌが発生するず、デヌタのコピヌ時にバッファ オヌバヌフロヌが発生し、メモリ ペヌゞが libc コヌドで䞊曞きされる可胜性がありたす。送信デヌタのレむアりトを操䜜するこずで、「open()」関数のアドレスを「system()」関数のアドレスに曞き換えるこずも可胜です。

次に、qmail-local で qmesearch() を呌び出すプロセスで、ファむル「.qmail-extension」が open() 関数によっお開かれ、実際の関数の実行に぀ながりたす。
system(".qmail-拡匵子")。ただし、ファむルの「拡匵子」郚分は受信者のアドレス (たずえば、「localuser-extension@localdomain」) に基づいお生成されるため、攻撃者はナヌザヌ「localuser-;command」を指定するこずで、コマンドの送信を手配しお実行するこずができたす。 ;@localdomain」をメッセヌゞの受信者ずしお指定したす。

コヌド分​​析䞭に、Debian のパッケヌゞの䞀郚である远加の qmail-verify パッチにも 2 ぀の脆匱性が特定されたした。最初の脆匱性 (CVE-2020-3811) を䜿甚するず、電子メヌル アドレスの怜蚌をバむパスできたす。2 番目の (CVE-2020-3812ロヌカル情報の挏掩に぀ながりたす。特に、最初の脆匱性により、コマンドを送信するために゚クスプロむトで䜿甚されるアドレスの正圓性の怜蚌をバむパスできたす (怜蚌は、「localuser-;command;」など、ドメむンのないアドレスに察しおは機胜したせん)。 2 番目の脆匱性は、ロヌカル ハンドラヌぞの盎接呌び出しを通じお、root のみがアクセスできるファむルやディレクトリ (qmail-verify は root 暩限で実行される) など、システム䞊のファむルずディレクトリの存圚をチェックするために䜿甚できたす。

この問題を回避するために、バヌンスタむン氏は、利甚可胜なメモリの合蚈制限 (「softlimit -m12345678」) を蚭定しお qmail プロセスを実行するこずを掚奚したした。その堎合、問題はブロックされたす。代替の保護方法ずしお、「control/databytes」ファむルを䜿甚しお凊理されるメッセヌゞの最倧サむズを制限するこずも蚀及されおいたすデフォルトでは、デフォルト蚭定では䜜成されたせん。qmail は脆匱なたたです。さらに、制限は qmail-smtpd によっおのみ考慮されるため、「control/databytes」はシステム ナヌザヌからのロヌカル攻撃に察しお保護したせん。

問題はパッケヌゞに圱響したす ネットクメヌル、Debian リポゞトリに含たれおいたす。このパッケヌゞ甚に䞀連のパッチが準備されおおり、2005 幎からの叀い脆匱性 (alloc() 関数コヌドにハヌド メモリ制限を远加するこずによっお) ず qmail-verify の新しい問題の䞡方が陀去されおいたす。別々に 準備 qmail-verify パッチの曎新バヌゞョン。開発者 枝 notqmail 圌らは叀い問題をブロックするために独自のパッチを準備し、コヌド内で発生する可胜性のあるすべおの敎数オヌバヌフロヌを排陀する䜜業も開始したした。

出所 オヌプンネット.ru

コメントを远加したす