W frameworku Langroid przed wersją 0.65.3 niezaufani użytkownicy mogą bezpośrednio wywoływać narzędzia (tools) poprzez spreparowane surowe payloady JSON, omijając skonfigurowane ograniczenia dostępu. Stanowi to poważne zagrożenie dla aplikacji udostępniających interfejs czatu osobom zewnętrznym.
▸ Pokaż oryginał (EN)
Langroid is a framework for building large-language-model-powered applications. Prior to version 0.65.3, a Langroid application exposing a chat interface to untrusted users may allow direct tool invocation via raw JSON payloads, even when tools are registered with `use=False, handle=True`. Version 0.65.3 fixes the issue.
Podatność wynika z nieprawidłowej walidacji żądań wejściowych — narzędzia zarejestrowane z flagami `use=False, handle=True` mają być niedostępne dla użytkownika końcowego, jednak framework nie blokuje ich wywołania gdy żądanie jest przekazane jako surowy payload JSON. Atakujący posiadający dostęp do interfejsu czatu może ominąć tę kontrolę i bezpośrednio wywołać dowolne zarejestrowane narzędzie. Odpowiada to klasie błędów CWE-75 (Failure to Sanitize Special Elements into a Different Plane), gdzie dane wejściowe są traktowane jako instrukcje sterujące.
Atakujący może uzyskać nieautoryzowany dostęp do danych przetwarzanych przez aplikację oraz manipulować jej logiką poprzez wywołanie narzędzi, które miały być wyłączone dla użytkowników — co prowadzi do naruszenia poufności i integralności danych.
Należy zaktualizować Langroid do wersji 0.65.3 lub nowszej, która zawiera poprawkę eliminującą tę podatność
Langroid w wersjach przed 0.65.3 — dotyczy aplikacji udostępniających interfejs czatu niezaufanym użytkownikom z zarejestrowanymi narzędziami skonfigurowanymi jako `use=False, handle=True`
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N