CVE-2026-48126
WysokieCVSS 8.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 26 - wyżej niż 26% wszystkich znanych CVE
Streszczenie
Algernon przed wersją 1.17.8, gdy uruchomiony z opcją --domain (lub --letsencrypt), rozpoznaje katalog serwowany poprzez łączenie skonfigurowanego --dir z wartością nagłówka Host dostarczonego przez klienta bez walidacji, co umożliwia atakującym odczyt dowolnych plików, wyświetlenie listy katalogów i wykonanie kodu Lua po stronie serwera.
Ocena ryzyka
Nieuwierzytelniony atakujący może uzyskać dostęp do plików poza katalogiem głównym serwera, w tym do plików konfiguracyjnych i skryptów Lua, co może prowadzić do pełnego przejęcia serwera.
Rekomendacja
Zaktualizuj Algernon do wersji 1.17.8 lub nowszej.
Inne podatności w Algernon
Zobacz wszystkie- CVE-2026-52792Wysokie
Algernon, mały samodzielny serwer WWW napisany w Go, przed wersją 1.17.9, na systemach Windows zawiera podatność polegającą na nieprawidłowym wyborze obsługi plików dla nazw równoważnych NTFS, takich jak x.lua::$DATA. Nieuwierzytelniony klient może uzyskać dostęp do surowego kodu źródłowego skryptów serwerowych, co może ujawnić dane uwierzytelniające bazy danych, klucze API i wartość SetCookieSecret.
- CVE-2026-45721Krytyczne
Algernon przed wersją 1.17.7 ma podatność w funkcji DirPage, która przy żądaniu katalogu bez pliku indeksu przeszukuje katalogi nadrzędne (poza skonfigurowanym korzeniem serwera) w poszukiwaniu pliku handler.lua. Znaleziony plik jest wykonywany z pełnym dostępem do API Algernon, co pozwala na zdalne wykonanie kodu bez uwierzytelnienia.
- CVE-2026-46431Średnie
Algernon przed wersją 1.17.7 ma podatność w serwerze SSE, gdzie nagłówek Access-Control-Allow-Origin jest ustawiony na '*' niezależnie od pochodzenia żądania. Umożliwia to stronom trzecim odczyt strumienia nazw plików przez JavaScript.
- CVE-2026-46430Średnie
Serwer WWW Algernon przed wersją 1.17.7 domyślnie wiązał serwer zdarzeń SSE z adresem 0.0.0.0:5553 na Linux/macOS, co umożliwiało dostęp z zewnątrz. Luka została naprawiona w wersji 1.17.7.
- CVE-2026-45728Wysokie
W Algernon przed 1.17.7, gdy uruchomiony jest z pojedynczym plikiem, tryb debugowania ujawnia pełną ścieżkę i zawartość pliku źródłowego w odpowiedzi na błąd. Każdy klient może wywołać błąd i uzyskać kod źródłowy.
- CVE-2026-43982Wysokie
Algernon przed wersją 1.17.6 zawiera podatność w funkcji uploadedFileSaveIn() w lua/upload/upload.go, która używa filepath.Join() z katalogiem dostarczonym przez wywołującego bez sprawdzania granic po połączeniu, umożliwiając zapis plików poza katalogiem głównym serwera.
- CVE-2026-43981Wysokie
Algernon, mały serwer WWW napisany w Go, w wersjach przed 1.17.6, ma podatność w engine/luahandler.go, gdzie sync.RWMutex chroniący LoadCommonFunctions jest zwalniany przed wykonaniem L.Push() i L.PCall(). Ponieważ LState gopher-lua nie jest bezpieczny dla współbieżności, współbieżne żądania powodują wyścig na współdzielonym stanie, prowadząc do uszkodzenia maszyny wirtualnej Lua.
Oryginalny opis (angielski, źródło NVD)
Algernon is a small self-contained pure-Go web server. Prior to 1.17.8, when algernon is started with --domain (or --letsencrypt, which silently turns on --domain at engine/flags.go:372), the request handler resolves the served directory by joining the configured --dir with the value of the client-supplied Host header. The join is performed by filepath.Join with no validation, so a Host: .. header walks one level above the document root. Subsequent file resolution then exposes everything in that parent directory — arbitrary file read, full directory listing, and, if any .lua file is present, server-side Lua execution. This vulnerability is fixed in 1.17.8.

