「Python」にバッファオーバーフローの脆弱性 ~サポート終了の「Python 2」にも影響 ← CentOS7への対策が結構面倒くさい

脆弱性

「Python」にバッファオーバーフローの脆弱性 ~サポート終了の「Python2」にも影響

「Python」にバッファオーバーフローの脆弱性 ~サポート終了の「Python 2」にも影響/リモートからサービス拒否(DoS)や任意コード実行の可能性
「ActivePerl」などの製品で知られる加ActiveStateは2月5日(現地時間)、「Python」の脆弱性(CVE-2021-3177)について注意を喚起した。すでにサポートの終了した「Python 2」にも影響があるという。

Pythonを使っていない人にも影響がある

実害のあるアプリケーションは少ないと思うが、
"すでにサポート終了の「Python 2」にも影響がある"
影響範囲を考慮して対策を検討した方が良い。

なぜなら、Linux系のOSはpythonを利用したパッケージマネージャが必須環境になっており、特にRedhat系、ユーザーが多いCentOS7は現行でpython2が利用されている環境が多く、放置していると公開された脆弱性を悪用する攻撃が増え続けることになる。

OSから削除できないPython2

  • CentOS6以前
    パッケージマネージャのyumがpython2.7に依存しているので、python2を削除できない。
    【対策】既にサポート切れなので早急にOSをアップグレード or リプレイスしましょう。

  • CentOS7
    CentOS7のパッケージマネージャのyumはpython2.7でしか動かない。
    yumの代わりになるdnfも提供されているが、CentOS7用のdnfはpython2.7が必須。
    【対策】暫定対策として、python2を残したまま、pyenvやvirtualenvを利用してpython2が参照されないようにするとよい。
    python2系を使わないように恒久対策するには、CentOS8へアップグレードする必要があるのだが、python2を削除するには参照しているパッケージも整理する必要がある。

  • CentOS8, CentOS8 stream
    CentOS8のパッケージマネージャのdnfはpython3だけで実行可能で、python2がインストールされていない環境でも問題ない。
    但し、CentOS8は2021年でサポートを終了するため、CentOS8 streamへ移行する等の対策も必要になる。

  • Ubuntu16.04 以前
    Ubuntu16のパッケージマネージャapt-getもpython2系に依存しているのでpython2を削除することができない。
    【対策】既にサポート切れなので早急にOSをアップグレード or リプレイスしましょう。

  • Ubuntu18.04 以降
    Ubuntu18.04~20.04 のパッケージマネージャaptはpython3だけで実行可能。python2は削除しても問題ない。
    【対策】python3をインストールした後にdnfをインストール、dnfがpython3で動作することを確認してからpython2をremoveする。

そもそもpythonは脆弱性スキャナで評価すると、python2だけでなく必須コンポーネントのpyevn,venv等もずっと未修整の脆弱性が含まれている扱いになっている。
オンプレでもクラウドでも脆弱性は避けられないので、基本的なセキュリティリスクと対策を知っておいた方がいい。