CVE-2026-46338
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 17 - wyżej niż 17% wszystkich znanych CVE
Streszczenie
Podatność w PyMdown Extensions (wersje 10.0.1 do 10.21.3) pozwala na ominięcie ograniczenia ścieżki bazowej w funkcji SnippetPreprocessor.get_snippet_path(). Mechanizm sprawdzania prefiksu ciągu znaków umożliwia odczyt plików z katalogów sąsiednich, które współdzielą ten sam prefiks ścieżki bazowej, co stanowi regresję poprawki CVE-2023-32309.
Ocena ryzyka
Atakujący może wykorzystać tę lukę do odczytu wrażliwych plików spoza dozwolonego katalogu bazowego, co może prowadzić do ujawnienia poufnych danych lub konfiguracji aplikacji.
Rekomendacja
Należy niezwłocznie zaktualizować PyMdown Extensions do wersji 10.21.3 lub nowszej, która zawiera poprawną implementację ograniczenia ścieżki bazowej.
Inne podatności w PyMdown Extensions
Zobacz wszystkie- CVE-2026-67422Wysokie
pymdown-extensions do wersji 11.0 zawiera podatność na katastrofalne cofanie się wyrażeń regularnych w czterech procesorach inline (caret, tilde, betterem, magiclink). Pojedyncza, niezaufana linia Markdown o długości poniżej 50 bajtów może spowodować nieograniczone użycie CPU, co umożliwia zdalnemu atakującemu wywołanie odmowy usługi. Problem został naprawiony w wersji 11.0.1.
- CVE-2026-61632Średnie
PyMdown Extensions to zestaw rozszerzeń dla projektu Python-Markdown. W wersjach do 10.21.3 włącznie rozszerzenie b64 jest podatne na path traversal, które ujawnia dowolne pliki: wbudowuje obrazy wskazane przez <img src="...">, łącząc src z skonfigurowanym base_path za pomocą os.path.normpath i otwierając wynik bezpośrednio, bez weryfikacji, czy rozwiązana ścieżka pozostaje w base_path. W rezultacie src zawierające sekwencje ../ lub ścieżkę bezwzględną odczytuje plik poza base_path, o ile ma dozwolone rozszerzenie obrazu (.png, .jpg, .jpeg, .gif, .svg), a zawartość pliku jest następnie kodowana base64 i umieszczana w wyrenderowanym wyniku. Problem naprawiono w wersji 11.0.
Oryginalny opis (angielski, źródło NVD)
PyMdown Extensions is a set of extensions for the Python-Markdown markdown project. From 10.0.1 until 10.21.3, pymdownx.snippets uses a string-prefix containment check in SnippetPreprocessor.get_snippet_path() in pymdownx/snippets.py when `restrict_base_path: True`, allowing markdown snippet directives to read files from sibling paths that share the same base_path prefix, such as docs and docs_internal. This is a regression of CVE-2023-32309. This issue is fixed in version 10.21.3.

