CVE-2026-54703
ŚrednieCVSS 5.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 11 - wyżej niż 11% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może nadpisać pliki konfiguracyjne, startowe, źródłowe i budowania użytkownika, co może prowadzić do wykonania kodu lub trwałego uszkodzenia środowiska programistycznego.
Rekomendacja
Należy zaktualizować Markdown Preview Enhanced do wersji 0.8.30 lub nowszej oraz unikać otwierania niezaufanych repozytoriów w VS Code.
Inne podatności w Markdown Preview Enhanced
Zobacz wszystkie- 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-54701Średnie
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.
- 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, the _crossnote.updateMarkdown command in Markdown Preview Enhanced accepts an arbitrary URI and attacker-controlled content, then passes them to vscode.workspace.fs.writeFile without validating that the target is the Markdown file represented by the current preview. JavaScript already executing in the preview webview can invoke this command through the extension message bridge and write any file permitted by the VS Code user's operating-system privileges, including user configuration, startup, source, and build files. This file-write vulnerability requires a separate webview JavaScript execution path, such as the independently tracked head.html injection and blind command-dispatch weaknesses. This issue is fixed in version 0.8.30.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

