社内でPython からAthenaに問い合わせているチームがあれば、ライブラリの版と、結果の置き場所を確かめておきたいところです。AWS は10月28日(米国時間)、AWS SDK for pandas(awswrangler)について、脆弱性 CVE-2026-118029を公表しました。
3.16.1より前の版は、Athenaの結果を置く既定のS3バケットが、自社のアカウントのものかを確かめていませんでした。他人が同じ名前のバケットを先に作っていると、問い合わせの結果を読まれ、返ってくる結果を書き換えられるおそれがあります。
修正版の3.16.1は、2026年5月8日に出ています。ライブラリを更新し続けている環境なら、すでに直っています。ただ、データ分析の環境は、版を固定したまま何年も動いていることが少なくありません。
名前の決まったバケットを、先に作られる
既定の置き場所の名前は、「aws-athena-query-results-アカウントID-リージョン」です。S3のバケットの名前は、全世界で1つしか作れません。この名前の決まりを知っていれば、他人が、相手のアカウントIDとリージョンを当てはめて、同じ名前のバケットを先に作れます。
AWSのセキュリティ情報。既定の結果の置き場所の持ち主を確かめていなかった 出典: AWS「CVE-2026-118029」セキュリティ情報(2026-153-AWS) (引用)
3.16.1より前の版は、このバケットが誰のものかを確かめずに、結果を書き込み、読み込んでいました。3.16.1のリリースノートには、Athenaの部分で「バケットの持ち主と、マニフェストの完全性を確かめる」修正が入っています。今の版のcreate_athena_bucketは、別のアカウントのバケットだと分かると、エラーで止まります。
深刻度は、GitHub の勧告でCVSS 3.1の5.9(Moderate)です。攻撃の難しさは高く、利用者の操作も要るという評価です。一方で、読まれる側の機密性の影響は「高」とされています。結果に顧客の一覧や売上の数字が入っていれば、そのまま外に出ることになります。
当たるのは、置き場所を指定しない呼び出し
勧告は、攻撃が成り立つのは、既定の置き場所を使い、自社のアカウントのバケットを明示していない場合だとしています。コードで結果の置き場所を指定している呼び出しや、置き場所を強制するワークグループで動く問い合わせは、当たりません。
GitHubの勧告。3.16.1で修正、深刻度は5.9(Moderate) 出典: aws/aws-sdk-pandas「GHSA-34f4-24c9-rgcm」(GitHub) (引用)
Athena自体は、いまは既定の置き場所を自動では作りません。初めてAthenaを使うリージョンでは、置き場所の指定か、置き場所を強制するワークグループが必要です。ただ、以前にAthenaが作った「aws-athena-query-results-」のバケットは、今も使えます。自社のアカウントがそのバケットを持っていれば、同じ名前を他人が作ることはできません。気をつけたいのは、自社がまだそのバケットを持っていないアカウントとリージョンです。
見落としやすいのは、Glueです。AWS SDK for pandasの手引きは、GlueのPython Shell(Python 3.9)には2.15.1が組み込まれていると書いています。ジョブの設定で版を指定していなければ、この古い版で動きます。
影響するチームと、影響しないチーム
影響するのは、3.16.1より前のAWS SDK for pandasで、Athenaの問い合わせを、置き場所を指定せずに動かしているチームです。動かしている場所は、手元のPC、SageMakerのノートブック、Lambda、GlueのPython ShellとPySparkのジョブ、EMR、EC2と幅広くなります。
Athenaの画面や、JDBC・ODBCのドライバーだけで問い合わせている人は、この脆弱性の対象ではありません。3.16.1以降に上げた環境と、Athenaが結果を管理する「Athena managed」のワークグループも対象外です。
Athena本体では、10月23日に別の認可の不備が修正されています(AWS、Athenaの認可不備を修正SQL文の閲覧リスク、利用者対応は不要 )。こちらは利用者の対応は要りません。
データ分析の環境を棚卸しする手順
リポジトリで「awswrangler」を検索し、requirements.txtやpyproject.toml、ロックファイルにある版を一覧にします。会社でフォークしたり、コードを写したりした場合は、その写しも対象です。
Lambdaは、関数に付けたレイヤーを見ます。AWSが配るレイヤーは「AWSSDKPandas-Python」で始まる名前です。どの版かは、手引きの一覧でレイヤーのバージョンと照らします。新しい版のレイヤーは、公開から1週間ほど遅れて使えるようになります。
Glueは、ジョブの詳細の「--additional-python-modules」を見ます。Python Shell(Python 3.9)でこの指定が無いジョブは、2.15.1で動いています。
SageMakerのノートブックは、ライフサイクル の設定と、ノートブックの中のpip installを見ます。3.14.0以降はPyArrow 21以降を使うため、ビルドにCMake 3.25以降が要ります。CMakeの古いAL2-V3のノートブックでは、手引きはPyArrowを古い版に固定するか、AL2023-V1以降に移す方法を挙げています。
EMRは、起動時のスクリプトで入れている版を見ます。
Athenaを使うアカウントとリージョンごとに、「aws-athena-query-results-アカウントID-リージョン」のバケットがあるか、誰のものかを確かめます。AWS CLIのhead-bucketに--expected-bucket-ownerで自社のアカウントIDを渡すと、持ち主が違うときは403で失敗します。
版を上げるまでの間は、コードで結果の置き場所を明示するか、ワークグループの設定で置き場所と「バケットの持ち主」を決め、「Override client-side settings」を有効にします。AWSは、この設定が、好きなバケットに結果が出ることを前提にした自動の処理を壊すことがあるとして、利用者に先に知らせるよう勧めています。結果をS3に置かない「Athena managed」に切り替える方法もあります。
データ分析の環境は、開発の部署や事業部が自分で作り、情シスの台帳に載っていないことがよくあります。版を上げる作業は持ち主のチームに任せるとしても、どこにあるかの一覧づくりは、情シスから声をかけたほうが早く進むでしょう。
この記事は、AWSのセキュリティ情報(2026-153-AWS・2026年10月28日)と、GitHubの勧告GHSA-34f4-24c9-rgcm、AWS SDK for pandasの3.16.1のリリースノートと手引き、Amazon Athenaのユーザーガイドをもとにしています(2026年10月29日確認)。報告者は、Upwind SecurityのDan Gansel氏です。