Katalog CVE

CVE-2026-29080

Wysokie
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

Podatność SQL injection w metodzie `FilterEngine.create_sqla_query()` pozwala uwierzytelnionym użytkownikom Rucio na wykonywanie dowolnych zapytań SQL w bazie danych poprzez punkt końcowy wyszukiwania DID. W przypadku wdrożeń Oracle, klucze i wartości filtrów kontrolowane przez atakującego są interpolowane bezpośrednio do `sqlalchemy.text()`, co omija parametryzację.

Ocena ryzyka

Ta podatność może prowadzić do pełnego kompromitowania bazy danych, w tym wykradania tokenów uwierzytelniających, hashy haseł oraz wszystkich identyfikatorów zarządzanych danych. Organizacje powinny być świadome ryzyka związanego z nieautoryzowanym dostępem do wrażliwych informacji.

Rekomendacja

Zaleca się aktualizację do wersji Rucio 35.8.5, 38.5.5, 39.4.2 lub 40.1.1, aby usunąć tę podatność. Dodatkowo, należy wprowadzić odpowiednie zabezpieczenia, aby unikać interpolacji danych kontrolowanych przez użytkowników w zapytaniach SQL.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

A SQL injection vulnerability in `FilterEngine.create_sqla_query()` allows any authenticated Rucio user to execute arbitrary SQL against the backend database through the DID search endpoint (`GET /dids/<scope>/dids/search`). On Oracle deployments attacker-controlled filter keys and values are interpolated directly into `sqlalchemy.text()` via Python `.format()`, completely bypassing parameterization. This enables full database compromise including extraction of authentication tokens, password hashes, and all managed data identifiers. This affects versions 1.27.0 and later before 35.8.5, 38.5.5, 39.4.2, and 40.1.1. The vulnerability exists in `lib/rucio/core/did_meta_plugins/filter_engine.py` within the `create_sqla_query()` method. When the database dialect is Oracle, filter expressions for JSON metadata columns are constructed using `text()` with Python string formatting. Both `key` and `value` are attacker-controlled strings derived from HTTP query parameters. The `text()` function

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS