Średnia

Uptime Kuma Authenticated remote code execution via TailscalePing

  • Ujawniono: 27.11.2023
  • Aktualizacja: 11.10.2026 10:22

Summary

The runTailscalePing method of the TailscalePing class injects the hostname parameter inside a shell command, leading to a command injection and the possibility to run arbitrary commands on the server.

Details

When adding a new monitor on Uptime Kuma, we can select the "Tailscale Ping" type. Then we can add a hostname and insert a command injection payload into it. The front-end application requires that the field follow a specific pattern, this validation only happens on the front-end and can be removed by removing the attribute pattern on the input element.

https://github.com/louislam/uptime-kuma/blob/dc4242019331e65a79ac16deef97510144e01b12/server/monitor-types/tailscale-ping.js#L40-L46

We can finally add the new monitor and observe that our command is being executed.

NOTE: When using Uptime Kuma inside a container, the "TailScale Ping" type is not visible. We can fake this information by intercepting WebSocket messages and set the isContainer option to false.

PoC

  • Authenticate.
  • Create a new monitor.
  • Select the TailScale Ping type (if not visible, see the note in the details section).
  • Insert the command injection payload inside the hostname field. (for example $(id >&2))
  • Remove the pattern requirement on the field.
  • Save and start the monitor.

Impact

An authenticated user can execute arbitrary command on the server running Uptime Kuma.

Remediation

There are other command execution in the codebase, they use a method spawn from the child_process module which does not interpret the command as a shell command, the same thing should be done here.

NOTE: The Tailscale CLI seems to support the -- sequence. It should be used between the ping subcommand and the hostname argument to avoid argument injection.

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Paczka npm uptime-kuma >= 1.23.0, < 1.23.7 1.23.7

Odnośniki

Ocena CVSS -
Słabość (CWE)
-
Platforma
npm
Paczka
uptime-kuma
Ujawniono
27.11.2023
Aktualizacja
11.10.2026 10:22

Źródła i licencje

OSV / GitHub Advisory Database - GHSA-hfxh-rjv7-2369 - CC BY 4.0

Historia podatności: uptime-kuma

Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkie (11) w archiwum
Wszystkich wpisów
11
Pierwsza → ostatnia
10.2023 03.2026
Bez poprawki
1
Wykorzystywana w atakach
0

Rozkład istotności

  • Wysoka 2
  • Średnia 8
  • Niska 1

Ujawnienia w latach

  1. 2023: 4
  2. 2024: 4
  3. 2025: 2
  4. 2026: 1
Istotność:
  1. Uptime Kuma Authenticated remote code execution via TailscalePing ten wpis
    Średnia ghsa-hfxh-rjv7-2369 >= 1.23.0, < 1.23.7 1.23.7
  2. Wysoka · 7.8 CVE-2023-44400 < 1.23.3 1.23.3

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.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.