Критическая уязвимость в Rust приводит к инъекциям команд в Windows - «Новости» » Интернет технологии
sitename
Как заработать денег, не выходя из дома, мы вам поможем с этим разобраться » Новости » Критическая уязвимость в Rust приводит к инъекциям команд в Windows - «Новости»

Уязвимость, получившая название BatBadBut и идентификатор CVE-2024-24576 (максимальные 10 баллов по шкале CVSS), затрагивает стандартные библиотеки ряда языков программирования, включая Rust. Из-за этого Windows-системы оказываются уязвимы перед атаками на внедрение команд аргументов.


10 баллов по шкале CVSS и статус критической уязвимости означают, что эту проблему могут удаленно использовать неавторизованные злоумышленники, причем атаки будут весьма просты и не потребуют никакого взаимодействия с пользователем.


«Группе Rust Security Response WG стало известно, что стандартная библиотека Rust неправильно экранирует аргументы при вызове batch-файлов (с расширениями bat и cmd) в Windows с помощью Command API, — говорится официальном заявлении разработчиков. — Злоумышленник, способный контролировать аргументы, передаваемые новому порожденному процессу, может выполнять произвольные шелл-команды, обходя экранирование. Эта уязвимость считается критичной, если вы вызываете batch-файлы в Windows с использованием недоверенных аргументов. Ни одна другая платформа не затронута».


Сообщается, что проблеме подвержены все версии Rust, вышедшие ранее 1.77.2, если код программы или одна из ее зависимостей вызывают и выполняют batch-файлы с недоверенными аргументами.


Отмечается, что команда Rust столкнулась с проблемами при работе с cmd.exe, поскольку не смогла найти решение, которое бы корректно экранировало аргументы во всех случаях. В результате пришлось повысить надежность экранирования и модифицировать Command API. Если Command API не может безопасно экранировать аргумент при порождении процесса, он возвращает ошибку InvalidInput.


«Если вы сами реализуете экранирование или обрабатываете только доверенные входные данные, в Windows вы можете использовать метод CommandExt::raw_arg, чтобы обойти логику экранирования стандартной библиотеки», — добавляют в Rust Security Response WG.


Исходно эту проблему обнаружил специалист компании Flatt Security, известный под ником Ryotak. Именно он дал уязвимости имя BatBadBut и объяснил, что уязвимость возникает, когда «язык программирования оборачивает функцию CreateProcess [в Windows], добавляя механизм экранирования».


Исследователь пишет, что дефект также затрагивает и другие языки программирования, причем пока не все разработчики успели подготовить исправления:



  • Erlang (обновлена документация);

  • Go (обновлена документация);

  • Haskell (патч доступен);

  • Java (патча не будет);

  • js (патч выйдет позже);

  • PHP (патч выйдет позже);

  • Python (обновлена документация);

  • Ruby (обновлена документация).


«Чтобы предотвратить неожиданное выполнение batch-файлов, следует переместить файлы в каталог, который не включен в переменную окружения PATH, — рекомендует Ryotak. — В таком случае batch-файлы не будут выполняться, пока не будет указан полный путь, так что неожиданное выполнение удастся предотвратить».


Уязвимость, получившая название BatBadBut и идентификатор CVE-2024-24576 (максимальные 10 баллов по шкале CVSS), затрагивает стандартные библиотеки ряда языков программирования, включая Rust. Из-за этого Windows-системы оказываются уязвимы перед атаками на внедрение команд аргументов. 10 баллов по шкале CVSS и статус критической уязвимости означают, что эту проблему могут удаленно использовать неавторизованные злоумышленники, причем атаки будут весьма просты и не потребуют никакого взаимодействия с пользователем. «Группе Rust Security Response WG стало известно, что стандартная библиотека Rust неправильно экранирует аргументы при вызове batch-файлов (с расширениями bat и cmd) в Windows с помощью Command API, — говорится официальном заявлении разработчиков. — Злоумышленник, способный контролировать аргументы, передаваемые новому порожденному процессу, может выполнять произвольные шелл-команды, обходя экранирование. Эта уязвимость считается критичной, если вы вызываете batch-файлы в Windows с использованием недоверенных аргументов. Ни одна другая платформа не затронута». Сообщается, что проблеме подвержены все версии Rust, вышедшие ранее 1.77.2, если код программы или одна из ее зависимостей вызывают и выполняют batch-файлы с недоверенными аргументами. Отмечается, что команда Rust столкнулась с проблемами при работе с cmd.exe, поскольку не смогла найти решение, которое бы корректно экранировало аргументы во всех случаях. В результате пришлось повысить надежность экранирования и модифицировать Command API. Если Command API не может безопасно экранировать аргумент при порождении процесса, он возвращает ошибку InvalidInput. «Если вы сами реализуете экранирование или обрабатываете только доверенные входные данные, в Windows вы можете использовать метод CommandExt::raw_arg, чтобы обойти логику экранирования стандартной библиотеки», — добавляют в Rust Security Response WG. Исходно эту проблему обнаружил специалист компании Flatt Security, известный под ником Ryotak. Именно он дал уязвимости имя BatBadBut и объяснил, что уязвимость возникает, когда «язык программирования оборачивает функцию CreateProcess _
CSS

Смотрите также

А что там на главной? )))



Комментарии )))



Комментарии для сайта Cackle
Войти через:
Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика