Pythonのasyncioモジュールの高度な脆弱性が特定され、Windowsシステムがメモリ破損およびコード実行のリスクにさらされています。
CVE-2026-3298として追跡されたこの欠陥は、2026年4月21日にPythonセキュリティ開発者Seth Larsonによって公式なPythonセキュリティメーリングリストを通じて公開開示されました。
この問題はasyncio.ProactorEventLoopのsock_recvfrom_into()メソッド内に存在し、非同期入出力操作に使用されるWindows固有のイベントループです。
この実装はPython 3.8以降Windowsのデフォルトイベントループとなっており、現代的な展開全体で脆弱性は広く影響を及ぼしています。
根本的な原因は、オプションのnbytesパラメータを処理する際の境界チェックの欠落です。
着信ネットワークデータが割り当てられたバッファサイズを超えた場合、Pythonは制限を強制することができず、余分なデータが隣接するメモリ領域を上書きすることが許可されます。
この欠陥は範囲外(OOB)書き込み脆弱性として分類され、メモリ破損問題の重大なクラスです。
脆弱性関数がPythonの標準ライブラリに存在するため重大性は高まり、本番環境全体でのリスク露出が増加しています。
攻撃者は、予想されるバッファサイズを超える特別に作成されたネットワークレスポンスを送信することで、この欠陥を悪用する可能性があります。
脆弱性はWindowsプラットフォームに厳密に限定されています。Linux、macOS、その他のUnixベースのシステムは異なるバックエンド(SelectorEventLoop)に依存しているため、影響を受けません。
信頼されていない環境でnbytesパラメータとともにsock_recvfrom_into()を使用するアプリケーションは、特に脆弱です。
PythonセキュリティチームはCVE-2026-3298をHIGH重大度として評価しています。バッファオーバーフローを防ぐための適切な境界チェックを導入したパッチが既にCPython GitHub Pull Request #148809を通じて提出されています。
パッチが適用されたバージョンが広く利用可能になるまで、開発者は即座の予防措置を講じることが推奨されます:
asyncio.ProactorEventLoopがWindows上のデフォルトであることを考えると、この脆弱性はデフォルトで広範なアプリケーションに影響を与えます。
ネットワーク対応サービスを構築する開発者は、パッチの適用を優先し、悪用を防ぐためにバッファ処理ロジックを確認する必要があります。
この発見は、広く使用されているプログラミングライブラリのメモリ安全性に関連する継続的なリスクを強調し、現代的なソフトウェアエコシステムにおけるプロアクティブな脆弱性管理の必要性を強化しています。
翻訳元: https://cyberpress.org/critical-python-vulnerability/