Безопасности всего софта угрожает незримая уязвимость Trojan Source

Безопасности всего софта угрожает незримая уязвимость Trojan Source

Безопасности всего софта угрожает незримая уязвимость Trojan Source

Методика, разработанная в Кембриджском университете, позволяет привнести эксплуатируемую уязвимость в любую программу таким образом, что ее не заметит ни один аудитор. Атака Trojan Source, проводимая на цепочку поставок, основана на использовании слабостей Unicode; защита возможна на уровне компилятора.

Актуальность Trojan Source подтверждена для софта, написанного на C, C++, C#, Go, Java, JavaScript, Python и Rust. Университетские исследователи не исключают, что их атака будет работать также против других современных языков программирования.

Согласно описанию, проблема Unicode, идентифицируемая как CVE-2021-42574, создает условия для манипуляции кодированием символов в исходных файлах. В частности, оказалось, что порядок расположения лексем в исходном коде можно изменить с помощью управляющих символов BiDi (используются для отображения текстов с разным направлением письма). При этом компилятор и интерпретатор заметят смену логики, а аналитик — нет.

Управляющие символы Unicode обычно встроены в комменты и строки кода, и с их помощью можно, например, выдать комментарий за код. Такой обман, по словам исследователей, позволяет незаметно привнести в исходник уязвимость и даже запустить атаку на цепочку поставок. Злоумышленники ранее использовали этот трюк для подмены расширений вредоносных файлов, рассылаемых по email.

Схожую массовую атаку на софт можно провести, используя другую слабость Unicode — возможность подмены символов омоглифами (CVE-2021-42694). Чтобы успешно внедрить вредоносный код через зависимость, достаточно лишь слегка видоизменить имя вызываемой функции в ссылке на связанный объект.

Результаты исследования раскрыты (PDF) после снятия трехмесячного эмбарго, позволившего принять меры защиты и подготовить апдейты для компиляторов, интерпретаторов, редакторов кода и репозиториев. Так, участники проекта Rust уже опубликовали свои рекомендации по обновлению компиляторов и очистке базовых кодов от небезопасных зависимостей.

Опасная уязвимость в GNU Wget2 позволяет удалённо перезаписывать файлы

В популярном консольном загрузчике GNU Wget2 обнаружили серьёзную уязвимость, которая позволяет злоумышленникам перезаписывать файлы на компьютере жертвы — без её ведома и согласия. Проблема получила идентификатор CVE-2025-69194 и высокую степень риска — 8,8 балла по CVSS, то есть игнорировать её точно не стоит.

Брешь связана с обработкой Metalink-файлов — это специальные документы, в которых описано сразу несколько источников для скачивания одного и того же файла (зеркала, P2P и так далее).

По идее, Wget2 должен строго контролировать, куда именно сохраняются загружаемые данные. Но, как выяснили исследователи из Apache, на практике с этим есть проблемы.

Из-за ошибки в проверке путей злоумышленник может подготовить вредоносный Metalink-файл с «хитрыми» именами вроде ../. Это классическая уязвимость path traversal: она позволяет выйти за пределы рабочего каталога и записать файл практически в любое место в системе. Достаточно, чтобы пользователь просто обработал такой металинк — и дальше всё происходит без его участия.

Последствия могут быть весьма неприятными. В худшем случае атакующий сможет:

  • перезаписать важные системные или пользовательские файлы и вызвать потерю данных;
  • подменить конфигурации или скрипты и добиться выполнения вредоносного кода;
  • изменить настройки безопасности или файлы аутентификации, создав себе бэкдор.

Да, атака требует взаимодействия с вредоносным файлом, но с учётом последствий риск выглядит более чем реальным — особенно для тех, кто регулярно использует Wget2 в автоматизированных сценариях или CI/CD-пайплайнах.

Если вы работаете с Wget2 и Metalink, сейчас самое время внимательно отнестись к источникам загрузки и следить за выходом обновлений. В этой истории один неосторожный файл может стоить слишком дорого.

RSS: Новости на портале Anti-Malware.ru