1c-syntax / bsl-language-server

Реализация Language Server Protocol для языка 1C (BSL)
https://1c-syntax.github.io/bsl-language-server
Other
299 stars 105 forks source link

Метод Выполнить на Клиенте, диагностируется как на Сервере. #3240

Open Jimmo910 opened 7 months ago

Jimmo910 commented 7 months ago

Диагностика

bsl-language-server:ExecuteExternalCodeInCommonModule

Версия

1.13.0

Описание ошибки диагностики

Выполнение произвольного кода в общем модуле на сервере является потенциальной уязвимостью

Пример кода

`Процедура ВыполнитьКоманду(Форма, Команда, Источник) Экспорт

ИменаФормИИхМетодов = ВсеМетодыНашихКоманд();
ИмяМетода = ИменаФормИИхМетодов.Получить(Форма.ИмяФормы);

Выполнить(ИмяМетода);

КонецПроцедуры `

Скриншоты

image

Дополнительная информация

В описание ошибки говорится про Сервер, а у меня Клиент.

asosnoviy commented 7 months ago

@theshadowco Что думаешь? На клиенте тоже уязвимость?

Jimmo910 commented 7 months ago

если везде уязвимость и нельзя использовать, то зачем оно нам дано....

asosnoviy commented 7 months ago

если везде уязвимость и нельзя использовать, то зачем оно нам дано....

Тут же оно расценивается как "потенциальная уязвимость". Отловили, оценили, пометили как "это не уязвимость, а архитектурное решение"

theshadowco commented 1 month ago

ExecuteExternalCodeInCommonModule

image

Сообщение не самое корректное, но ловит заведомо правильно - толстый клиент обычного приложения дает доступ к серверным ресурсам, следовательно - уязвимость потенциально присутствует