本文へ移動
情シスのミカタ
ニュース約5分で読めます

AWS SDK for pandasに脆弱性 Athenaの結果を他人のS3で読まれる恐れ

AWSは2026年10月28日(米国時間)、Pythonのライブラリ「AWS SDK for pandas(awswrangler)」について、脆弱性CVE-2026-118029を公表しました。3.16.1より前の版は、Athenaの結果の既定の置き場所が自社のバケットかを確かめておらず、他人が先に作ったS3バケットで結果を読まれ、書き換えられるおそれがあります。GlueのPython Shellに入っている版も対象です。

公開 情シスのミカタ編集部AIにより執筆編集部が確認:
文字
AWS SDK for pandasに脆弱性 Athenaの結果を他人のS3で読まれる恐れ

この記事のまとめ

  • AWS SDK for pandas(awswrangler)の3.16.1より前の版は、Athenaの結果を置く既定のS3バケットが、自社のものかを確かめていませんでした。他人が同じ名前のバケットを先に作ると、結果を読まれ、書き換えられるおそれがあります。
  • 修正版の3.16.1は2026年5月8日に出ています。GlueのPython Shell(Python 3.9)は2.15.1が組み込まれているため、版を指定していないジョブは対象です。
  • 結果の置き場所を明示するか、ワークグループで置き場所とバケットの持ち主を強制すれば、版にかかわらず防げます。
こんな方に#20代#30代#40代実務

社内で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のセキュリティ情報『CVE-2026-118029 - Unverified ownership of the default Athena query result location in AWS SDK for pandas』。Bulletin IDは2026-153-AWS、種類はImportant(requires attention)、公開は2026年10月28日8時30分(太平洋夏時間)。説明には、AWS SDK for pandas(awswrangler)のAthenaのモジュールで、既定のクエリ結果の置き場所の持ち主を確かめていなかったため、先に作られたS3バケットを通じて、遠隔の利用者がAthenaの結果を読み、呼び出し元に返る結果を書き換えられるおそれがあると書かれている
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のaws/aws-sdk-pandasの勧告GHSA-34f4-24c9-rgcm。パッケージはawswrangler(pip)、影響する版は3.16.1より前、修正版は3.16.1。深刻度はModerateで5.9(CVSS 3.1、攻撃の経路はネットワーク、難しさは高、権限は不要、利用者の操作が必要、機密性は高、完全性は低)。要約・影響・修正・回避策の節があり、回避策は、各アカウントとリージョンの既定のAthenaの結果バケットが自社のアカウントのものかを確かめ、結果の置き場所を明示するかワークグループの設定を強制すること
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文の閲覧リスク、利用者対応は不要)。こちらは利用者の対応は要りません。

データ分析の環境を棚卸しする手順

  1. リポジトリで「awswrangler」を検索し、requirements.txtやpyproject.toml、ロックファイルにある版を一覧にします。会社でフォークしたり、コードを写したりした場合は、その写しも対象です。
  2. Lambdaは、関数に付けたレイヤーを見ます。AWSが配るレイヤーは「AWSSDKPandas-Python」で始まる名前です。どの版かは、手引きの一覧でレイヤーのバージョンと照らします。新しい版のレイヤーは、公開から1週間ほど遅れて使えるようになります。
  3. Glueは、ジョブの詳細の「--additional-python-modules」を見ます。Python Shell(Python 3.9)でこの指定が無いジョブは、2.15.1で動いています。
  4. SageMakerのノートブックは、ライフサイクルの設定と、ノートブックの中のpip installを見ます。3.14.0以降はPyArrow 21以降を使うため、ビルドにCMake 3.25以降が要ります。CMakeの古いAL2-V3のノートブックでは、手引きはPyArrowを古い版に固定するか、AL2023-V1以降に移す方法を挙げています。
  5. EMRは、起動時のスクリプトで入れている版を見ます。
  6. Athenaを使うアカウントとリージョンごとに、「aws-athena-query-results-アカウントID-リージョン」のバケットがあるか、誰のものかを確かめます。AWS CLIのhead-bucketに--expected-bucket-ownerで自社のアカウントIDを渡すと、持ち主が違うときは403で失敗します。

版を上げるまでの間は、コードで結果の置き場所を明示するか、ワークグループの設定で置き場所と「バケットの持ち主」を決め、「Override client-side settings」を有効にします。AWSは、この設定が、好きなバケットに結果が出ることを前提にした自動の処理を壊すことがあるとして、利用者に先に知らせるよう勧めています。結果をS3に置かない「Athena managed」に切り替える方法もあります。

データ分析の環境は、開発の部署や事業部が自分で作り、情シスの台帳に載っていないことがよくあります。版を上げる作業は持ち主のチームに任せるとしても、どこにあるかの一覧づくりは、情シスから声をかけたほうが早く進むでしょう。

出典・参考

編集部が確認:。確認した監修者は、この下に載せています。

執筆

情シスのミカタ編集部AIにより執筆

書いた AI: AI記者(解説)

法令・官公庁の発表・企業の公式発表などの一次情報を調べて、情シス向けの解説・比較・テンプレの記事を書きます。数字と日付は出典と照らして確かめ、記事の最後に出典を載せています。使っているAI: Anthropic Claude。

監修

佐々木 航株式会社Game

代表取締役。工学部出身で、21歳で起業してからシステム会社の経営一筋で8期目。アプリの受託開発から始め、いまはAIを使ったシステムソリューションを手がけています。150社以上の企業とのプロジェクトで培った開発と情報システムの現場の経験と声を形にし、激動の時代を乗り越えたいと考えています。

メモ: 掲載時に自動で(しばらくの間)

記事は AI が一次情報を調べて書き、機械の検査を通してから公開しています。人が見ているもの・見ていないものはAI の使い方に書いています。まちがいに気づいたら訂正・ご指摘からお知らせください。直したら、記事の最後に何を直したかを書きます。

役に立ったら、いいねと共有をお願いします