launch-editor: obejście sprawdzania istnienia `fs.existsSync()` w systemie Windows
Podsumowanie
launch-editor sprawdzał fs.existsSync(fileName) przed przekazaniem podanej ścieżki do polecenia edytora. W systemie Windows atakujący może obejść to sprawdzenie za pomocą spreparowanej ścieżki kończącej się na \\..:line:column. Eliminuje to wymóg umieszczenia przez atakującego pliku o złośliwej nazwie.
W połączeniu z problemem ucieczki znaków % opisanym w GHSA-698v-4r3x-3vcv,), obejście to może prowadzić do wstrzyknięcia poleceń systemu operacyjnego (OS command injection), gdy atakujący kontroluje argument pliku.
Wpływ
Podatność dotyczy wyłącznie aplikacji uruchamianych w systemie Windows.
Szczegóły
Wcześniejszy komunikat zakładał, że fs.existsSync() wymagał istnienia pliku o nazwie kontrolowanej przez atakującego. Niniejszy komunikat opisuje obejście tego wymogu.
Spreparowana wartość kończąca się na \\..:1:1 jest interpretowana inaczej przez launch-editor-middleware, launch-editor oraz system Windows:
launch-editor-middlewarewywołujepath.resolve(), podczas gdy ostatnim elementem ścieżki jest..:1:1, przez co nie jest on traktowany jako element katalogu nadrzędnego.launch-editortraktuje:1:1jako sufiks wiersza i kolumny i usuwa go, pozostawiając ścieżkę kończącą się na\\...- W systemie Windows
fs.existsSync()akceptuje powstałą ścieżkę jako istniejący katalog nadrzędny, nawet jeśli poprzedzający element kontrolowany przez atakującego nie istnieje. - Ponieważ sprawdzenie istnienia kończy się pomyślnie, spreparowana nazwa pliku trafia do polecenia powłoki systemu Windows.
Co trzeba zrobić
Zaktualizuj pakiet launch-editor do wersji 2.14.2 lub nowszej. W przypadku korzystania z vite zaktualizuj go do wersji 6.4.4, 7.3.7, 8.1.6, 8.2.4, 8.3.3 lub nowszej. W przypadku vite-plus zaktualizuj do wersji 1.1.0 lub nowszej.
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Paczka npm | launch-editor | < 2.14.2 | 2.14.2 |
| Paczka npm | vite | >= 8.3.0, < 8.3.3, >= 8.2.0, < 8.2.4, >= 8.0.0, < 8.1.6, >= 7.0.0, < 7.3.7, < 6.4.4 | 8.3.3, 8.2.4, 8.1.6, 7.3.7, 6.4.4 |
| Paczka npm | vite-plus | < 1.1.0 | 1.1.0 |
Odnośniki
- https://github.com/vitejs/launch-editor/security/advisories/GHSA-587h-7wmj-h5pm
- https://nvd.nist.gov/vuln/detail/CVE-2026-112942
- https://github.com/vitejs/launch-editor/commit/f13cd835d4b8e860b1d4d080ad8a490cc2463679
- https://github.com/vitejs/launch-editor
- https://github.com/vitejs/launch-editor/releases/tag/v2.14.2
- Wektor CVSS
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N- Słabość (CWE)
CWE-77- Platforma
- npm
- Paczka
launch-editor, vite, vite-plus- Ujawniono
- 20.10.2026
- Aktualizacja
- 20.10.2026 23:19
Źródła i licencje · Redakcja lub tłumaczenie: DockRay. Zachowano prawa źródeł i obowiązujące licencje.
OSV / GitHub Advisory Database - GHSA-587h-7wmj-h5pm - CC BY 4.0
Historia podatności: launch-editor
Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
- Wszystkich wpisów
- 4
- Pierwsza → ostatnia
- 06.2026 10.2026
- Bez poprawki
- 0
- Wykorzystywana w atakach
- 0
Rozkład istotności
- Wysoka 2
- Średnia 2
Ujawnienia w latach
- 2026: 4
-
launch-editor: obejście sprawdzania istnienia `fs.existsSync()` w systemie Windows ten wpis
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.