Проблема обнаружена в Python 3.11 до 3.11.4. Если путь, содержащий байты '\0', передается в os.path.normpath(), путь будет неожиданно усече…
Проблема обнаружена в Python 3.11 до 3.11.4. Если путь, содержащий байты '\0', передается в os.path.normpath(), путь будет неожиданно усечен при первом байте '\0'. Существуют вероятные случаи, когда приложение отклонило бы имя файла по соображениям безопасности в Python 3.10.x или более ранних версиях, но это имя файла больше не отклоняется в Python 3.11.x.
Продукт получает входные данные от вышестоящего компонента, однако не нейтрализует или некорректно нейтрализует символы NUL или нулевые байты при передаче нижестоящему компоненту.
https://cwe.mitre.org/data/definitions/158.html →Открыть в коллекции CWE →Продукт использует внешние входные данные для формирования пути, предназначенного для идентификации файла или каталога внутри ограниченного родительского каталога, однако не нейтрализует должным образом специальные элементы в пути, которые могут вызвать его разрешение за пределами ограниченного каталога.
https://cwe.mitre.org/data/definitions/22.html →Открыть в коллекции CWE →Продукт осуществляет поиск критических ресурсов с использованием пути поиска, заданного извне, который может указывать на ресурсы, не находящиеся под непосредственным контролем продукта.
https://cwe.mitre.org/data/definitions/426.html →Открыть в коллекции CWE →В данном шаблоне атаки злоумышленник помещает вредоносный ресурс в стандартный путь программы таким образом, что при выполнении известной команды система вместо неё выполняет вредоносный компонент. Злоумышленник может либо изменить путь поиска, используемый программой, — например, переменную PATH или classpath, — либо манипулировать ресурсами в пути, указав их на свои вредоносные компоненты. J2EE-приложения и другие компонентные приложения, собираемые из множества двоичных файлов, могут иметь очень длинный список зависимостей для выполнения. Если одна из этих библиотек и/или ссылок подконтрольна злоумышленнику, то элементы управления приложением могут быть обойдены злоумышленником.
https://capec.mitre.org/data/definitions/38.html →Открыть в коллекции CAPEC →Злоумышленник внедряет один или несколько нулевых байтов во входные данные целевого программного обеспечения. Данная атака использует применение байта с нулевым значением в качестве терминатора строки во многих средах. Цель состоит в том, чтобы отдельные компоненты целевого программного обеспечения прекратили обработку входных данных при обнаружении нулевого байта (нулевых байтов).
https://capec.mitre.org/data/definitions/52.html →Открыть в коллекции CAPEC →Если строка проходит через фильтр какого-либо вида, терминальный NULL может оказаться недопустимым. Использование альтернативного представления NULL позволяет злоумышленнику внедрить NULL в середину строки, при этом добавив в конце корректные данные для обхода фильтра. Одним из примеров является фильтр, проверяющий наличие завершающей косой черты. Если внедрение строки возможно, но косая черта обязательна, в середине строки может быть использовано альтернативное кодирование NULL.
https://capec.mitre.org/data/definitions/53.html →Открыть в коллекции CAPEC →Данная атака использует кодирование URL в сочетании с кодированием символов слеша. Злоумышленник может воспользоваться множеством способов кодирования URL и злоупотребить его интерпретацией. URL может содержать специальные символы, требующие особой синтаксической обработки для правильной интерпретации. Специальные символы представляются с помощью символа процента, за которым следуют две цифры, обозначающие код октета исходного символа (%HEX-КОД). Например, пробел в US-ASCII представляется как %20. Это часто называют экранированием или процентным кодированием. Поскольку сервер декодирует URL из запросов, он может ограничивать доступ к некоторым путям URL, проверяя и отфильтровывая полученные URL-запросы. Злоумышленник попытается сформировать URL с последовательностью специальных символов, которая после интерпретации сервером окажется эквивалентна запрещённому URL. Защититься от данной атаки непросто, поскольку URL может содержать другие форматы кодирования, такие как UTF-8, Unicode и т. д.
https://capec.mitre.org/data/definitions/64.html →Открыть в коллекции CAPEC →Злоумышленник манипулирует входными данными, которые целевое программное обеспечение передаёт в вызовы файловой системы операционной системы. Цель — получить доступ и, возможно, модифицировать области файловой системы, к которым целевое программное обеспечение не должно было предоставлять доступ.
https://capec.mitre.org/data/definitions/76.html →Открыть в коллекции CAPEC →Данная атака использует обратный слеш в альтернативных кодировках. Злоумышленник может использовать обратный слеш в качестве первого символа, вынуждая парсер считать следующий символ специальным. Это называется экранированием. Используя данный приём, злоумышленник пытается эксплуатировать альтернативные способы кодирования одного и того же символа, что создаёт проблемы для фильтров и открывает пути для атак.
https://capec.mitre.org/data/definitions/78.html →Открыть в коллекции CAPEC →Данная атака направлена на кодирование символов слеша. Злоумышленник пытается эксплуатировать распространённые проблемы фильтрации, связанные с использованием символов слеша, для получения доступа к ресурсам на целевом хосте. Системы на основе каталогов, такие как файловые системы и базы данных, как правило, используют символ слеша для обозначения перехода между каталогами или другими контейнерными компонентами. По неоднозначным историческим причинам ПК (и, как следствие, ОС Microsoft) используют обратный слеш, тогда как мир UNIX традиционно применяет прямой слеш. Шизофренический результат таков, что многие MS-системы обязаны понимать обе формы слеша. Это предоставляет злоумышленнику множество возможностей для обнаружения и использования распространённых проблем фильтрации. Цель данного шаблона — обнаружить серверное программное обеспечение, применяющее фильтры только к одному варианту, но не другому.
https://capec.mitre.org/data/definitions/79.html →Открыть в коллекции CAPEC →Злоумышленник использует методы манипуляции путями для эксплуатации недостаточной проверки входных данных цели и получения доступа к данным, которые должны быть недоступны. Такой подход хорошо работает, когда цель предоставляет пользователю имена файлов (например, для пользовательских файлов, содержимого веб-сайтов и т. п.) и использует эти имена для формирования путей в файловой системе. Вставляя в эти имена специальные последовательности, можно обойти проверки и получить доступ к файлам вне корня приложения. Наиболее типичная последовательность — использование относительных переходов «..». Например, если приложение хранит файлы пользователей в каталоге /usr/local/myapp/files/user/, а противник запросит файл с именем «../../../../etc/passwd», то итоговый путь может быть интерпретирован как /etc/passwd — системный файл, к которому противник не должен иметь доступа. Некоторые реализации фильтрации последовательностей «..» можно обойти с помощью альтернативных кодировок, URL-кодирования или использования различных разделителей каталогов. Цель атаки — получить несанкционированный доступ к конфиденциальным данным. В некоторых случаях может быть получена также возможность записи за пределы разрешённых каталогов.
https://capec.mitre.org/data/definitions/126.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| Отслеживается | ||
| python | Отслеживается | |
| python | Отслеживается | |
| python | Отслеживается | |
| python2.7 | Отслеживается | |
| python2.7 | Отслеживается | |
| python2.7 | Отслеживается | |
| python2.7 | Отслеживается | |
| python2.7 | Отслеживается | |
| python2.7 | Отслеживается | |
| python3.10 | Отслеживается | |
| python3.10 | Отслеживается | |
| python3.11 | Отслеживается | |
| python3.11 | Отслеживается | |
| python3.11 | Отслеживается | |
| python3.11 | Отслеживается | |
| python3.11 | Отслеживается | |
| python3.11 | Отслеживается | |
| python3.11 | Отслеживается | |
| python3.11 | Отслеживается |