Dulwich - это чистая Python-реалформат файлов и протоколов Git. Начиная с версии 0.24.0 и до версии 1.2.5, dulwich.porcelain.format_patch(o…
Dulwich - это чистая Python-реалформат файлов и протоколов Git. Начиная с версии 0.24.0 и до версии 1.2.5, dulwich.porcelain.format_patch(outdir=...) получает каждое имя файла патча из строки темы. До этого исправления get_summary заменял только пробелы тире - сепараторы пути (/, \), компоненты родительского-направления (..) и другие символы, враждебные по именам файлов (например, :) сохранялись дословно и передавались прямо в os.path.join(outdir, f"{i:04d}-{scommary}.patch"). Таким образом, субъект вредоносного обязательства может направлять сгенерированный файл патча за пределы запрашиваемой ауттиры. Это зафиксировано в Dulwich 1.2.5. Пользователи должны обновиться до 1.2.5 или более поздней версии. dulwich.patch.get_summary теперь отражает формат git_santized_subject: удерживаются только `[A-Za-z0-9._]` прогоны, прогоны других символов рушатся до одного -, последовательно . коллапс до одного ., отставание ./- снято, и результат ограничен по длине. Это делает вернутую строку безопасной для встраивания в качестве компонента имени файла, поэтому format_patch больше не может быть выключен извне через предмет совершения. До обновления звонящие, которые проходят ненадежные обязательства по porcelain.format_patch, могут использовать stdout=True и записать патч в пункт назначения, который они контролирует, а не позволять format_patch выбирать имя файла; проверять выбранный путь перед открытием - например, сравните os.path.realpath(returned_path) с os.path.realpath(outdir) и отклонить любой патч, который не является решенным.line содержит /, \, .. или другие символы, которые не безопасны в целевой файловой системе.
Продукт использует внешние входные данные для формирования пути, предназначенного для идентификации файла или каталога внутри ограниченного родительского каталога, однако не нейтрализует должным образом специальные элементы в пути, которые могут вызвать его разрешение за пределами ограниченного каталога.
https://cwe.mitre.org/data/definitions/22.html →Открыть в коллекции CWE →Данная атака использует кодирование 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 →| Продукт | Вендор | Статус |
|---|---|---|
| Отслеживается | ||
| dulwich | Отслеживается |