Microsoft 安全警示:Indeo 編解碼器漏洞可能允許遠端執行程式碼:2009 年 12 月 8 日

重要 本文包含如何降低安全性設定,或關閉電腦安全性功能的資訊。 您可以進行這些變更,為特定的問題尋求因應措施。 在進行這些變更之前,建議您先評估在特定環境中實作此因應措施的相關風險。 如果您決定使用此因應措施,請採用任何其他的適當步驟,以協助保護電腦。

Microsoft 已向 IT 專業人員發佈關於此問題的 Microsoft 安全性建議。 安全性諮詢包含其他安全性相關資訊。 欲查看安全公告,請造訪以下 Microsoft 網站:

http://www.microsoft.com/technet/security/advisory/954157.mspx

簡介

關於 Microsoft 內建 Indeo 編碼器

Indeo 編解碼器有多種使用方式,某些應用可能需要該編解碼器。 當您造訪合法網站或企業業務應用時,可能會需要使用 Indeo 編碼器。 對於使用較舊 Windows 作業系統的客戶來說,這種情況可能更為常見。 另一方面,不使用編解碼器的客戶可能還想多做一步,完全取消註冊編解碼器。 本文介紹兩種解碼器取消註冊的方法:使用下方提供的 Fix-it 選項,或手動取消註冊編解碼器。

使用 Fix-it 選項取消註冊 Microsoft 內建的 Indeo 編碼器

點擊下表第一欄的 「解決此問題 」按鈕,解除電腦上的 Indeo 編碼器註冊。 完成後,任何應用程式都無法使用該編碼器。 此工具同時將編解碼器二進位從系統中移除註冊,並新增 ACL 以防止其使用。 如果你未來決定這麼做,還有第二個修正方法可以逆轉這個動作。

請使用這個「修正」按鈕自動取消註冊 Indeo 編碼檔案 請使用此「修正」按鈕自動重新註冊 Indeo 編碼檔案

                
              

手動取消註冊 Microsoft 內建的 Indeo 編碼器

有多個檔案與 Microsoft 內建的 Indeo 編碼器相關聯。 根據 Windows 作業系統的不同,並非所有列出的檔案都存在於電腦上。 想要手動取消註冊 Microsoft 收件匣 Indeo 編碼檔案的使用者,必須確認這些檔案在電腦上存在,找到檔案所在的目錄,然後執行本文附帶的範例腳本。

若要手動移除 Microsoft 的收件匣編解碼器,我們建議將 Microsoft 的收件匣編解碼器二進位檔重新命名為類似「binaryname.old」的名稱。 這讓你未來如果想恢復 Indeo 功能,還能逆轉這個流程。 本文包含一個範例腳本,可以用來在你的環境中以更自動化的方式完成這些操作。

注意,取消系統中 Indeo 編碼器註冊可能會導致應用程式相容性問題,尤其是你嘗試播放需要這些編碼器的內容時。

注意:此表列出了可取消註冊的 Microsoft Indeo 盒內編碼器的二進位名稱及版本。 它不包含任何第三方編解碼器。

Windows 2000 版本
ir32_32.dll 3.24.15.3
ir41_32.ax 4.51.16.3
ir41_qc.dll 4.30.62.2
ir41_qcx.dll 4.30.64.1
ir50_32.dll 5.2562.15.55
ir50_qc.dll 5.0.63.48
ir50_qcx.dll 5.0.64.48
ivfsrc.ax 5.10.2.51
Windows Server 2003 或 Windows XP,基於 x64 的版本 版本
ir32_32.dll 3.24.15.3
ir41_32.ax 4.51.16.3
ir41_qc.dll 4.30.62.2
ir41_qcx.dll 4.30.64.1
ir50_32.dll 5.2562.15.55
ir50_qc.dll 5.0.63.48
ir50_qcx.dll 5.0.64.48
Windows XP 版本
ir32_32.dll 3.24.15.3
ir41_32.ax 4.51.16.3
ir41_qc.dll 4.30.62.2
ir41_qcx.dll 4.30.64.1
ir50_32.dll 5.2562.15.55
ir50_qc.dll 5.0.63.48
ir50_qcx.dll 5.0.64.48

移除 Indeo 編碼器的範例腳本

