AMD Catalyst パッケージについて

AMDビデオカードチップセットのサウスブリッジ(USB Filter Driver)やSATA AHCIドライバーなどのCatalyst Driver。
現在最新は11.7となっており,2011年7月27日付のものがリリースされています。

これらのうち,Windows 7/Vista向けのものにはVisual C++ 2010のランタイムが同梱されており,インストール時にインストールされます。
(カスタムインストールでインストールする内容を選択するようにしても,チェックボックスにチェックが入った状態でグレーアウトしており,チェックを外すことができなかったと思います。)
たとえば,Catalyst Suiteのパッケージの場合にはディスプレイドライバーによりx86(32bit)用とx64(64bit)用がそれぞれありますが,下記スクリーンショットのようにVisual C++x86用ランタイムが同梱されています。

Catalyst Software Suite Package

また,同じように(日本語を含む)Catalyst Control Centerのパッケージ内容を見てみると・・・

Catalyst Control Center

32bit/64bit両対応のパッケージということで,x86用とx64用のランタイムパッケージが同梱されています。

ここで,1枚目のCCC Suiteのパッケージ内容スクリーンショットではランタイムインストーラーのプロパティ・詳細タブを表示していますが,バージョンが “10.0.30319.1”となっています。

ところで,Microsoftからは2011/03/03付でVisual C++ 2010 SP1再配布可能パッケージが公開されています。
たとえば,32bit用のx86版はこちらからダウンロード可能です。
Microsoft Visual C++ 2010 SP1 再頒布可能パッケージ
こちらのダウンロードページでは,バージョンが“2010 SP1”となっていますが実際にインストールしてみると・・・

Visual C++ 2010 SP1

このようにバージョンは“10.0.40219”となっているようです。
それでは,Visual C++ 2010 RTM(工場出荷版ということで無印です)の場合は・・・

Visual C++ 2010 RTM Install

バージョン“10.0.30319”となっていますね。

はい,先ほどCatalyst Suite パッケージ内のC++ランタイムインストーラーのプロパティで確認した同梱されているバージョンを思い出してください。“10.0.30319.1”でしたね。
これは,Visual C++ 2010 RTMが同梱されているとしか思えません。
実際,PCにVisual C++ 2010 SP1をインストールした状態でCatalystドライバーをセットアップすると,

Catalyst Driver Install Error

このようにエラーが出て,インストーラーの最後にログを確認するとVisual C++ ランタイムのインストールに失敗している旨の記述が確認できました。

SP1が出ているということは,なんらかの機能改善,追加,またはセキュリティFixがあってのことと思われます。
調べてみると次のような情報が見つかりました。

[MS11-025] Visual C++ 2010 再頒布可能パッケージ セキュリティ更新プログラム (2011 年 4 月 12 日) について

マイクロソフト セキュリティ情報 MS11-025 - 重要

Microsoft Foundation Class (MFC) ライブラリの脆弱性により、リモートでコードが実行される (2500212)

要点

このセキュリティ更新プログラムは、Microsoft Foundation Class (MFC) ライブラリを使用して開発された特定のアプリケーションに存在する1件の一般に公開された脆弱性を解決します。この脆弱性で、ユーザーが特別な細工がされ たライブラリ ファイルと同じネットワーク フォルダーにある MFC を使用して開発された影響を受けるアプリケーションと関連する正当なファイルを開いた場合、リモートでコードが実行される可能性があります。攻撃は、ユー ザーが信頼されないリモート ファイル システムの場所または WebDAV 共有を訪問して、この場所から影響を受けるアプリケーションでロードされるドキュメントを開いた場合に実行される可能性があります。

このセキュリティ更新プログラムは、すべてのサ ポートされているエディションの Microsoft Visual Studio および Microsoft Visual C++ 再頒布可能パッケージについて、深刻度を「重要」と評価しています。詳細情報は、このセクションの「影響を受けるソフトウェアおよび影響を受けない ソフトウェア」のサブセクションをご覧ください。

ぱっと探してみて見つかったセキュリティFixはたったこの1件のみでしたが,しかしながら重要と評価されるセキュリティリスクに対するFixがなされており,上記一つ目のリンクにある更新対象のファイルのバージョンを見てもRTMが対象であることは明白です。
すなわち,Visual C++ 2010 SP1をインストールすればこのセキュリティFixは適用されていると考えられます。しかし,SP1をインストールしているとCatalystのインス トール時にエラーが出てしまいます。
これは,おそらくCatalyst Insitallerが同梱のC++ランタイムをインストールしようとするとシステムにより新しいバージョンのランタイムが存在し,そのためにランタイムインストーラーがエラーを返してくるためにそのような結果になっていると思われます。

それでは,Visual C++ 2010 SP1の適用をあきらめてセキュリティパッチをあてれば問題ないかというと,そうとも言えません。
なぜならば,その場合にはCatalyst ドライバーパッケージにC++ランタイム RTM版が同梱されていて,(強制的に)インストールされてしまうためにパッチ未適用の状態に上書きされてしまう可能性があるためです。
すなわち,Visual C++ 2010 SP1をインストールしておいてCatalyst Installerパッケージのエラーは無視する,というのがセキュリティ的には正しいということになります。

さりとてインストーラーを実行してエラーが返ってくるというのは気分がいいものではありません。
もしも特にSP1相当のランタイムでも問題がないのであれば,AMDには同梱するランタイムを更新してほしいものです。
というわけで,AMDのカスタマーサポートフォームにて報告してみようと思います(^_^;)