
FreeBSD telnetd のバッファオーバーフロー (CVE-2011-4862) に対する教育的なパッチ実装。段階的な修正の説明と手動パッチ適用手順を含む。
当初、diffを使ってパッチを作成しようとしました。 実際のパッチを見る前に、自分の考えた方法でパッチを当てました。 encrypt.patch は、その diff で作成したオリジナルのパッチです。 しかし、このパッチを freeBSD に適用しようとしたところ、受け入れられませんでした。
代わりに、実際のパッチを取得する必要がありました。そして、私が当初考えていた方法で修正を実装するようにパッチを変更しました。これが機能するのは、パッチ全体のパスをパッチに含めるからです。
パッチでは、単純に長さを MAXLENGTH と比較します。 それより大きい場合は、0 に設定します。 これにより、len = 0 の場合に該当し、エラーになります。これで修正されます :-)
以下は、freeBSD でパッチを適用する方法の説明です。 https://www.freebsd.org/security/advisories/FreeBSD-SA-11:08.telnetd.asc 実際のパッチを取得する代わりに、このパッチを使用してください。 これで動作し、バッファオーバーフローを悪用できなくなります。