Bashのパッチ適用に失敗しました

Bashのパッチ適用に失敗しました

私の本番環境のbashシェルは、「bashbug」の脆弱性に対して脆弱です。https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/

インストールされたバージョンは

`$ bash --version
 GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)`

YUMサーバーがインターネットに接続されていないため、最新のパッケージをインストールできなかったため、bashソースからインストールしようとしました。ソースからダウンロードしてインストールbash 4.3しました。このバージョンはまだbashバグに脆弱であるため、このバージョンの最新のパッチを適用する必要があります。

これを行うには、bash次のサイトから最新のパッチをダウンロードしました。

http://ftp.gnu.org/gnu/bash/bash-4.3-patches/

bash43-030 上記のリンクからパッチを適用しています。

http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-030

私が直面している問題は、次のエラーが原因でパッチ適用が失敗することです。

[bash-4.3]$ patch -p0 < bash-patch patching file builtins/evalstring.c Hunk #1 FAILED at 309. Hunk #2 FAILED at 379. 2 out of 2 hunks FAILED -- saving rejects to file builtins/evalstring.c.rej patching file parse.y Hunk #1 succeeded at 2574 (offset 35 lines). Hunk #2 FAILED at 4038. 1 out of 2 hunks FAILED -- saving rejects to file parse.y.rej patching file shell.h Hunk #1 succeeded at 181 with fuzz 2. patching file y.tab.c Hunk #1 FAILED at 169. Hunk #2 FAILED at 498. Hunk #3 FAILED at 2099. Hunk #4 FAILED at 2113. ... ... Hunk #98 FAILED at 6350. 97 out of 98 hunks FAILED -- saving rejects to file y.tab.c.rej patching file patchlevel.h Hunk #1 FAILED at 26. 1 out of 1 hunk FAILED -- saving rejects to file patchlevel.h.rej

この問題を解決する方法を提案してください。たぶん、パッチが間違った方法で適用された可能性があります。

答え1

バッシュパッチは合計、4.3のソースコードは実際には4.3.0で、パッチは別々であり、すべてのパッチは順番に適用され、各パッチはパッチレベルを1つずつ上げます。公式ウェブサイトは完全なソースコードバージョンをほとんど提供しておらず、最後のバージョンは3.2.48です。

あなたが観察したのは、必須パッチ(.30パッチレベルを表す「-030」サフィックス)には以前のパッチが必要であることです。 (patchlevel.h各パッチで欠落が発生するとパッチエラーが発生するため、これは常にbashパッチとして検出されます。)ソースからビルドする方法については、ここで見つけることができます。https://unix.stackexchange.com/a/157714/31352

ソースからビルドするのは簡単ですが、軽くすることはできません。 Bashにパッチを適用すると、ベンダーのサポートを自分で受け取る必要があり、パッチやアップグレードなどの追加の管理作業が複雑になる可能性があります。

あなたはもっと良いかもしれません。Red Hat RPMをダウンロードしてサーバーに送信します(または実際にソースからビルドしたい場合は代わりにSRPM)。 bashには最小限の依存関係(特にtermcap)があり、それらのどれも変更されないと仮定すると、1つのパッケージのみが必要です。

とにかくbash-4.1に固執する必要があります。スクリプトに影響を与える可能性がある多くの変更があります。COMPAT詳細については、ソースディストリビューションのマニュアルを参照してください。 2.05bから4.3までのすべてのリリースには、「shellshock」(CVE-2014-6271)と関連する問題に対するパッチがあります。

関連情報