В файле IoTSharp BlobStorageController.cs отсутствует атрибут [Authorize], применяемый ко всем остальным контроллерам в приложении (DevicesController, CustomersController, TenantsController и т. д.), а в Startup.cs не настроена глобальная авторизация FallbackPolicy, в результате чего его конечные точки загрузки/загрузки/списка/изменения/удаления доступны не прошедшим проверку подлинности удаленным злоумышленникам. Параметры пути/имени файла, передаваемые этим конечным точкам (например, `_blob.WriteFileAsync($"{path}/{formFile.FileName}", ...)`), используются без очистки, обеспечивая обход пути, который позволяет записывать, читать, изменять и удалять произвольные файлы за пределами предполагаемого каталога хранения BLOB-объектов, включая доступные через Интернет пути, которые можно использовать для удаленного выполнения кода через загрузку веб-оболочки.
Показать оригинальное описание (EN)
IoTSharp BlobStorageController.cs lacks the [Authorize] attribute applied to every other controller in the application (DevicesController, CustomersController, TenantsController, etc.), and no global authorization FallbackPolicy is configured in Startup.cs, leaving its Upload/Download/List/Modify/Delete endpoints reachable by unauthenticated remote attackers.
Характеристики атаки
Последствия
Строка CVSS v3.1