Уязвимости обнаружены в сетевых библиотеках языков Rust и Go

Выявлены уязвимости в библиотеках языков программирования Rust и Go, которые позволяют организовать атаки с подделкой серверных запросов для доступа к ресурсам сервера или внутренней сети организации. Видеозапись с докладом исследователей опубликована 5 августа на YuoTube-канале конференции DEF CON 29.
Уязвимости выявлены в функциях, которые считывают значения сетевых адресов из текста.
В стандартной записи сетевых адресов можно использовать не только десятичные, но и восьмеричные числа. Восьмеричные числа предваряются в записи цифрой «0». Например, запись «0177» должна восприниматься как восьмеричное число, равное в десятичной системе исчисления 127.
В библиотечных функциях ведущие нули в числах адресов обрабатывается неправильно, в результате чего получаются неверные сетевые адреса. Данная ошибка позволяет обойти проверки допустимых адресов в программах и осуществить атаку с обращением к закрытому ресурсу на сервере или в подсети организации.