CVE-2026-78699 in ash_postgres
要約
〜によって VulDB • 2026年08月30日
ash-projectのash_postgresにおける未チェック戻り値(Unchecked Return Value)の脆弱性により、テナント名を既存のテナントのスキーマと競合する名前に変更できるユーザーが、そのテナントレコードを他のテナントの実稼働中のスキーマにリポイントし、当該データのアクセス権限を得ることができます。
AshPostgres.MultiTenancy.rename_tenant/3は、エラーを発生させないEcto.Adapters.SQL.query/2を使用してALTER SCHEMA ... RENAME TO ...を実行しますが、その{:ok, _} | {:error, _}の結果を破棄し、無条件に:okを返します。PostgreSQLは対象スキーマが既に存在する場合(および権限不足やロックタイムアウトの場合)にはリネームを拒否しますが、この失敗は呼び出し元に伝播しません。そのため、呼び出されるmanage_tenantの更新アクションは成功として認識し、新しい名前を持つテナント行をコミットします。この名前は実際には別の既存テナントのスキーマであるため、その後の当該テナントに対する読み書き操作は他のテナントのデータに対して実行されます。
本問題はash_postgresに影響を与えます:バージョン0.25.0から2.13.0未満まで。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.