CVE-2026-75513
KrytyczneCVSS 9.1Streszczenie
Marten od wersji 7.0.0 do 9.13.0 ma podatność polegającą na interpolacji sterowanych przez atakującego ciągów znaków do literałów SQL w zapytaniach LINQ i zarządzaniu tenantami bez odpowiedniego escapowania lub parametryzacji. Potwierdzony wektor to klucz indeksatora słownika używany w filtrach Where. Może to umożliwić ominięcie filtrów, autoryzacji multi-tenant oraz ślepe wyodrębnienie danych, a w niektórych konfiguracjach także modyfikację danych.
Ocena ryzyka
Ryzyko naruszenia integralności danych i autoryzacji, w tym ominięcie izolacji tenantów i nieautoryzowany dostęp do danych. Atakujący może również modyfikować dane, jeśli serwer pozwala na instrukcje rozdzielone średnikami.
Rekomendacja
Zaktualizuj Marten do wersji 9.13.0, która naprawia tę podatność. Przejrzyj kod pod kątem użycia słowników w filtrach i rozważ użycie parametryzowanych zapytań.
Inne podatności w Marten
Oryginalny opis (angielski, źródło NVD)
Marten is a .NET Transactional Document DB and Event Store on PostgreSQL. From version 7.0.0 until 9.13.0, several Marten LINQ and tenant-management paths interpolate runtime, potentially attacker-controlled strings into single-quoted SQL literals without escaping or parameterization. The primary confirmed vector is a dictionary indexer key used by Where filters in src/Marten/Linq/Members/Dictionaries/DictionaryItemMember.cs. Additional affected sinks include SelectParser.cs, DatabaseScopedTenantPartitions.cs, and DeleteAllForTenant.cs reached through IEventStore.DeleteProjectionProgressAsync, while DictionaryContainsKeyFilter.cs (Newtonsoft serializer only; System.Text.Json is not affected) handles ContainsKey calls. Events/Daemon/Internals/EventLoader.cs contains a related per-tenant partition-pruning literal that the advisory identifies as a defense-in-depth sink. A crafted single quote can escape the generated literal, enabling filter or multi-tenant authorization bypass and blind data exfiltration, and deployments that permit semicolon-batched Npgsql statements may also allow data modification. This issue is fixed in version 9.13.0.

