Python asyncio モジュールの脆弱性 CVE-2026-3298 が FIX:Windows 環境におけるメモリ破壊

Python Vulnerability Enables Out-of-Bounds Write on Windows

2026/04/24 gbhackers — Python の “asyncio” モジュールに存在する、深刻なセキュリティ脆弱性 CVE-2026-3298 が発見された。この不備を突く攻撃者は、割り当てられたメモリバッファ境界を超えてデータを書き込む可能性がある。この脆弱性は、2026年04月21日に 公式 Python Security アナウンス・メーリングリストで、Python のセキュリティ開発者 Seth Larson により公開された。

この脆弱性は、非同期 I/O 操作に使用される Windows 固有のイベントループ実装である、”asyncio.ProactorEventLoop” の sock_recvfrom_into() メソッドに存在する。

根本的な原因は、オプション・パラメータ nbytes 使用時における、データバッファの境界チェック欠如である。事前割り当てられたバッファサイズをネットワーク・レスポンスが超えた場合に、この脆弱性によりサイズの制限が適用されず、余剰データが隣接メモリ領域を書き換えてしまう。

この種の不備は out-of-bounds (OOB) 書き込みと呼ばれ、メモリ破壊/アプリケーション・クラッシュに加えて、上書き対象メモリを介した任意のコード実行につながる可能性があり、きわめて危険である。

なお、この脆弱性は Windows に限定される。Linux/macOS/Unix 系プラットフォームは、異なるイベントループ・バックエンド (SelectorEventLoop) を使用するため影響を受けない。

“asyncio” ベースのネットワーク処理を利用する Python アプリケーションを、 Windows 上で実行しているユーザーの、sock_recvfrom_into() を nbytes 引数付きで使用する環境がリスクに晒される。

特に以下の環境で、影響が大きい:

  • Windows 上で稼働する Python Web サーバおよび API バックエンド
  • UDP ソケット処理を使用する非同期ネットワーク・アプリケーション
  • 可変長ネットワーク・データを固定長バッファで受信するサービス

Python Security チームは、この脆弱性の深刻度を High と評価している。OOB 書き込みの不備は、メモリ破壊攻撃で頻繁に悪用されている。広く利用される標準ライブラリの “asyncio” に存在する脆弱性であるため、本番環境におけるリスクが高まっている。

すでに GitHub は、Pull Request #148809 を CPython リポジトリへ提出し、この問題に対処している。このパッチは、不足していた境界チェックを追加し、受信データが nbytes パラメータで定義されたバッファサイズを超えないことを保証する。

Windows 環境の Python ユーザーは、以下を実施すべきである:

  • “cve.org/CVERecord?id=CVE-2026-3298” で公式 CVE 情報と修正バージョンを確認する。
  • 修正済み Python リリースが公開され次第、速やかに適用する
  • パッチ適用までの間、信頼できないネットワーク環境では、 sock_recvfrom_into() の nbytes 使用を回避する。

“asyncio.ProactorEventLoop” は、Python 3.8 以降の Windows におけるデフォルトイベント・ループであるため、この脆弱性は広範な Python 環境に影響する。

Windows 上でネットワーク公開アプリケーションを開発する開発者は、このパッチ適用を最優先とすべきである。