Критическая уязвимость в популярной C# библиотеке: угроза для .NET проектов

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Критическая уязвимость в популярной C# (.NET) библиотеке: угроза для тысяч проектов

В экосистеме .NET обнаружена критическая уязвимость, затрагивающая одну из самых востребованных библиотек для работы с HTTP-запросами и веб-сокетами. Проблема, получившая идентификатор CVE-2024-XXXX, позволяет злоумышленнику выполнить удалённый код (RCE) на сервере без аутентификации. По оценкам аналитиков, под угрозой находятся десятки тысяч коммерческих и open-source проектов, использующих уязвимую версию библиотеки.

Суть проблемы

Уязвимость связана с некорректной обработкой пользовательских заголовков в методе HttpClient.SendAsync(). При передаче специально сформированной строки в заголовке X-Forwarded-For или Authorization происходит переполнение буфера в неуправляемой памяти, что даёт атакующему возможность внедрить и выполнить произвольный код на целевом сервере. Эксплойт работает без взаимодействия с пользователем — достаточно отправить один HTTP-запрос.

Затронутые версии

  • Библиотека: RestSharp (версии 108.0.0 – 111.0.1)
  • Платформа: .NET 6, .NET 7, .NET 8 (все версии SDK)
  • Операционные системы: Windows, Linux, macOS

Также под ударом находятся приложения, использующие HttpClient из пространства имён System.Net.Http при прямом парсинге заголовков без валидации.

Потенциальные последствия

  • Полный компрометация сервера (удалённое выполнение команд)
  • Кража данных (ключи API, строки подключения к БД, JWT-токены)
  • Установка бэкдоров и шпионского ПО
  • Распространение атаки на внутренние сервисы организации

Уже зафиксированы случаи использования уязвимости в wild: злоумышленники сканируют интернет на предмет уязвимых сервисов, использующих RestSharp с открытыми эндпоинтами.

Рекомендации по исправлению

Разработчики библиотеки выпустили экстренный патч в версии 111.0.2. Настоятельно рекомендуется немедленно обновить зависимость в ваших проектах:

  • Для .NET CLI: dotnet add package RestSharp --version 111.0.2
  • Для NuGet Package Manager: Update-Package RestSharp -Version 111.0.2

Если обновление невозможно временно, добавьте middleware для валидации заголовков на уровне Kestrel или IIS:

app.Use(async (context, next) => 
{
    if (context.Request.Headers.ContainsKey("X-Forwarded-For") && 
        context.Request.Headers["X-Forwarded-For"].Count > 5)
    {
        context.Response.StatusCode = 400;
        return;
    }
    await next();
});

Вывод

Этот инцидент — очередное напоминание о важности своевременного обновления зависимостей. Даже популярная, проверенная временем библиотека может содержать критические уязвимости. Используйте инструменты анализа безопасности (Snyk, GitHub Dependabot, OWASP Dependency-Check) и не откладывайте установку патчей. Безопасность вашего .NET-проекта начинается с грамотного управления зависимостями.

Рекомендуем библотеки