rem - list of indeo files
rem 
rem ir32_32.dll
rem ir41_32.ax 
rem ir41_qc.dll 
rem ir41_qcx.dll 
rem ir50_32.dll 
rem ir50_qc.dll 
rem ir50_qcx.dll 
rem ivfsrc.ax 

rem backup operations  32-bit

copy %windir%\system32\ir32_32.dll %windir%\system32\ir32_32.dll.old
copy %windir%\system32\dllcache\ir32_32.dll %windir%\system32\dllcache\ir32_32.dll.old
copy %windir%\system32\ir41_32.ax %windir%\system32\ir41_32.ax.old
copy %windir%\system32\dllcache\ir41_32.ax %windir%\system32\dllcache\ir41_32.ax.old
copy %windir%\system32\ir41_qc.dll %windir%\system32\ir41_qc.dll.old
copy %windir%\system32\dllcache\ir41_qc.dll %windir%\system32\dllcache\ir41_qc.dll.old
copy %windir%\system32\ir41_qcx.dll %windir%\system32\ir41_qcx.dll.old
copy %windir%\system32\dllcache\ir41_qcx.dll %windir%\system32\dllcache\ir41_qcx.dll.old
copy %windir%\system32\ir50_32.dll %windir%\system32\ir50_32.dll.old
copy %windir%\system32\dllcache\ir50_32.dll %windir%\system32\dllcache\ir50_32.dll.old
copy %windir%\system32\ir50_qc.dll %windir%\system32\ir50_qc.dll.old
copy %windir%\system32\dllcache\ir50_qc.dll %windir%\system32\dllcache\ir50_qc.dll.old
copy %windir%\system32\ir50_qcx.dll %windir%\system32\ir50_qcx.dll.old
copy %windir%\system32\dllcache\ir50_qcx.dll %windir%\system32\dllcache\ir50_qcx.dll.old
copy %windir%\system32\ivfsrc.ax %windir%\system32\ivfsrc.ax.old
copy %windir%\system32\dllcache\ivfsrc.ax %windir%\system32\dllcache\ivfsrc.ax.old

rem backup operations  wow64

copy %windir%\syswow64\ir32_32.dll %windir%\syswow64\ir32_32.dll.old
copy %windir%\system32\dllcache\wir32_32.dll %windir%\system32\dllcache\wir32_32.dll.old
copy %windir%\syswow64\ir41_32.ax %windir%\syswow64\ir41_32.ax.old
copy %windir%\system32\dllcache\wir41_32.ax %windir%\system32\dllcache\wir41_32.ax.old
copy %windir%\syswow64\ir41_qc.dll %windir%\syswow64\ir41_qc.dll.old
copy %windir%\system32\dllcache\wir41_qc.dll %windir%\system32\dllcache\wir41_qc.dll.old
copy %windir%\syswow64\ir41_qcx.dll %windir%\syswow64\ir41_qcx.dll.old
copy %windir%\system32\dllcache\wir41_qcx.dll %windir%\system32\dllcache\wir41_qcx.dll.old
copy %windir%\syswow64\ir50_32.dll %windir%\syswow64\ir50_32.dll.old
copy %windir%\system32\dllcache\wir50_32.dll %windir%\system32\dllcache\wir50_32.dll.old
copy %windir%\syswow64\ir50_qc.dll %windir%\syswow64\ir50_qc.dll.old
copy %windir%\system32\dllcache\wir50_qc.dll %windir%\system32\dllcache\wir50_qc.dll.old
copy %windir%\syswow64\ir50_qcx.dll %windir%\syswow64\ir50_qcx.dll.old
copy %windir%\system32\dllcache\wir50_qcx.dll %windir%\system32\dllcache\wir50_qcx.dll.old
copy %windir%\syswow64\ivfsrc.ax %windir%\syswow64\ivfsrc.ax.old
copy %windir%\system32\dllcache\wivfsrc.ax %windir%\system32\dllcache\wivfsrc.ax.old

rem deletion operations - 32bit

if exist %windir%\system32\ir32_32.dll.old (
    del %windir%\system32\ir32_32.dll
    )

if exist %windir%\system32\dllcache\ir32_32.dll.old (
    del %windir%\system32\dllcache\ir32_32.dll
    )

if exist %windir%\system32\ir41_32.ax.old (
    del %windir%\system32\ir41_32.ax
    )

if exist %windir%\system32\dllcache\ir41_32.ax.old (
    del %windir%\system32\dllcache\ir41_32.ax
    )

