Сегодня, 1 ноября, исследователи из Кембриджского университета в Великобритании опубликовали
работу, в которой описали уязвимость в большинстве современных компиляторов. Правильнее было бы назвать разработку авторов атакой: ее суть заключается в том, что компилятор не обрабатывает специальные Unicode-идентификаторы, сообщающие, как именно ориентировать текст — для письма слева направо или справа налево. При отображении исходного кода эти идентификаторы обрабатываются. Вот показательный пример:
Здесь перед закрытием комментария вставляется символ RLI (U+2067), который требует ориентировать последующие символы с ориентацией справа налево. В результате для того, кто будет просматривать исходный код, команда return окажется внутри комментария, хотя на самом деле она находится за его пределами и будет выполнена. То есть появляется возможность «протащить» потенциально уязвимый или вовсе вредоносный код, который не будет замечен при ручной проверке.
Читать дальше →