Podatność SQL injection w komponencie FinanceChatLlamaPack biblioteki llama_index (wersje do v0.12.3) umożliwia atakującemu wstrzyknięcie dowolnych zapytań SQL do funkcji `run_sql_query`. Krytyczny charakter wynika z możliwości eskalacji do zdalnego wykonania kodu (RCE) poprzez funkcjonalność dużych obiektów PostgreSQL.
▸ Pokaż oryginał (EN)
A vulnerability in the FinanceChatLlamaPack of the run-llama/llama_index repository, versions up to v0.12.3, allows for SQL injection in the `run_sql_query` function of the `database_agent`. This vulnerability can be exploited by an attacker to inject arbitrary SQL queries, leading to remote code execution (RCE) through the use of PostgreSQL's large object functionality. The issue is fixed in version 0.3.0.
Funkcja `run_sql_query` w module `database_agent` komponentu FinanceChatLlamaPack nie waliduje ani nie parametryzuje danych wejściowych przekazywanych przez użytkownika, co pozwala na osadzenie w zapytaniu SQL dowolnego kodu. Atakujący może wykorzystać mechanizm dużych obiektów (large object functionality) dostępny w PostgreSQL do zapisania i wykonania złośliwego kodu po stronie serwera, uzyskując tym samym pełną kontrolę nad procesem. Atak nie wymaga uwierzytelnienia ani żadnej interakcji ze strony ofiary (wektor sieciowy, brak wymaganych uprawnień).
Atakujący może uzyskać pełną kontrolę nad bazą danych oraz — poprzez mechanizm RCE — wykonać dowolny kod na serwerze, co zagraża poufności, integralności i dostępności całego systemu.
Należy zaktualizować bibliotekę llama_index do wersji 0.3.0 lub nowszej, w której błąd został naprawiony. Patch dostępny w repozytorium GitHub projektu (commit 5d03c175476452db9b8abcdb7d5767dd7b310a75). Jako środek tymczasowy zaleca się ograniczenie dostępu do komponentu FinanceChatLlamaPack i wyłączenie możliwości przekazywania niezaufanych danych wejściowych do funkcji `run_sql_query`.
Biblioteka run-llama/llama_index, komponent FinanceChatLlamaPack, wersje do v0.12.3 włącznie.
Podatność zgłoszona za pośrednictwem platformy huntr.com (program bug bounty). Szczegóły techniczne dostępne pod adresem: https://huntr.com/bounties/44e8177f-200a-4ba3-a12c-8bc21e313a3f
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLlamaindex
APPLlamaindex< 0.3.0
Powiązane podatności
SQL injection w LlamaIndex — nieautoryzowany dostęp do danych przez integracje vector store
SQL Injection w DuckDBVectorStore umożliwiający RCE (LlamaIndex)
SQL Injection umożliwiający RCE w komponencie duckdb_retriever biblioteki LlamaIndex
Command injection w LlamaIndex — obejście safe_eval umożliwia RCE
SQL injection w LlamaIndex przez funkcję Text-to-SQL