Исследователи из Кембриджского университета заявили об уязвимости компиляторов большинства языков программирования, которая позволяет заражать исполнимый код вредоносными фрагментами через комментарии к исходному коду, сообщает в понедельник The Record.
Злоумышленники эксплуатируют т.н. двунаправленные управляющие Unicode-символы внутри комментариев исходного кода. Такие символы нужны, чтобы «объяснить» алгоритму, как отображать текст: слева направо или справа налево, что необходимо, например, при использовании в тексте на одном из европейских языков фраз на иврите или арабском языке. Оказалось, что с помощью двунаправленных управляющих Unicode-символов можно сделать так, чтобы часть комментария, который компилятор не должен принимать во внимание, была перенесена в исходный код и компилирована.
Большинство редакторов текста и компиляторов не включают протоколы, позволяющие обрабатывать управляющие символы или сигнализировать об их присутствии внутри комментариев в исходном коде. Нападение с использованием этой уязвимости может совершаться при компиляции программ, написанных на C, C++, C#, JavaScript, Java, Rust, Go и Python.
Злоумышленники получают возможность вставить управляющие символы внутри комментариев, редактор-человек эти символы не увидит. При компиляции текст из комментариев попадёт непосредственно в код, или же, напротив, предусмотренный программистом код будет перемещён в комментарии и не войдёт в исполнимый код.
Перед тем как опубликовать результаты исследования, сотрудники Кембриджского университета сообщили об обнаружении уязвимости производителям компиляторов, дав им 99 дней на выпуск исправлений.
Напомним, как показало другое исследование – от компании Atlas VPN — за первые шесть месяцев 2021 года больше всего уязвимостей обнаружено в продуктах компаний Google и Microsoft.
Фото (с) therecord.media













