
Python 脆弱性のニュースが出ています。2026 年 9 月 30 日、Python 3.14.8・3.13.16・3.12.15 が同時に公開され、深刻度「Critical」の CVE-2026-19445 が修正されました。Python は、プログラムを動かすためのソフト(プログラミング言語とその実行環境)です。学校の授業や、仕事で使う小さなツールのために、知らないうちにパソコンへ入っていることがあります。
「Critical」「CVSS 9.2」という字面だけ見ると、今すぐパソコンが乗っ取られそうに見えます。でも、この記事でやることは地味です。まず入っているかを確かめる。話はそれからです。
先に結論:いちばん深刻な CVE-2026-19445 は、SNI という仕組みで TLS(暗号化通信)の設定を切り替えるサーバー側のプログラムで問題になる弱点です。家庭のパソコンで Python を入れているだけなら、まず入っているかを確かめ、入っていれば最新版(3.14.8 か 3.13.16)に更新、使っていなければアンインストールすれば足ります。
今回はほかにも、圧縮ファイルの展開や通信の認証まわりの欠陥がまとめて直っています。自分で書いたスクリプトや業務ツールで Python を日常的に使っている人ほど、更新の優先度は上がります。
Python 脆弱性 CVE-2026-19445 とは? 9 月 30 日の更新で直ったもの
今回の更新は 3 つの系統に同時に出ました。Python は「3.14」「3.13」「3.12」のように系統(バージョンの太い枝)が並行して保守されていて、それぞれに修正版が配られます。まず全体を表にします。数字と日付は python.org と窓の杜の記事のものです。
| 修正版 | この系統の今 | 配布の形 |
|---|---|---|
| 3.14.8 | 現行の最新系統 | Windows・macOS 向けあり |
| 3.13.16 | 最後の通常保守。次からセキュリティ修正のみ | Windows・macOS 向けあり |
| 3.12.15 | セキュリティ修正のみ(2028 年 10 月まで) | ソースコードのみ |
窓の杜のまとめでは、修正された脆弱性は 3.14.8 で 7 件、3.13.16 と 3.12.15 で 8 件です。その中で深刻度がいちばん高いのが CVE-2026-19445 で、CVSS v4.0 の基本値は 9.2、評価は「Critical」です。
CVE-2026-19445 は、サーバー側の SSLContext を sni_callback が切り替えたときに、解放済みのメモリが使われてしまう欠陥(use-after-free)。3.14.8 ではこのほか、SSLContext.wrap_bio() の検証漏れ、tarfile の展開時の制限回避、zipfile のメモリ枯渇、urllib.request が認証情報を別の通信方式で送ってしまう問題などが修正された。同梱の Expat は 2.8.5 に、Windows・macOS などで同梱の OpenSSL は 3.5.9 に更新された。
出典:python.org「Python 3.14.8」
窓の杜の記事によると、この欠陥では、リモートの未認証の TLS クライアントがサーバーをクラッシュさせたり、解放済みのポインターを経由した呼び出しをさせたりできるおそれがあります。対象は「SNI コールバックで接続先の SSLContext を切り替え、元のコンテキストをほかで保持していないサーバー」です。条件がかなり具体的なのが、今回の話を読み解く鍵になります。
用語:use-after-free とは、プログラムが「もう使い終わった」として手放したメモリの場所を、あとでまた使ってしまう欠陥のことです。その場所に別のデータが入っていると、プログラムが落ちたり、攻撃者の用意した処理に誘導されたりするおそれがあります。


