CVE-2025-62378
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 5 - wyżej niż 5% wszystkich znanych CVE
Streszczenie
CommandKit to meta-framework discord.js do budowania botów Discord. W wersjach od 1.2.0-rc.1 do 1.2.0-rc.11 istnieje błąd logiczny w obsłudze poleceń wiadomości, który wpływa na sposób ujawniania właściwości commandName zarówno w funkcjach middleware, jak i w kontekstach wykonywania poleceń podczas obsługi aliasów poleceń. Gdy polecenie wiadomości jest wywoływane za pomocą aliasu, wartość ctx.commandName odzwierciedla alias, a nie kanoniczną nazwę polecenia. Występuje to zarówno w funkcjach middleware, jak i w funkcji run samego polecenia. Chociaż nie jest to wyraźnie udokumentowane, przykłady i wskazówki CommandKit dotyczące używania middleware domyślnie sugerują, że ctx.commandName reprezentuje kanoniczny identyfikator polecenia. Przykłady middleware w dokumentacji konsekwentnie używają ctx.commandName do odwoływania się do wykonywanego polecenia. Deweloperzy, którzy zakładają, że ctx.commandName jest kanoniczne, mogą wprowadzić niezamierzone zachowanie, polegając na nim w logice takiej jak sprawdzanie uprawnień, ograniczanie szybkości lub rejestrowanie audytu. Może to pozwolić na nieautoryzowane wykonanie polecenia lub niedokładne decyzje dotyczące kontroli dostępu. Polecenia slash i polecenia menu kontekstowego nie są dotknięte. Problem został załatany w wersji 1.2.0-rc.12, gdzie ctx.commandName teraz konsekwentnie zwraca rzeczywistą kanoniczną nazwę polecenia niezależnie od aliasu użytego do jego wywołania.
Ocena ryzyka
Może prowadzić do nieautoryzowanego wykonania poleceń lub błędnych decyzji kontroli dostępu w botach Discord.
Rekomendacja
Zaktualizuj CommandKit do wersji 1.2.0-rc.12 lub nowszej, aby naprawić błąd logiczny.
Powiązane podatności
- CVE-2026-117691Krytyczne
W implementacji wiązania SAML HTTP-Redirect w Keycloak występuje luka polegająca na tym, że serwer przetwarza nazwy parametrów zakodowane procentowo (np. %53AMLResponse), podczas gdy logika weryfikacji podpisu sprawdza tylko literalne nazwy parametrów. Atakujący może wykorzystać tę rozbieżność, dostarczając spreparowaną, niepodpisaną wiadomość SAML, którą serwer przetwarza zamiast legalnie podpisanej, co prowadzi do pełnego przejęcia konta użytkowników sfederowanych.
- CVE-2026-96677Krytyczne
Podatność Cross-site Scripting (XSS) w Apache Juneau. Serializacja dokumentów HTML nie koduje podstawień zmiennych w elementach szablonu strony (nagłówek, nawigacja, stopka itp.), więc aplikacje, które umieszczają tam dane z żądania, odzwierciedlają je bez kodowania.
- CVE-2026-73117Krytyczne
Podatność HTTP Response Splitting (wstrzykiwanie CRLF w nagłówkach HTTP) w Apache Juneau. Serwer REST przekazywał wartości nagłówków odpowiedzi i cele przekierowań do kontenera serwletów bez walidacji, co przy danych z żądania mogło pozwolić na wstrzyknięcie nagłówków lub przekierowanie na dowolną witrynę.
- CVE-2026-73116Krytyczne
Podatność niewystarczającej ochrony poświadczeń w Apache Juneau. Klient RestClient podążał za przekierowaniami HTTP, zachowując nagłówki poświadczeń z pierwotnego żądania, więc serwer przekierowujący na inny host, port lub z HTTPS na HTTP mógł otrzymać nagłówki Authorization, Cookie, Proxy-Authorization i X-API-Key.
- CVE-2026-73101Krytyczne
Podatność ujawniania informacji wrażliwych w komunikatach błędów w Apache Juneau. Serwer REST wysyła klientom klasę i treść wewnętrznego wyjątku w nagłówku odpowiedzi "Thrown" przy każdym błędzie oraz może umieszczać wewnętrzne komunikaty wyjątków w treści błędu, nawet przy wyłączonym renderowaniu stosu.
- CVE-2026-73100Krytyczne
Podatność umieszczania informacji wrażliwych w plikach logów w Apache Juneau. Domyślny logger wywołań serwera REST zapisuje nagłówki żądań dla żądań kończących się błędem serwera bez redakcji, więc nagłówki Authorization, Cookie, Proxy-Authorization i X-API-Key trafiają jawnym tekstem do logów aplikacji.
- CVE-2026-73099Krytyczne
Podatność Cross-Site Request Forgery (CSRF) w Apache Juneau. Serwer REST akceptuje parametr zapytania "content", który zastępuje treść żądania i jest domyślnie włączony dla każdej metody HTTP, w tym GET, więc link międzywitrynowy może dostarczyć wybraną przez atakującego treść żądania bez preflight CORS.
- CVE-2026-73098Krytyczne
Podatność nieprawidłowej kontroli dynamicznie ładowanego kodu w Apache Juneau. Przy parsowaniu wartości do właściwości typu java.lang.Class domyślna zamiana klas ładowała wskazaną klasę z włączoną inicjalizacją, więc dane wejściowe wskazujące klasę z classpath aplikacji uruchamiały jej statyczny inicjalizator.
- CVE-2026-121489Krytyczne
Podatność Path Traversal w Apache Juneau. Zasób mikroserwisu DirectoryResource nie utrzymuje ścieżek żądań wewnątrz skonfigurowanego katalogu głównego; gdy aplikacja włączy ustawienia view, upload lub delete (domyślnie wyłączone), klient może czytać, zapisywać lub usuwać pliki poza katalogiem głównym.
- CVE-2026-100109Krytyczne
Wtyczka WordPress Security For WooCommerce w wersjach 1.0.10–1.0.16 nie sprawdza uprawnień podczas tworzenia użytkowników przez akcję dostępną dla niezalogowanych odwiedzających i pozwala wybrać rolę nowego konta. Umożliwia to nieuwierzytelnionemu atakującemu utworzenie konta administratora i przejęcie witryny.
Oryginalny opis (angielski, źródło NVD)
CommandKit is the discord.js meta-framework for building Discord bots. In versions 1.2.0-rc.1 through 1.2.0-rc.11, a logic flaw exists in the message command handler that affects how the commandName property is exposed to both middleware functions and command execution contexts when handling command aliases. When a message command is invoked using an alias, the ctx.commandName value reflects the alias rather than the canonical command name. This occurs in both middleware functions and within the command's own run function. Although not explicitly documented, CommandKit's examples and guidance around middleware usage implicitly convey that ctx.commandName represents the canonical command identifier. Middleware examples in the documentation consistently use ctx.commandName to reference the command being executed. Developers who assume ctx.commandName is canonical may introduce unintended behavior when relying on it for logic such as permission checks, rate limiting, or audit logging. This could allow unauthorized command execution or inaccurate access control decisions. Slash commands and context menu commands are not affected. This issue has been patched in version 1.2.0-rc.12, where ctx.commandName now consistently returns the actual canonical command name regardless of the alias used to invoke it.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

