パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

qmailにバッファオーバーフローの脆弱性」記事へのコメント

  • 再起動? (スコア:3, 参考になる)

    qmail-smtpdってSMTPセッションごとにtcpserverなりinetd(げげ)から起動されるから、明示的な再起動はいらないんじゃないかと思うんですが。今生きているSMTPセッションをすぐに落として、という意味なのかしら。

    # いずれにせよ、databytesを設定しないでqmailを運用するなんて俺自身は考えられないけど。

    • Re:再起動? (スコア:4, 参考になる)

      by Anonymous Coward
      databytesじゃ意味がない [securepoint.com]らしいです。
      • Re:再起動? (スコア:2, 参考になる)

        本当だ。オリジナルのアドバイザリ [guninski.com]もdatabytesの記述が消えて、

        Workaround: Not tested, but setting quota on the receiving email may help.

        となっています。

        • Re:再起動? (スコア:2, 参考になる)

          quota の設定じゃ逃げられないと思うけどなぁ。
          どのユーザにつけるのかわからないけど。

          qmail-smtpd は受け取るだけで、ローカルユーザの権限のファイルになるのは、qmail-local が Maildir なり Mailbox に書き込む時だから。
          • Re:再起動? (スコア:2, 参考になる)

            by visha (779) on 2004年01月20日 12時09分 (#476904) 日記

            ちょっとqmail-smtpd.cを眺めてみました。

            databytesが設定されていない状況であれば、qmailqにそれなりのquotaをかけてあれば、qmail-smtpdがSIGSEGVを食らう前に(qmail-queueがキューに書き出せなくなって落ちるため)SIGPIPEを食らって落ちてくれると思いますが、databytesを設定してあると無駄ということになりそうです。ちなみに、softlimitをかけてもこの件の解決にはなりません。件のコードはポインタをインクリメントしてるだけで、アロケートはしていませんので。

            結局、blast()内でposがオーバーフローしないようにチェックしてやる以外に方法はないと思いました。

            # そもそも、ヘッダフィールド長の上限(CRLF込みで1000bytes)をチェックしなくていいのかよとも思いますし。

            親コメント
            • by visha (779) on 2004年01月20日 12時19分 (#476918) 日記
              ヘッダフィールド長の上限(CRLF込みで1000bytes)をチェックしなくていいのかよとも思いますし。

              ヘッダに限らないや。RFC2822での1行の長さの制限でした。改めて読んでみると、受け入れちゃいけないわけじゃないみたいですね。

              親コメント
            • by Anonymous Coward
              >結局、blast()内でposがオーバーフローしないようにチェックしてやる以外に方法はないと思いました。

              それは、a) の方ですね。
              int pos; を unsigned int pos; に変えるだけで良さげに思えます。

              b) の方は分からないです。
              smtpのヘッダを分離している部分で起こっているらしいんですが。

犯人はmoriwaka -- Anonymous Coward

処理中...