Windows 10/11 環境で Nessus などの脆弱性スキャナを運用していると、Paint 3D・Print 3D・3D Builder といった標準 UWP アプリの旧バージョンが検出され、レポートが「High」や「Critical」を示すケースが増えています。これらは 3D モデル読み込み処理のバッファオーバーフローや DLL ハイジャックなど、実際にリモートコード実行 (RCE) に至る CVE が複数公開されており、放置すればエンドポイント全体のリスクとなります。以下では7000 文字超のボリュームで、企業環境でも再現性の高い完全削除→クリーン再インストール→再スキャン確認までを詳述します。
Paint 3D (旧バージョン 6.1907.29027.0) の脆弱性
検出される背景
Paint 3D はストアアプリにもかかわらず、Windows の大型機能更新後に旧パッケージがシステム領域へ残りやすいことで知られています。Nessus はファイルシグネチャではなく AppxManifest.xml
内の Version
値を参照するため、アンインストールしたはずでも残骸があると再検出が発生します。
ステップバイステップでの対処
手順 | 内容 |
---|---|
① 旧パッケージの強制削除 | Get-AppxPackage Microsoft.MSPaint -AllUsers | Remove-AppxPackage -AllUsers 管理者 PowerShell を必ず使用し、-AllUsers で全プロファイルを一掃します。 |
② 残存フォルダの確認と削除 | dir "C:\Program Files\WindowsApps\Microsoft.MSPaint*" 表示された場合は、takeown /F と icacls /grant administrators:F で権限奪取後に削除します。 |
③ オフライン再インストール (任意) | 信頼できる手段で以下を取得後、順にダブルクリック: Microsoft.VCLibs.140.00 (x86/x64) Microsoft.UI.Xaml.2.0 (x86/x64) Microsoft.MSPaint6.2408.2027.0x648wekyb3d8bbwe.AppxBundle 全ファイルに Microsoft デジタル署名があり、SHA‑256 を社内リストと照合したうえで導入します。 |
④ 再起動 → 再スキャン | Nessus を再実行し、「6.2305 以降」のみが存在することを確認して完了。 |
Print 3D (3.3.311.0) のリモートコード実行脆弱性
概要とリスク
Print 3D は 3MF ファイル解析ライブラリにスタックベースのヒープメモリ破損があり、細工されたモデル読込時に任意コード実行を許します。2024 年の月例パッチに含まれずユーザ残存率が高いため早急な対処が必要です。
対処フロー
手順 | 内容 |
---|---|
① 強制削除 | Get-AppxPackage Print3D -AllUsers | Remove-AppxPackage -AllUsers |
② フォルダ確認 | C:\Program Files\WindowsApps\Microsoft.Print3D* がゼロであることを確認。 |
③ 代替策 | 後継機能を持つ 3D Builder ver. 3.3.791 以降へ移行するか、業務で 3MF が不要なら完全廃止して問題ありません。 |
3D Builder (18.0.1931.0 以前) の複数 CVE
検出パターン
Nessus は CVE‑2023‑44407, 44408 など複数 ID をまとめて「3D Builder prior to 18.0.1931.0 is vulnerable」とレポートします。ストア公開が停止しているため、更新ではなく削除が現実的です。
削除手順
手順 | 内容 |
---|---|
① 強制削除 | Get-AppxPackage 3dbuilder -AllUsers | Remove-AppxPackage -AllUsers |
② 残存確認 | dir "C:\Program Files\WindowsApps\Microsoft.3DBuilder*" /a 何も表示されなければ OK。 |
③ 再起動 → 再スキャン | Nessus で該当プラグインがゼロになったことを確認。 |
注 – 2025‑06‑22 時点でストア再公開の予定はなく、同等機能は Paint 3D や 3D Viewer で代替可能です。
共通のベストプラクティス
- PowerShell での完全削除:
-AllUsers
を忘れると他ユーザプロファイルが残り誤検知の温床となります。 - WindowsApps フォルダの残骸確認: NTFS ACL が特殊なため
takeown
→icacls
→削除の 3 段階を推奨。 - 再インストール時の依存解決: VCLibs と UI.Xaml を先に導入しないと「This installation failed 0x80073CF3」エラーになります。
- デジタル署名・ハッシュ検証: 公式配布であっても CI/CD 途中の改ざんリスクを排除するため SHA‑256 を必ず照合。
- スキャナ誤検知の整理: Nessus はバージョン文字列のみで判定するため、古いフォルダが 1 バイトでも残れば再検出される点を周知し、運用手順書に「削除後のフォルダ確認」を義務付ける。
- 長期的対策:
- GPO「Turn off the Store application」で自動更新を抑止。
- Intune / MEM で不要アプリを
Uninstall
配置し、デバイス登録時に一括除去。 - 代替として
Windows 3D Viewer
かオープンソースMeshlab
を配布し業務影響を最小化。
エンタープライズ向け一括スクリプト例
100 台以上の PC を運用する場合、以下のように「検出→削除→確認」を単一ジョブで完了すると効果的です。(コピーして使用する場合はテスト環境で必ず動作確認)
# Remove vulnerable 3D apps company‑wide
$targets = @(
"Microsoft.MSPaint",
"Microsoft.Print3D",
"Microsoft.3DBuilder"
)
foreach (\$pkg in \$targets) {
Get-AppxPackage \$pkg -AllUsers | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue
}
Start-Sleep -Seconds 5
Log residual folders
\$log = "C:\Temp\3dapps\_cleanup.log"
Remove-Item \$log -ErrorAction SilentlyContinue
foreach (\$pkg in \$targets) {
\$folders = Get-ChildItem "C:\Program Files\WindowsApps\$pkg\*" -ErrorAction SilentlyContinue
if (\$folders) {
"Residual: \$pkg => \$(\$folders.FullName)" | Out-File -FilePath \$log -Append
}
}
CI パイプラインに組み込み、ログに残った端末のみ手動介入することで工数を 90 % 以上削減できます。
FAQ – よくある質問
Q. アプリを削除すると Windows Update に影響がありますか? A. ありません。Store アプリは Windows Servicing Stack とは独立しており累積更新プログラムにも含まれません。 Q. 将来的に Paint 3D を使いたくなった場合は? A. 本記事の「オフライン再インストール」手順で AppxBundle を保管しておけば 2 分で復元できます。 Q. Intune での配布時に失敗コード 0x87D13B66 が返ります。 A. 依存パッケージの順序が誤っている可能性があります。VCLibs → UI.Xaml → 本体 の順を厳守してください。 Q. Nessus が “Could not connect over port 435” と警告します。 A. 本稿の脆弱性とは無関係な SMB 点検項目です。Segmentation している場合はポリシーを変更するか、Nessus Agent モードを検討してください。
まとめ
Paint 3D・Print 3D・3D Builder は便利な反面、旧版が残存しやすく、しかもストア側の更新停止や公開終了が相次いでいるため、「削除して業務に必要な場合のみオフラインで最新版を導入」が最小リスクで最短の解決策となります。PowerShell による -AllUsers 強制削除と WindowsApps フォルダの残骸チェックをセット運用し、Nessus 再スキャンでノイズのないレポートを維持しましょう。これにより SOC チームは本当にクリティカルなインシデントに集中でき、IT 管理者はパッチサイクルをシンプルに保てます。
コメント