PyMdown Extensions — это набор расширений для проекта уценки Python-Markdown. В версиях до 10.21.3 включительно расширение b64 уязвимо для обхода пути, который раскрывает произвольные файлы: оно встраивает изображения, на которые ссылается <img src="...">, присоединяя src к настроенному base_path с помощью os.path.normpath и открывая результат напрямую, без проверки того, что разрешенный путь остается внутри base_path. В результате src, содержащий последовательности ../ или абсолютный путь, считывает файл за пределами base_path, если он имеет разрешенное расширение изображения (.png, .jpg, .jpeg, .gif, .svg), а затем содержимое файла кодируется в формате Base64 в визуализируемый вывод, раскрывая его.
Таким образом, приложение, которое отображает ненадежный Markdown с включенным pymdownx.b64, может передать содержимое файлов расширения изображений, читаемых процессом, тому, кто контролирует Markdown или просматривает выходные данные, причем целевое чтение файла ограничено проверкой расширения. Эта проблема исправлена в версии 11.0.
Показать оригинальное описание (EN)
PyMdown Extensions is a set of extensions for the Python-Markdown markdown project. In versions up to and including 10.21.3, the b64 extension is vulnerable to a path traversal that discloses arbitrary files: it inlines images referenced by <img src="..."> by joining the src onto the configured base_path with os.path.normpath and opening the result directly, without verifying that the resolved path stays inside base_path. As a result, an src containing ../ sequences or an absolute path reads a file outside base_path as long as it has an allowed image extension (.png, .jpg, .jpeg, .gif, .svg), and the file's contents are then base64-encoded into the rendered output, disclosing them. An application that renders untrusted Markdown with pymdownx.b64 enabled can therefore leak the contents of image-extension files readable by the process to whoever controls the Markdown or views the output, a targeted file-read bounded by the extension check. This issue has been fixed in version 11.0.
Характеристики атаки
Последствия
Строка CVSS v3.1