if exist %windir%\system32\ir41_qc.dll.old (
    del %windir%\system32\ir41_qc.dll
    )

if exist %windir%\system32\dllcache\ir41_qc.dll.old (
    del %windir%\system32\dllcache\ir41_qc.dll
    )

if exist %windir%\system32\ir41_qcx.dll.old (
    del %windir%\system32\ir41_qcx.dll
    )

if exist %windir%\system32\dllcache\ir41_qcx.dll.old (
    del %windir%\system32\dllcache\ir41_qcx.dll
    )

if exist %windir%\system32\ir50_32.dll.old (
    del %windir%\system32\ir50_32.dll
    )

if exist %windir%\system32\dllcache\ir50_32.dll.old (
    del %windir%\system32\dllcache\ir50_32.dll
    )

if exist %windir%\system32\ir50_qc.dll.old (
    del %windir%\system32\ir50_qc.dll
    )

if exist %windir%\system32\dllcache\ir50_qc.dll.old (
    del %windir%\system32\dllcache\ir50_qc.dll
    )

if exist %windir%\system32\ir50_qcx.dll.old (
    del %windir%\system32\ir50_qcx.dll
    )

if exist %windir%\system32\dllcache\ir50_qcx.dll.old (
    del %windir%\system32\dllcache\ir50_qcx.dll
    )

if exist %windir%\system32\ivfsrc.ax.old (
    del %windir%\system32\ivfsrc.ax
    )

if exist %windir%\system32\dllcache\ivfsrc.ax.old (
    del %windir%\system32\dllcache\ivfsrc.ax
    )

rem deletion operations - wow64

if exist %windir%\syswow64\ir32_32.dll.old (
    del %windir%\syswow64\ir32_32.dll
    )

if exist %windir%\system32\dllcache\wir32_32.dll.old (
    del %windir%\system32\dllcache\wir32_32.dll
    )

if exist %windir%\syswow64\ir41_32.ax.old (
    del %windir%\syswow64\ir41_32.ax
    )

if exist %windir%\system32\dllcache\wir41_32.ax.old (
    del %windir%\system32\dllcache\wir41_32.ax
    )

if exist %windir%\syswow64\ir41_qc.dll.old (
    del %windir%\syswow64\ir41_qc.dll
    )

if exist %windir%\system32\dllcache\wir41_qc.dll.old (
    del %windir%\system32\dllcache\wir41_qc.dll
    )

if exist %windir%\syswow64\ir41_qcx.dll.old (
    del %windir%\syswow64\ir41_qcx.dll
    )

if exist %windir%\system32\dllcache\wir41_qcx.dll.old (
    del %windir%\system32\dllcache\wir41_qcx.dll
    )

if exist %windir%\syswow64\ir50_32.dll.old (
    del %windir%\syswow64\ir50_32.dll
    )

if exist %windir%\system32\dllcache\wir50_32.dll.old (
    del %windir%\system32\dllcache\wir50_32.dll
    )

if exist %windir%\syswow64\ir50_qc.dll.old (
    del %windir%\syswow64\ir50_qc.dll
    )

if exist %windir%\system32\dllcache\wir50_qc.dll.old (
    del %windir%\system32\dllcache\wir50_qc.dll
    )

if exist %windir%\syswow64\ir50_qcx.dll.old (
    del %windir%\syswow64\ir50_qcx.dll
    )

if exist %windir%\system32\dllcache\wir50_qcx.dll.old (
    del %windir%\system32\dllcache\wir50_qcx.dll
    )

if exist %windir%\syswow64\ivfsrc.ax.old (
    del %windir%\syswow64\ivfsrc.ax
    )

if exist %windir%\system32\dllcache\wivfsrc.ax.old (
    del %windir%\system32\dllcache\wivfsrc.ax
    )

安裝此安全更新後,請重新啟用 Indeo 功能

警告: 這個因應措施可能會使電腦或網路更容易遭受惡意使用者或惡意軟體 (例如病毒) 的攻擊。 雖然不建議使用此因應措施,但我們仍提供這項資訊,讓您可以自行選擇是否採用這項因應措施。 您需自行承擔使用此因應措施的風險。

