WebdriverIO w wersjach poniżej 9.24.0 zawiera podatność typu command injection, która umożliwia zdalne wykonanie kodu (RCE) na serwerach CI/CD oraz maszynach deweloperów. Podatność jest krytyczna ze względu na brak uwierzytelnienia wymaganego do jej wykorzystania oraz pełen zakres potencjalnych skutków.
▸ Pokaż oryginał (EN)
WebdriverIO is a test automation framework for unit, e2e and component testing using WebDriver, WebDriver BiDi and Appium. Versions below 9.24.0 contain a command injection vulnerability leading to remote code execution (RCE) in test orchestration. Git permits branch names containing shell metacharacters, and getGitMetadataForAISelection() interpolates these names directly into execSync() calls without sanitization. An attacker can exploit this by supplying a malicious repository (via testOrchestrationOptions.runSmartSelection.source, or the current directory if unset) whose branch name carries a payload, causing the shell to execute arbitrary code. This enables remote code execution on CI/CD servers and developer machines, leading to credential and secret disclosure, source code and SSH key exfiltration, system compromise, and supply chain attacks via tampered build artifacts. The issue has been fixed in version 9.24.0.
Funkcja getGitMetadataForAISelection() pobiera nazwy gałęzi Git i interpoluje je bezpośrednio do wywołań execSync() bez jakiejkolwiek sanityzacji danych wejściowych (CWE-78). Ponieważ Git dopuszcza nazwy gałęzi zawierające metaznaki powłoki systemowej, atakujący może przygotować złośliwe repozytorium z odpowiednio skonstruowaną nazwą gałęzi zawierającą payload. Złośliwe repozytorium może zostać podane poprzez opcję testOrchestrationOptions.runSmartSelection.source lub — jeśli ta opcja nie jest ustawiona — atakujący może wpłynąć na bieżący katalog roboczy. Powłoka systemowa interpretuje wtedy wstrzyknięte metaznaki jako polecenia i wykonuje je z uprawnieniami procesu uruchamiającego testy.
Atakujący może wykonać dowolny kod na maszynie ofiary, co prowadzi do ujawnienia poświadczeń i sekretów, eksfiltracji kodu źródłowego i kluczy SSH, kompromitacji systemu oraz ataków na łańcuch dostaw poprzez manipulację artefaktami kompilacji.
Należy zaktualizować WebdriverIO do wersji 9.24.0 lub nowszej, w której problem został naprawiony. Patche dostępne są w oficjalnym repozytorium producenta na GitHub (tag v9.24.0).
WebdriverIO (pakiet @wdio/browserstack-service) we wszystkich wersjach poniżej 9.24.0
Podatność dotyczy przede wszystkim środowisk CI/CD oraz maszyn deweloperskich korzystających z funkcji smart selection w orkiestracji testów. Poprawka została wprowadzona w wersji 9.24.0 zgodnie z oficjalnym advisory bezpieczeństwa GitHub (GHSA-5c46-x3qw-q7j7).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HOpenjsf Webdriverio
APPOpenjsf< 9.24.0
Powiązane podatności
fast-uri versions 2.3.1 through 3.1.2 and 4.0.0 fail to canonicalize Unicode (IDN) hostnames for HTTP-family U...
nvm (Node Version Manager) through 0.40.4 executes arbitrary commands from version strings supplied by the con...
fast-uri normalize() decoded percent-encoded authority delimiters inside the host component and then re-emitte...
fast-uri decoded percent-encoded path separators and dot segments before applying dot-segment removal in its n...
The messageformat package, an implementation of the Unicode MessageFormat 2 specification for JavaScript, is v...