CVE-2026-54701
ŚrednieCVSS 6.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
W Markdown Preview Enhanced przed wersją 0.8.30 rozszerzenie odczytuje kontrolowaną przez repozytorium zawartość .crossnote/head.html i przekazuje ją przez resolvePathsInHeader, wstawiając do nagłówka dokumentu webview podglądu bez usuwania treści wykonywalnej. Znaczniki ze zdolnością do skryptów wykonują się podczas ładowania dokumentu, przed inicjalizacją React i DOMPurify, i mogą uzyskać dostęp do acquireVsCodeApi.
Ocena ryzyka
Wystarczy otworzyć podgląd Markdown w złośliwym repozytorium, aby uruchomić wstrzykniętą treść, co może prowadzić do wykonania kodu w kontekście rozszerzenia VS Code.
Rekomendacja
Należy zaktualizować Markdown Preview Enhanced do wersji 0.8.30 lub nowszej oraz zachować ostrożność przy otwieraniu niezaufanych repozytoriów.
Inne podatności w Markdown Preview Enhanced
Zobacz wszystkie- CVE-2026-54703Średnie
W Markdown Preview Enhanced przed wersją 0.8.30 polecenie _crossnote.updateMarkdown przyjmuje dowolny URI i treść kontrolowaną przez atakującego, a następnie przekazuje je do vscode.workspace.fs.writeFile bez walidacji, że cel jest plikiem Markdown reprezentowanym przez bieżący podgląd. JavaScript działający już w webview podglądu może wywołać to polecenie przez mostek komunikatów rozszerzenia i zapisać dowolny plik dozwolony przez uprawnienia systemowe użytkownika VS Code.
- CVE-2026-54702Wysokie
Rozszerzenie Markdown Preview Enhanced dla Visual Studio Code przed wersją 0.8.30 nie waliduje polecenia ani argumentów przesyłanych z webview. JavaScript działający w podglądzie może wywołać uprzywilejowane polecenia rozszerzenia, w tym modyfikację plików, wykonanie kodu, uruchomienie narzędzi eksportu i otwieranie dowolnych adresów URL. Wykorzystanie wymaga osobnej ścieżki wykonania JavaScript w webview, np. wstrzyknięcia przez .crossnote/head.html.
- CVE-2026-54566Wysokie
Rozszerzenie Markdown Preview Enhanced dla Visual Studio Code przed wersją 0.8.29 wykonuje pliki .crossnote/config.js i .crossnote/parser.js z repozytorium za pomocą vm.runInNewContext, co nie stanowi granicy bezpieczeństwa względem środowiska Node.js. Otwarcie pliku Markdown w złośliwym repozytorium automatycznie ładuje te pliki, a przejście po łańcuchu prototypów pozwala dotrzeć do konstruktora Function i obiektu process, umożliwiając wykonanie poleceń systemowych bez dalszej interakcji.
- CVE-2026-54525Wysokie
Rozszerzenie Markdown Preview Enhanced dla Visual Studio Code przed wersją 0.8.28 przekazuje zdekodowany, kontrolowany przez Markdown cel linku do pomocnika otwierającego pliki w Windows, który wywołuje child_process.exec z komendą start. Gdy użytkownik Windows otworzy niezaufany plik Markdown i kliknie spreparowany link, metaznaki powłoki w zdekodowanym celu są interpretowane przez cmd.exe jako separatory komend, co pozwala na uruchomienie dowolnej komendy z uprawnieniami użytkownika VS Code.
- CVE-2026-11422Wysokie
Rozszerzenie Markdown Preview Enhanced 0.8.x z silnikiem crossnote 0.9.28 zawiera podatność na wstrzyknięcie kodu w potoku renderowania WaveDrom. Atakujący może osadzić złośliwą treść w bloku kodu wavedrom w dokumencie Markdown, co prowadzi do wykonania dowolnego JavaScript w kontekście webview VS Code i zapisu dowolnych plików na lokalnym systemie plików.
Oryginalny opis (angielski, źródło NVD)
Markdown Preview Enhanced is a Markdown preview extension for Visual Studio Code. Prior to 0.8.30, Markdown Preview Enhanced reads repository-controlled .crossnote/head.html content and passes it through resolvePathsInHeader before inserting it into the head of the preview webview document without removing executable content. Script-capable markup executes while the document loads, before the React application and DOMPurify initialize, and can access acquireVsCodeApi to send messages from the webview to the extension host. Opening a Markdown preview in a malicious repository is sufficient to trigger the injected content, and no additional click within the notification or preview is required. This issue is fixed in version 0.8.30.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

