CVE-2026-78699
WysokieCVSS 7.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 2 - wyżej niż 2% wszystkich znanych CVE
Streszczenie
Podatność w ash-project ash_postgres pozwala użytkownikowi, który może zmienić nazwę dzierżawy (tenant) na nazwę kolidującą ze schematem istniejącej dzierżawy, na przekierowanie swojego rekordu dzierżawy na żywy schemat innej dzierżawy i uzyskanie dostępu do jej danych. Funkcja rename_tenant/3 ignoruje wynik zapytania SQL i zawsze zwraca :ok, co prowadzi do zapisania nowej nazwy i późniejszego dostępu do cudzych danych. Problem dotyczy ash_postgres od 0.25.0 przed 2.13.0.
Ocena ryzyka
Ryzyko nieautoryzowanego dostępu do danych innych dzierżawców w aplikacjach korzystających z ash_postgres, co może prowadzić do wycieku poufnych informacji.
Rekomendacja
Zaktualizuj ash_postgres do wersji 2.13.0 lub nowszej, która zawiera poprawkę.
Inne podatności w ash_postgres
Zobacz wszystkie- CVE-2026-115635Średnie
Podatność nieprawidłowej autoryzacji w bibliotece ash_postgres pozwala użytkownikowi odczytać rekord innego tenanta poprzez pominięty upsert. Gdy operacja tworzenia działa jako upsert z return_skipped_upsert?: true i zostanie pominięta, warstwa danych odczytuje istniejący wiersz po tożsamości upsert bez zastosowania multitenancy atrybutowej, co może ujawnić pola rekordu innego tenanta.
- CVE-2026-115627Średnie
Podatność nieprawidłowej autoryzacji w ash_postgres pozwala użytkownikowi załadować rekordy docelowe powiązane z rekordem źródłowym tylko poprzez wiersze łączące innego tenanta. Przy ładowaniu relacji many_to_many lub through z lateral join, zapytanie dla zasobu łączącego jest budowane bez uruchamiania akcji odczytu, która stosuje multitenancy atrybutową, co prowadzi do dołączenia wierszy innych tenantów.
Oryginalny opis (angielski, źródło NVD)
Unchecked Return Value vulnerability in ash-project ash_postgres allows a user who can drive a tenant rename to a name that collides with an existing tenant's schema to have their tenant record repointed at that other tenant's live schema, gaining access to its data. AshPostgres.MultiTenancy.rename_tenant/3 issues the ALTER SCHEMA ... RENAME TO ... with the non-raising Ecto.Adapters.SQL.query/2, discards its {:ok, _} | {:error, _} result, and unconditionally returns :ok. PostgreSQL rejects the rename when the target schema already exists (and on insufficient privilege or lock timeout), but that failure never reaches the caller. The calling manage_tenant update action therefore sees success and commits the tenant row with the new name, which is the schema of a different existing tenant, so subsequent reads and writes for that tenant run against the other tenant's data. This issue affects ash_postgres: from 0.25.0 before 2.13.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

