AI 安全與開發工具
Datasette、公開・非公開テーブルの権限バイパスを修正—3つの最先端モデルが包括的なセキュリティ監査に参加
Datasette 1.0a39と0.65.4では、テーブル名の大文字・小文字、全文検索インデックス、リレーション検索、キャッシュなどを介した複数の非公開データ漏えい経路が修正された。脆弱性の発見には外部研究者と3つの最先端モデルが協力したが、メンテナーは一部のテストの公開を意図的に延期しており、運用者は引き続きアップグレードを優先すべきだ。

Datasetteは9月11日、安定版の0.65.4と1.0 alphaブランチの1.0a39を同時にリリースした。主な対応内容は、「同一の公開サービスに、公開テーブルと認証で保護された非公開テーブルが混在する」場合に、権限チェックがすべてのデータアクセス経路を網羅していなかった問題だ。公式は、インターネットに公開され、プラグインで非公開データを保護しているすべてのインスタンスに対して、直ちにアップグレードするよう推奨している。Datasette Cloudにはすでに修正が適用済みだ。[公式発表](https://datasette.io/blog/2026/september-security-releases/)に記載されたリスクは単一のエンドポイントに限らず、さまざまなSQLiteセマンティクスにおける権限モデルの不整合に関係している。
新版では、テーブルとviewに対する認可判定が、オブジェクト名の大文字・小文字を区別しないSQLiteの挙動に従うようになった。全文検索インデックスへのアクセス時には元テーブルの権限を確認し、`?_through=`フィルターの利用にも中間テーブルへのアクセス権が必要となる。外部キーの候補提示、逆方向リレーション、schemaの表示、行エンドポイント、`sqlite_stat1`から`sqlite_stat4`までの統計テーブルも、あらためて`view-table`チェックの対象に含められた。その他の修正には、SQL識別子とHTML escapingの厳格化、認可されていないデータを参照する`CREATE VIEW`の制限、共有キャッシュが別のデータ漏えい経路になるのを防ぐための、パーソナライズされたレスポンスへの`private, no-store`設定が含まれる。[独立した技術解説](https://www.pyramidledger.com/blog/datasette-1-0a39-0-65-4-a-case-study-in-multi-tenant-permission-bugs)も、一連の問題はコアのクエリ機能自体ではなく、認可境界における複合的な挙動に集中していると指摘している。
発見プロセスも注目に値する。Sevban Dönmezが最初にAI支援による報告を提出し、その後、メンテナーのSimon WillisonとAlex GarciaがClaude Fable 5.1、GPT-5.6 Sol、GPT-6 Astraを使って、同種の欠陥を繰り返し探索した。多くの問題では、1人が失敗するテストを作成し、別の1人が修正を実装したうえで、異なるモデルがクロスチェックを行った。これは、モデルが独力でセキュリティ監査を完遂した証拠ではなく、人間が検証とマージを担うマルチモデル・ワークフローだ。一部の再現テストは、運用者が先に修正を入手できるよう、現在も非公開のままとされている。このため、現時点では公開資料だけで各攻撃チェーンを完全に評価することはできない。エンジニアリングチームはアップグレードに加えて、`execute-sql`、認証プラグイン、リバースプロキシのキャッシュルール、公開・非公開データが混在するデータベースの統合テストも確認すべきだ。