CVE-2026-115627
ŚrednieCVSS 6.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 16 - wyżej niż 16% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Może to skutkować ujawnieniem rekordów docelowych nienależących do tenanta wywołującego, naruszając izolację danych i bezpieczeństwo informacji.
Rekomendacja
Zaktualizuj ash_postgres do wersji 2.15.2 lub nowszej, aby naprawić podatność.
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-78699Wysokie
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.
Oryginalny opis (angielski, źródło NVD)
Incorrect Authorization vulnerability in ash-project ash_postgres allows a user to load destination records linked to a source record only through another tenant's join rows. When a many_to_many relationship, or a through relationship, is loaded with a lateral join (for example with a per-record limit or sort), AshPostgres.DataLayer builds the query for the join resource, and for each resource along a through path, in lateral_join_query/3 and through_step_queries/4 without running that resource's read action, which is where attribute multitenancy is applied. When those resources use strategy :attribute multitenancy, rows belonging to other tenants were joined, so the load returned destination records that the caller's tenant is not related to. This issue affects ash_postgres: from 0.38.0 before 2.15.2.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