Python 脆弱性の前に。自分のPCに Python は入っている? 確かめ方
ここからが本題です。私がこの手のニュースでいちばん大事だと思っているのは、「自分に関係あるかどうか」を最初の 5 分で決めることです。Python の場合、入っていなければ今回の話はそこで終わります。Windows なら、次の順で確かめてください。
- 設定 → アプリ → インストールされているアプリ(Windows 10 は「アプリと機能」)を開き、検索欄に「Python」と入れる。
- 「Python 3.13.x」「Python 3.12.x」のような項目や、「Python install manager」「Python Launcher」が出てきたら、入っている。番号の 3 つ目の数字まで控えておく。
- 念のため、スタートメニューで「ターミナル」(または「コマンドプロンプト」)を開き、python –version と打って Enter を押す。「Python 3.14.8」のように版が出れば、それがふだん動く Python。
- py list と打つと、Python install manager で入れた版が一覧で出る。複数の版が入っていることもあるので、全部を控える。
控えた番号が 3.14.8、3.13.16、3.12.15 以降なら、修正済みです。それより小さい数字なら、次の章以降を読んで更新を考えます。3.11 以前のように系統そのものが古い場合も、更新の対象と考えてください。

ここ、見落としがちです:python –version と打ったら Microsoft Store が開いた、という場合は、多くの場合 Python は入っていません。Windows には、Python が無いときに Store へ案内する仕組みがあるためです。Store が開いたからといって、そのまま入れる必要はありません。閉じて大丈夫です。
Microsoft Store 版と python.org 版の違い
Windows の Python の入れ方は、いま移り変わりの途中です。python.org によると、従来のインストーラーは新しい「Python install manager」に置き換わりつつあり、install manager は Microsoft Store か python.org から入手できます。従来型のインストーラーは 3.14・3.15 の期間は引き続き用意され、窓の杜は 3.16 以降は Windows のフルインストーラーの提供が廃止される予定だと伝えています。
つまり、同じ「Python が入っている」でも、従来のインストーラーで入れた人と、install manager で入れた人とで、更新のやり方が変わります。手順 1 で見えた項目名が、どちらで入れたかの手がかりになります。
危ないのは誰か。家庭のPCとサーバーを分けて考える
CVE-2026-19445 の条件をもう一度見ます。「SNI コールバックで SSLContext を切り替えるサーバー」。これは、Python で書いたプログラムが、外から来る暗号化通信を待ち受けている状態の話です。家庭のパソコンで、宿題のスクリプトや Excel の集計を Python で回しているだけなら、通信を待ち受ける側には普通なりません。
用語:SNI とは、暗号化通信(TLS)の最初に、接続先のサーバー名をクライアントが伝える仕組みのことです。1 台のサーバーで複数のサイトを受け持つとき、サーバーはこの名前を見て、使う証明書や設定(SSLContext)を切り替えます。
ただし、CVE-2026-19445 だけが今回の修正ではありません。展開や通信の欠陥は、サーバーでなくても、Python で「受け取ったファイルを展開する」「ネットから何かを取ってくる」処理を回していれば関わってきます。影響の大きさで並べると、こうなります。
- Python で Web サーバーや API を動かしていて、複数のドメインの証明書を出し分けている:最優先で更新する
- 業務ツールや自作スクリプトで、外から届いた zip・tar ファイルを Python で展開している:早めに更新する
- 授業や趣味で Python を入れ、ときどき使う:手の空いたときに更新する
- 入れた覚えがあるが、もう使っていない:更新するか、アンインストールする
- Python が入っていない:何もしなくてよい
ここで少しだけ深掘りすると、今回いちばん考えさせられたのは「Python はもう、プログラマーだけの道具ではない」という点です。生成 AI に「このファイルを整理するスクリプトを書いて」と頼めば、誰でも Python を入れて動かせる時代になりました。動かしたスクリプトは役目を終えても、Python 本体はパソコンに残り続ける。入れた本人が忘れた Pythonは、こういう更新の知らせを受け取る機会もありません。……と、これを掘り下げると AI 時代のソフト管理論になってしまうので、ブレーキをかけます。やることは「入っているか見る」です。

