Alpine Dockerイメージから特定のバージョンのalpine / expat 2.6.0-r0をインストールまたはアップグレードすることはできません。

Alpine Dockerイメージから特定のバージョンのalpine / expat 2.6.0-r0をインストールまたはアップグレードすることはできません。

最近発見された脆弱性 CVE-2023-52425 および CVE-2023-52426 により、Alpine Docker イメージの alpine/expat 2.5.0-r2 を expat 2.6.0-r0 にアップグレードする必要があります。

dockerのビルド中にexpatパッケージのバージョンをアップグレードするためのさまざまな方法(以下を参照)を試しましたが、結果の画像にはまだalpine / expat 2.5.0-r2が表示されます。これを行う方法についてアドバイスをいただきありがとうございます。

引用: https://alpine.pkgs.org/3.19/alpine-main-x86_64/expat-2.6.0-r0.apk.html

私のDockerfileで次の3つの方法を試して、expat 2.6.0-r0を正常にインストールできませんでした。

  1. apk update && apk add --upgrade --no-cache expat を実行する

  2. カールの実行 -Ohttp://dl-cdn.alpinelinux.org/alpine/v3.19/main/x86_64/expat-2.6.0-r0.apk apk add --allow-untrusted expat-2.6.0-r0.apk 実行

  3. apk add --upgrade --no-cache expat --repository='https://pkgs.alpinelinux.org/package/v3.19/main/x86_64/expat' 実行

  4. エコランhttp://dl-cdn.alpinelinux.org/alpine/v3.19/main/x86_64/>>/etc/apk/repositories run apk --no-cache --update expat を追加ここに画像の説明を入力してください。

答え1

ついにこの問題を解決しました。画像を段階的に構築するとき

apk add --upgrade expat

最後のステップでは、最新バージョンが適用されます。最初はビルドの手順2でアップデートを適用しましたが、手順3ではアップデートが伝播されないことがわかりました。

答え2

Eclipseで構築したDockerfileに以下をFROM eclipse-temurin:17.0.9_9-jre-alpine追加します。

RUN apk add --upgrade expat

Dockerイメージを構築した後、SNYKはもはや脆弱性を検出しません。

関連情報