Katalog podatności CVE
Przetłumaczone opisy podatności z bazy NVD NIST - w języku polskim
Przeglądaj podatności według pakietuKatalog CISA KEV zaktualizowany: (v2026.11.04)
Cotygodniowy digest CVE
Jeden mail w tygodniu z nowo opublikowanymi podatnościami, o których warto wiedzieć. Bez zakładania konta.
Digest dotyczy ogólnie nowych podatności, nie Twoich serwerów. Jeśli chcesz wiedzieć, które z nich faktycznie działają w Twojej infrastrukturze, tym zajmuje się Secvalis : skanuje Twoje maszyny i zgłasza wyłącznie to, co ich dotyczy.
W Pi-hole przed wersją 6.5 funkcja getFTLPID() w utils.sh waliduje plik /run/pihole-FTL.pid za pomocą expr, odrzucając tylko wartości, których pierwszy znak nie jest cyfrą. Atakujący z kodem wykonawczym jako pihole może zapisać wyrażenie arytmetyczne zaczynające się od cyfry, które jest następnie ewaluowane przez Bash jako root, umożliwiając wykonanie podstawienia poleceń.
W Pi-hole w wersjach przed 6.5 skrypt gravity.sh sprawdza czytelność adlist z prefiksem file:// za pomocą sudo -u pihole test -r, ale następnie pozwala curl (czasem uruchamianemu jako root) znormalizować segmenty ścieżki URL i otworzyć inny plik. W rezultacie przygotowany przez atakującego plik-pułapka czytelny dla użytkownika pihole może przejść weryfikację, podczas gdy curl odczyta plik dostępny tylko dla roota; podobnie ścieżki /proc/self mogą wskazywać na różne procesy.
W draw.io Desktop przed wersją 31.5.2 aplikacja Windows uruchamiała powershell i attrib po samej nazwie pliku wykonawczego. Gdy draw.io nie był uruchomiony, otwarcie diagramu z Eksploratora plików ustawiało katalog diagramu jako bieżący katalog roboczy, umożliwiając uruchomienie podstawionego powershell.bat lub attrib.exe z tego katalogu.
W przeglądarce Ladybird przed commitem 209579c funkcja FinalizationRegistry::cleanup() usuwała martwy rekord, zachowywała iterator do następnego rekordu, a następnie wywoływała kontrolowany przez atakującego kod JavaScript. Jeśli callback wywołał unregister() dla następnego rekordu, zachowany iterator wskazywał na zwolniony węzeł, a kolejna iteracja czytała jego pola po zwolnieniu.
W przeglądarce Ladybird przed commitem c0d68bd funkcje CSSStyleSheet.cssRules, insertRule() i deleteRule() nie egzekwowały flagi origin-clean arkusza stylów wymaganym błędem SecurityError, mimo że importowane arkusze cross-origin były poprawnie oznaczane jako nie-origin-clean. Złośliwa strona mogła odczytywać reguły oraz wstawiać i usuwać reguły w arkuszu ofiary, omijając politykę Same-Origin.
W Immich w wersjach przed 3.2.0 API tworzenia linków współdzielonych przyjmowało albumId i assetIds jako niezależne pola w server/src/services/shared-link.service.ts, ale autoryzowało tylko zasób wybrany przez żądany typ linku. Uwierzytelniony atakujący, który znał UUID zasobu należącego do ofiary, mógł wybrać SharedLinkType.Album dla własnego albumu, podając ten UUID w assetIds; SharedLinkService.create() zapisywał niezweryfikowane powiązanie w shared_link_asset i udostępniał zasób ofiary przez nowe anonimowe poświadczenie linku współdzielonego.
W Immich przed wersją 3.0.0 punkt końcowy GET /api/map/markers ujawniał współdzielącemu z uprawnieniami tylko do odczytu współrzędne GPS i istnienie zarchiwizowanych zdjęć lub filmów innego użytkownika. Ujawnienie ogranicza się do metadanych lokalizacji i identyfikatorów zasobów, ponieważ same pliki pozostają chronione.
W Immich przed wersją 3.3.0 nieuwierzytelniony punkt końcowy /predict usługi uczenia maszynowego przyjmował obiekt opcji bez ograniczania parametrów wrażliwych na bezpieczeństwo. Atakujący z dostępem sieciowym mógł ustawić cache_dir na dowolną zapisywalną ścieżkę, powodując zapis pobieranych modeli oraz rekurencyjne usunięcie wybranego katalogu przez shutil.rmtree().
W pgAdmin 4 odświeżanie widoku zmaterializowanego przekazywało nazwę bazy danych do argumentu --dbname programu psql bez zmian. libpq traktuje wartość zawierającą "=" lub URI postgresql:// jako pełny ciąg połączenia, co pozwalało przekierować połączenie na wybrany host i port oraz ujawnić zapisane hasło serwera.
W pgAdmin 4 zmiana hasła użytkownika (przez niego samego lub administratora) nie unieważniała istniejących sesji. Sesja ustanowiona przed zmianą, np. na innym urządzeniu lub przez osobę znającą stare hasło, pozostawała zalogowana aż do wygaśnięcia.
W trybie serwera pgAdmin 4 sprawdzał uprawnienia do pliku w katalogu przechowywania za pomocą check_access_permission(), a następnie otwierał plik po nazwie zwykłym open() lub przekazywał ścieżkę narzędziom (pg_dump, pg_dumpall, pg_restore, psql) oraz funkcjom eksportu/importu servers.json. Podmiana dowiązania symbolicznego lub twardego albo FIFO między sprawdzeniem a otwarciem pozwalała wyjść poza katalog przechowywania i zapisać, nadpisać lub odczytać plik, albo załadować go do tabeli, z uprawnieniami konta systemowego pgAdmin. Luka dotyczy wersji pgAdmin 4 przed 9.19.
W trybie serwera pgAdmin 4 przed wersją 9.19 funkcja get_complete_file_path() usuwała tylko wiodące ukośniki przed połączeniem ścieżki, więc ścieżka typu ../<inny użytkownik>/.pgpass mogła wskazać plik innego użytkownika. Parametr sslkeylogfile był przekazywany do libpq bez zmian, a make_conninfo() nie cytowało nazw parametrów, co pozwalało przemycić dodatkowe pary klucz=wartość.
W pgAdmin 4 w trybie serwera punkty końcowe API serwera przechowywały flagę "shared" i nazwę użytkownika, pozwalając każdemu użytkownikowi mogącemu zarejestrować serwer na udostępnienie go wszystkim. Import servers.json miał podobną lukę, ponieważ wpisy "Shared" nieadministratora usuwano dopiero po walidacji.
W pgAdmin 4 przed wersją 9.19, gdy serwer nie miał skonfigurowanego pliku haseł, certyfikatu klienta lub klucza klienta albo wskazany plik nie istniał, pgAdmin pomijał parametr w połączeniu, a libpq używał domyślnych plików konta systemowego uruchamiającego pgAdmin. W trybie serwera każdy użytkownik mógł więc łączyć się z serwerem przy użyciu zapisanych haseł lub certyfikatu konta usługi.
W pgAdmin 4 hasło serwera było zapisywane w środowisku procesu pgAdmin (jako PGPASSWORD dla narzędzia PSQL oraz pod zmienną per-proces dla narzędzia) i nigdy nie usuwane. W trybie serwera środowisko jest współdzielone przez żądania wszystkich użytkowników i kopiowane do uruchamianych procesów, więc inny użytkownik mógł odziedziczyć hasło i użyć go do połączenia.
W pgAdmin 4 w trybie serwera libpq wyszukuje usługi połączeń w pliku usług konta systemowego, co pozwala użytkownikom na użycie poświadczeń lub plików certyfikatów tego konta. Podatność dotyczy wersji przed 9.19 i może prowadzić do nieautoryzowanego dostępu do serwerów baz danych.
W pgAdmin 4 w trybie serwera usunięcie KRB5CCNAME powodowało, że biblioteka Kerberos używała domyślnego cache poświadczeń konta systemowego, umożliwiając każdemu użytkownikowi połączenie jako principal usługi. Podatność dotyczy wersji przed 9.19 i obejmuje również obejście gssencmode=disable oraz zachowanie SSPI w Windows.
W pgAdmin 4 w trybie serwera ścieżka binarna ustawiona przez użytkownika nie była weryfikowana względem katalogów SHARED_STORAGE, co pozwalało na przesłanie pliku wykonywalnego i uruchomienie go jako konto systemowe pgAdmin. Podatność jest szczególnie istotna w Windows, gdzie pliki mogą być wykonywalne, i dotyczy wersji przed 9.19.
W pgAdmin 4 w trybie serwera biblioteka sshtunnel zawsze ładowała niezaszyfrowane klucze prywatne z ~/.ssh konta systemowego i czytała jego konfigurację SSH, umożliwiając każdemu użytkownikowi skonfigurowanie tunelu z użyciem tożsamości konta usługi. Podatność dotyczy wersji przed 9.19.
pgAdmin 4 przed wersją 9.19 zawiera obejście poprawki CVE-2026-17566 w narzędziu Import/Export Data. Nieprawidłowa walidacja ukośnika w podwójnie cytowanym identyfikatorze pozwala ukryć nawias zamykający i wykonać klauzulę TO PROGRAM przez psql na hoście pgAdmin z uprawnieniami konta systemowego.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