此安全更新會禁用部分 Indeo 功能,因為 Windows Internet Explorer 或 Windows 媒體播放器無法使用該編碼器。 部分使用者可能需要此功能,並可透過還原本次安全更新所造成的登錄檔金鑰變更,重新啟用 Indeo 編解碼器的功能。 不同版本的 Windows 作業系統中登錄檔鍵的變更有所不同。

注意:還原登錄檔金鑰變更可能會讓使用者暴露於安全風險,並削弱電腦的安全設定檔。

若要在不卸載安全更新的情況下還原 APPCOMPAT 緩解措施,請參閱以下適用於您電腦的 Windows 作業系統專用說明。

Microsoft Windows 2000

刪除或重新命名以下登錄檔子鍵。

元件 登錄子機碼
Iexplore.exe HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\AppCompatibility\Iexplore.exe
Wmplayer.exe HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\AppCompatibility\Wmplayer.exe
Mplayer2.exe HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\AppCompatibility\Mplayer2.exe
Mplay32.exe HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\AppCompatibility\Mplay32.exe

Windows XP

建立以下登錄檔子鍵。

元件 登錄子機碼
Iexplore.exe HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{5042648C-F439-468D-859B-6CD12BA02D3A}
價值資料: (六角形) 0x00000001
Wmplayer.exe HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{46676BCD-88EB-42E1-B542-6929118E8029}
價值資料: (六角形) 0x00000001
Mplayer2.exe HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{F1DAD733-5C90-4212-AE22-FFDAEB2C5004}
價值資料: (六角形) 0x00000001
Mplayer32.exe HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{A5153E0F-B708-46AD-9011-8BE6CA921340}
價值資料: (六角形) 0x00000001

Windows Server 2003,基於 x86 與 x64 版本

建立以下登錄檔子鍵。

元件 登錄子機碼
Iexplore.exe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{5042648C-F439-468D-859B-6CD12BA02D3A}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{5042648C-F439-468D-859B-6CD12BA02D3A}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{A731342D-6D9B-4FE5-970D-5A3D0B6BBB6C}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{A731342D-6D9B-4FE5-970D-5A3D0B6BBB6C}
價值資料: (六角形) 0x00000001
Wmplayer.exe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{46676BCD-88EB-42E1-B542-6929118E8029}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{46676BCD-88EB-42E1-B542-6929118E8029}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{405BCD49-9AAE-47C8-8E30-A8A504B626CB}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{405BCD49-9AAE-47C8-8E30-A8A504B626CB}
價值資料: (六角形) 0x00000001
Mplayer2.exe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{F1DAD733-5C90-4212-AE22-FFDAEB2C5004}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{F1DAD733-5C90-4212-AE22-FFDAEB2C5004}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{75A1B058-2189-422D-A967-F7AFF142237C}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{75A1B058-2189-422D-A967-F7AFF142237C}
價值資料: (六角形) 0x00000001
Mplayer32.exe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{A5153E0F-B708-46AD-9011-8BE6CA921340}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\ Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{A5153E0F-B708-46AD-9011-8BE6CA921340}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{5B8661D5-ECE1-4BD9-93E8-5B7E56544EE2}
價值資料: (六角形) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\ Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{5B8661D5-ECE1-4BD9-93E8-5B7E56544EE2}
價值資料: (六角形) 0x00000001

已知問題

Quartz.dll 檔案被列為無符號二進位檔

請考慮以下案例:

  • 你要在一台安裝 Microsoft Windows 2000 並安裝 Service Pack 4 且安裝 DirectX 7 或 DirectX 8 的電腦上安裝此更新。
  • 你可以把系統升級到 DirectX 8 或 DirectX 9。
  • 你嘗試用這次更新再次更新系統。

在這種情況下,Quartz.dll 檔案會成功更新為安全版本。 然而,該檔案可能會被列為無符號二進位檔。

為避免此問題,請遵循以下步驟:

  1. 卸載早期版本 Microsoft DirectShow 的更新。
  2. 手動刪除以下目錄檔案:
    %systemroot%\system32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\KB971633.cat
  3. 升級到較新的 DirectShow 版本。
  4. 安裝適合新版 DirectX 的安全更新。

關於本公告的更多資訊

要存取套件,請點擊以下連結。 欲了解更多關於本公告的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:

955759 Microsoft 安全警示:Indeo 編解碼器 AppCompat 更新說明:2009 年 12 月 8 日

976138 Microsoft 安全警示:Indeo 編碼器 Quartz 更新說明:2009 年 12 月 8 日

更多資訊