更新のしかたと、使っていない Python の片づけ
入れ方によって、更新の手順が分かれます。どちらで入れたか分からなければ、前の章の手順 1 で見えた項目名を見てください。「Python install manager」があれば install manager、「Python 3.13.x」だけなら従来のインストーラーで入れた可能性が高いです。
ここ、見落としがちです:3.12 から 3.14 のように系統をまたいで移ると、仕事で使っているツールやライブラリが新しい系統に対応しておらず、動かなくなることがあります。移る前に、ツールの説明書や配布元で対応する版を確かめてください。同じ系統の中(3.13.15 → 3.13.16 など)の更新なら、この心配はほとんどありません。
そのうえで、更新は次の流れです。
- install manager で入れた場合は、ターミナルで py install --update と打つ。install manager で管理している版がまとめて更新される。
- 従来のインストーラーで入れた場合は、python.org のダウンロードページから、今使っている系統の最新版(3.14 系なら 3.14.8、3.13 系なら 3.13.16)のインストーラーを取ってきて実行する。
- 終わったら、もう一度 python --version(または py list)で版の番号を確かめる。
- 使っていない版が残っていたら、設定 → アプリから該当の Python をアンインストールする。install manager の版なら py uninstall のあとに版の名前(3.12 など)を付けて消せる。
3.12 系を使っている人だけは、少し事情が違います。python.org は 3.12 について、通常のバグ修正が終わり、バイナリのインストーラーも提供しないと明記しています。

Python 3.12 は通常のバグ修正を受けておらず、バイナリのインストーラーも提供されない。3.12 はセキュリティ修正のみの段階にあり、2028 年 10 月までセキュリティ修正が出る予定。
出典:python.org「Python 3.12.15」
ソースコードから自分で組み立てるのは、Windows の普通の使い方ではまず現実的ではありません。Windows で 3.12 を使っているなら、使っているツールの対応を確かめたうえで、3.13 か 3.14 の最新版へ移るのが手軽な道です。
メモ:アプリの中に Python を丸ごと同梱しているソフトもあります。その場合、設定 → アプリに「Python」の項目は出ず、ここまでの手順では更新できません。同梱の Python は、そのソフト自体の更新で新しくなるのを待つことになります。
「使っていない Python は消してもいいのか」という疑問には、多くの場合「消して大丈夫」と答えられます。ただ、家族の誰かが授業や仕事で使っている可能性はあるので、消す前に一声かけてください。消したあとで要ると分かったら、そのときに最新版を入れ直せば済みます。

よくある質問
Python を使った覚えがありません。何かする必要はありますか?
まず Python が入っているかを確かめてください。設定 → アプリ → インストールされているアプリで「Python」を検索し、何も出なければ対応は要りません。入っていても使っていないなら、最新版に更新するか、アンインストールすれば十分です。
今回の Python の脆弱性で、家庭のパソコンがすぐ乗っ取られるのですか?
すぐ乗っ取られる可能性は低いと考えられます。いちばん深刻な CVE-2026-19445 は、SNI で TLS の設定を切り替えて通信を受けるサーバー側のプログラムで問題になる弱点です。ただし圧縮ファイルの展開などほかの欠陥も直っているので、Python を使っているなら更新しておくのが確実です。
Python 3.12 を使っています。インストーラーが見つからないのはなぜですか?
3.12 はセキュリティ修正だけの段階に入っていて、3.12.15 もソースコードだけで配られているためです。Windows で手軽に更新したいなら、3.13 か 3.14 の最新版に移るのが現実的です。移る前に、使っているツールが新しい版に対応しているかを確かめてください。
まとめ
Python の脆弱性 CVE-2026-19445 は、SNI で TLS の設定を切り替えるサーバーで問題になる use-after-free の欠陥で、2026 年 9 月 30 日公開の 3.14.8・3.13.16・3.12.15 で修正されました。同じ更新で、圧縮ファイルの展開や認証情報の扱いの欠陥も直っています。
家庭のパソコンでやることは、入っているかを確かめ、使っているなら最新版へ、使っていないなら片づける。それだけです。数字の大きさに慌てるより、入れた本人が忘れた Python を 1 つ見つけるほうが、ずっと効きます。どれを消していいか分からないという方は、パソコンごとご来店いただくか出張で、一緒に一覧を見ましょう。










