CVE-2026-45728
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ujawnienie kodu źródłowego może umożliwić atakującemu znalezienie innych podatności i kradzież poufnych danych.
Rekomendacja
Zaktualizuj Algernon do wersji 1.17.7 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-48126Wysokie
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.
- 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-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.7, when Algernon is invoked with a single file path instead of a directory, singleFileMode is set to true and debugMode is forcibly enabled. debugMode activates the PrettyError renderer, which on any Lua or template error response dumps the absolute path of the file that errored, complete byte contents of that file, and exception or parser error text. This response is served with HTTP 200 OK to whoever sent the request that triggered the error. Any client able to reach the server and able to provoke a runtime error in the served script obtains the full server-side source of that script and of any sibling Lua data file consulted during the request. This vulnerability is fixed in 1.17.7.

