CVE-2026-9277
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 56 - wyżej niż 56% wszystkich znanych CVE
Streszczenie
W shell-quote funkcja quote() nie walidowała tokenów obiektowych względem modelu operatorów używanego przez parse(). Pole .op było escapowane znak po znaku za pomocą wyrażenia regularnego /(.)/g, które w JavaScript nie dopasowuje terminatorów linii (\n, \r, U+2028, U+2029). Terminator linii w .op przechodził więc nieescapowany do wyniku; powłoki POSIX traktują nową linię jako separator poleceń, więc zawartość po niej jest wykonywana jako drugie polecenie. Podatność jest osiągalna przez bezpośrednie konstruowanie { op: '...\n...' } lub przez parse(cmd, envFn) gdy envFn zwraca tokeny obiektowe z polem .op kontrolowanym przez atakującego. Poprawka polega na zastąpieniu escapowania znak po znaku ścisłą walidacją kształtu.
Ocena ryzyka
Atakujący może wstrzyknąć dowolne polecenia powłoki, co może prowadzić do zdalnego wykonania kodu na serwerze.
Rekomendacja
Należy zaktualizować shell-quote do wersji zawierającej poprawkę.
Powiązane podatności
- CVE-2026-19583Krytyczne
Velociraptor pozwala ograniczać dostęp do wrażliwych artefaktów poprzez dodatkowe uprawnienia, np. artefakt Linux.Sys.BashShell wymaga uprawnienia EXECVE. Jednak dla artefaktów monitoringu klienta nie zaimplementowano takiej kontroli ani wymogu typu CLIENT_EVENTS. Umożliwia to każdemu użytkownikowi mogącemu planować artefakty monitoringu klienta zaplanowanie również artefaktów w inny sposób ograniczonych.
- CVE-2026-18351Krytyczne
Wtyczka Drag and Drop File Upload for Elementor Forms dla WordPressa (wszystkie wersje do 1.6.0 włącznie) jest podatna na dowolne przesyłanie plików przez funkcję elementor_file_upload. Powodem jest niewystarczająca walidacja typu pliku w is_file_type_valid(), która używa parametru 'type' kontrolowanego przez atakującego jako kluczy regex w allowliście MIME, co pozwala obejść blacklistę. Umożliwia to nieuwierzytelnionym atakującym przesłanie plików wykonywalnych i zdalne wykonanie kodu.
- CVE-2026-87931Krytyczne
W urządzeniu Pavlok Behavioral Conditioning Wearable (do wersji 20260707) wykryto podatność w nieznanej funkcji komponentu Apple Notification Center Service Event Handler. Manipulacja prowadzi do przepełnienia bufora, a atak musi być przeprowadzony z lokalnej sieci. Producent został powiadomiony, ale nie odpowiedział.
- CVE-2026-88069Krytyczne
Pandora zawiera podatność na przechodzenie po ścieżkach w mechanizmie rozpakowywania archiwów. Podczas przetwarzania specjalnie spreparowanego archiwum lub obrazu dysku, ścieżki plików kontrolowane przez atakującego mogą być używane bez zapewnienia, że wynikowy cel pozostanie w zamierzonym katalogu ekstrakcji. Atakujący, który może przesłać złośliwy plik do analizy, może użyć sekwencji przechodzenia po ścieżkach, aby zapisać wyodrębnione treści poza wyznaczonym katalogiem, potencjalnie nadpisując pliki dostępne dla procesu Pandora.
- CVE-2026-87911Krytyczne
Słabość polegająca na wstrzyknięciu poleceń systemu operacyjnego w mechanizmie wymuszania trybu tylko do odczytu w komponencie walidacji SQL w amazon awslabs postgres-mcp-server przed wersją 1.1.7 może pozwolić nieuwierzytelnionemu aktorowi na wykonanie poleceń systemu operacyjnego na hoście samodzielnie zarządzanego serwera PostgreSQL poprzez umieszczenie spreparowanego polecenia COPY ... TO PROGRAM w treści przetwarzanej, gdy uwierzytelniony użytkownik wchodzi w interakcję z serwerem MCP w domyślnym trybie tylko do odczytu.
- CVE-2026-54694Krytyczne
SkillTree przed wersją 4.4.2 zawiera podatność XSS wynikającą z połączenia dwóch błędów: braku kodowania HTML w StringHighlighter.js oraz użycia v-html w HighlightedValue.vue. Atakujący może zarejestrować konto z złośliwym polem firstName/lastName/nickname, a po otwarciu strony Quiz Runs przez administratora, payload wykonuje się w jego przeglądarce. Istnieją trzy ścieżki ataku o rosnącym wpływie: podstawowy XSS, zdalne ładowanie skryptów przez import() oraz kradzież tokenów CSRF.
- CVE-2026-87929Krytyczne
MaxSite CMS do wersji 109.6 zawiera na stałe zaszyty klucz szyfrowania sesji w pliku application/config/config.php, który nie jest zmieniany podczas instalacji. Umożliwia to nieuwierzytelnionemu atakującemu sfałszowanie ciasteczek sesji administratora poprzez obliczenie HMAC-SHA1 z publicznie znanym kluczem, omijając kontrolę uwierzytelniania w funkcjach is_login() i mso_check_allow().
- CVE-2026-47156Krytyczne
MantisBT w wersjach 2.28.3 i wcześniejszych zawiera krytyczną podatność obejścia uwierzytelniania w funkcji mci_check_login() w API SOAP. Każdy użytkownik znający ważny cookie_string może uwierzytelnić się jako dowolny inny użytkownik (znając jego nazwę), w tym administrator, bez znajomości hasła ofiary. Podatność jest wykorzystywalna bez wcześniejszego dostępu w domyślnych instalacjach, ponieważ samorejestracja jest domyślnie włączona.
- CVE-2026-68484Krytyczne
Cash Collect zawiera podatność niewłaściwej autoryzacji w API Sage AR Automation. Funkcje administracyjne nie weryfikują poprawnie uprawnień użytkownika, co pozwala uwierzytelnionym użytkownikom o niskich uprawnieniach na tworzenie kont administratora i uzyskiwanie podwyższonych uprawnień.
- CVE-2026-67403Krytyczne
Cash Collect zawiera podatność niewłaściwej autoryzacji w API Sage AR Automation. Niewystarczające sprawdzanie uprawnień na poziomie dzierżawy (tenant) pozwala uwierzytelnionym użytkownikom na dostęp do zasobów administracyjnych należących do innych dzierżawców poprzez podanie ważnego, nieprzewidywalnego identyfikatora dzierżawy.
Oryginalny opis (angielski, źródło NVD)
shell-quote's `quote()` function did not validate object-token inputs against the operator model used by `parse()`. The `.op` field was backslash-escaped character by character using `/(.)/g`, which in JavaScript does not match line terminators (\n, \r, U+2028, U+2029). A line terminator in `.op` therefore passed through unescaped into the output; POSIX shells treat a literal newline as a command separator, so any content after it would execute as a second command. The vulnerable code path is reachable in two ways: (1) direct construction of `{ op: '...\n...' }` from external input, and (2) via `parse(cmd, envFn)` when `envFn` returns object tokens whose `.op` is attacker-influenced. Both are documented API surface. Fixed by replacing the per-character escape with strict shape validation: `.op` must match the parser's control-operator allowlist; `{ op: 'glob', pattern }` validates `pattern` and forbids line terminators; `{ comment }` validates `comment` and forbids line terminators; any other object shape throws `TypeError`.

