私のDockerイメージの1つに「Dockerセキュリティ問題CVE-2017-12424」があり、そのパッケージのシャドウバージョンの1つが「1:4.4-4.1」と言われました。そしてアップグレードが必要でした。しかし、Debianパッケージのバージョン1:4.4-4.1のみを見ることができます。
$ dpkg -l | grep 1:4.4-4.1
ii login 1:4.4-4.1 amd64 system login tools
ii passwd 1:4.4-4.1 amd64 change and administer password and group data
Shadow githubリポジトリが見つかりました。https://github.com/shadow-maint/shadowしかし、関連文書を見つけることができませんでした。
シャドウパッケージのバージョンを確認する方法とDebian環境からアップグレードする方法を教えてください。
答え1
パッケージのバージョン番号からoldstable
、2019-07-06バージョンのDebian 9(「ストレッチ」)のように見えます。それでは、最新の安定版を使用するようにDockerイメージを更新することを検討する必要がありますか?
/usr/sbin/newusers
CVE-2017-12424はソフトウェアパッケージのツールに関連しているようですpasswd
。 Dockerイメージに特定のツールが必要ない場合は、.dockerignore
回避策としてファイルを使用して完全に省略できますか?
shadow
複数のユーティリティを構築するソースコードパッケージです。 Debian はユーティリティを 3 つの別々のパッケージにパッケージ化します。この場合、脆弱なユーティリティがパッケージ内にpasswd
あるため、アップグレードする必要があります。しかし、現在Debian 9で利用可能なアップデートバージョンのパッケージはないようです。 Debian 10(「buster」、新しいstable
バージョン)以降でのみ修正が提供されます。
passwd
残りのイメージと一致するようにアップグレードせずにDebian 10からパッケージにアップグレードすると、ライブラリの依存関係エラーが発生する可能性があります。この時点で、デフォルトのイメージ全体をDebian 9からDebian 10にアップグレードすると、良い時間の投資になる可能性があります。
passwd
しかし、他のDebian 9パッケージと互換性のある固定バージョンのパッケージが必要な場合今、あなたがしなければならないかもしれませんShadow 4.5-1.1のDebianソースパッケージをダウンロードしてください。コンパイラと他のビルドツールがインストールされているDebian 9システムに移動し、dpkg-buildpackage
ソースコードで実行して、passwd
Debian 9ライブラリ用にコンパイルされた最新バージョンのパッケージをインポートします。このカスタムパッケージをDockerイメージビルドプロセスに挿入するのはあなたの仕事です。
(ビルドの副作用により、最新バージョンのパッケージも入手できますが、これらのパッケージの標準Debian 9リリースに脆弱であることがわかっていない限りlogin
、uidmap
それを無視することを選択できます。)
newusers
CVE-2017-12424は、システムがWebホスティング環境のコントロールパネルまたはroot以外の/etc/sudoers
ユーザーがコマンドを実行できるようにするなど、権限のないユーザーが特権コンテキストでコマンドを実行できるようにする場合にのみ適用されます。ルートとして実行しますnewusers
。おそらく、これが修正がまだDebian 9に適用されていない理由です。セキュリティチームはこれを最優先事項とみなしません。