
セキュリティとプライバシー CS 600.443 の最終プロジェクト
Security and Privacy CS 600.443 の最終プロジェクト | 2018年秋
最初に、patch を作るために diff を使おうとしました。実際の patch を見る前に、自分が思う方法で patch を当てました。encrypt.patch は、その diff を使って作成した元の patch です。しかし、この patch を freeBSD に適用しようとしたところ、受け付けられませんでした。
代わりに、実際の patch を取得する必要がありました。そして、その patch を、私が最初に考えていた方法で修正を実装するように変更しました。これは、パス全体を patch に含めるため機能します。
この patch では、長さを MAXLENGTH と比較しているだけです。それより大きい場合は 0 に設定します。これにより、len = 0 の場合に該当し、エラーになります。これで修正できます!
freeBSD で patch を適用する方法の解説はこちらです。https://www.freebsd.org/security/advisories/FreeBSD-SA-11:08.telnetd.asc 実際の patch を取得する代わりに、この patch を使用してください。機能し、バッファオーバーフローを悪用できなくなります。