
CVE-2026-8838 は、Amazon Redshift の公式 Python コネクター(amazon-redshift-python-driver)で発見された、重大なコードインジェクション脆弱性(リモートコード実行)です。
この欠陥は、vector_in() 関数内で、サーバーから直接受信したデータに対して Python のネイティブ関数 eval() を安全でない方法で使用していることに起因します。悪意のあるサーバー、または Man-in-the-Middle(MitM) の位置にいる攻撃者は、特別に細工したペイロードを送信することができ、そのペイロードはクライアント側で一切の検証なしに評価・実行されます。
| 項目 | 値 |
|---|---|
| CVE ID | CVE-2026-8838 |
| CVSS Score | 9.8 (Critical) |
| CWE | CWE-94 — コード生成の制御が不適切 |
| CVSS ベクトル | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 影響を受けるコンポーネント | amazon-redshift-python-driver < 2.1.14 |
| 脆弱な関数 | vector_in() |
| 攻撃種別 | Rogue server / Man-in-the-Middle |
| 認証の要否 | 不要 |
| ユーザー操作 | 不要 |
vector_in() 関数は、Redshift サーバーから受信したベクトル型データをデシリアライズする役割を担っています。脆弱なバージョンでは、サーバーから返された生のコンテンツに対して eval() を直接使用しています:
# Code vulnérable (simplifié) — versions < 2.1.14
def vector_in(data, offset, length):
raw = data[offset:offset+length].decode("utf-8")
# FAILLE : eval() sur une donnée contrôlée par le serveur
return eval(raw)
悪意のあるサーバーは、正当なベクトルの代わりに任意の有効な Python 式を返すことができます。Python はそれをネイティブコードとして評価します。
Client (victime) Serveur (malveillant / MitM)
| |
|---------- Connexion Redshift ----------->|
| |
|<--------- Réponse forgée ---------------|
| "[__import__('os').system('cmd')]" |
| |
| eval() exécute le payload côté client |
| => RCE sur la machine du client |
シミュレートされたサーバーは
poc_server.py、デモンストレーション用クライアントはpoc/poc_client.pyを参照してください。
この PoC は、細工された応答を返す Redshift サーバーをシミュレートします。デモンストレーションのみを目的としているため、使用されるペイロードは無害です(whoami)。
実行方法:
# Terminal 1 — démarrer le faux serveur
python poc/poc_server.py
# Terminal 2 — simuler le client vulnérable
python poc/poc_client.py
この脆弱性を悪用されると、攻撃者は以下を行うことができます:
| パッケージ | 影響を受けるバージョン | 修正済みバージョン |
|---|---|---|
amazon-redshift-python-driver | < 2.1.14 | ≥ 2.1.14 |
インストールされているバージョンを確認するには:
pip show amazon-redshift-python-driver
pip install --upgrade amazon-redshift-python-driver
# Vérification
pip show amazon-redshift-python-driver | grep Version
# Attendu : Version: 2.1.14 ou supérieure
詳細な推奨事項については、MITIGATION.md を参照してください:
Maxime288 — github.com/Maxime288
本調査は、攻撃的セキュリティの研究の一環として、教育目的で実施されました。