CVE-2024-21635
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
Memos to lekkie, stawiające na prywatność narzędzie do notatek, które używa tokenów dostępu do uwierzytelniania. Gdy użytkownik zmienia hasło, istniejąca lista tokenów dostępu pozostaje ważna zamiast wygasać. W wersjach do 0.18.1 włącznie, jeśli konto zostanie przejęte, atakujący nadal ma dostęp, ponieważ jego token dostępu pozostaje na liście jako ważny. Użytkownik musi ręcznie usunąć token dostępu atakującego, aby zabezpieczyć konto. Lista tokenów dostępu ma ogólny opis, co utrudnia zidentyfikowanie atakującego. Nie jest dostępna znana wersja z poprawką. Aby poprawić bezpieczeństwo Memos, wszystkie tokeny dostępu powinny być unieważniane przy zmianie hasła, co usuwa sesje na wszystkich urządzeniach użytkownika i wymaga ponownego zalogowania. Stare tokeny można traktować jako "nieważne", ponieważ zostały utworzone przy starym haśle.
Ocena ryzyka
Po zmianie hasła przez użytkownika, atakujący z ważnym tokenem dostępu nadal może uzyskać dostęp do konta, co prowadzi do utrzymania nieautoryzowanego dostępu i naruszenia poufności notatek.
Rekomendacja
Ręcznie usuń wszystkie tokeny dostępu po zmianie hasła, rozważ wdrożenie poprawki, która unieważnia tokeny przy zmianie hasła, oraz monitoruj aktywność tokenów pod kątem nieautoryzowanego użycia.
Inne podatności w Memos
Zobacz wszystkie- CVE-2026-75110Krytyczne
MemOS to system operacyjny pamięci dla LLM i agentów AI. W środowiskach, gdzie uwierzytelnianie jest włączone (AUTH_ENABLED=true), ale zmienna środowiskowa INTERNAL_SERVICE_SECRET (bez wartości domyślnej) nie jest ustawiona, funkcja is_internal_request() w src/memos/api/middleware/auth.py zawodzi w trybie otwartym: os.getenv("INTERNAL_SERVICE_SECRET") zwraca None, a żądanie bez nagłówka X-Internal-Service również daje None, więc porównanie None == None jest prawdziwe. Żądanie jest traktowane jako zaufany wewnętrzny podmiot i otrzymuje zakresy: ["all"]. W rezultacie nieuwierzytelniony zdalny atakujący może uzyskać dostęp do endpointów zarządzania kluczami API administratora, aby tworzyć klucze API dla dowolnego użytkownika, wyliczać klucze, odwoływać klucze i generować klucz główny dla trwałego uprzywilejowanego dostępu, a także do wszystkich endpointów danych.
- CVE-2026-84203Wysokie
Memos w wersjach od 0.26.0 do 0.30.0 nie unieważnia tokenów odświeżania po zmianie hasła przez użytkownika, co pozwala atakującym na utrzymanie dostępu do konta. Atakujący z wykradzionym tokenem odświeżania może wywołać RPC RefreshToken, aby uzyskać nowe tokeny dostępu i rotować token odświeżania w nieskończoność, omijając zabezpieczenie zmiany hasła.
- CVE-2026-82476Średnie
Memos do wersji 0.30.0 pomija zakres adresów 100.64.0.0/10 (carrier-grade NAT) w ochronie SSRF w swoim pobieraczu metadanych linków, co pozwala nieuwierzytelnionym atakującym ominąć walidację IP. Atakujący mogą sprawić, że serwer będzie wysyłać żądania do wewnętrznych hostów w tym zakresie, w tym do usług metadanych chmury, i odczytywać tytuły stron oraz opisy.
- CVE-2026-71272Wysokie
Funkcja safeDialContext w webhookach Memos rozwiązuje nazwę hosta docelowego przez net.DefaultResolver.LookupHost i waliduje wynikowe adresy IP względem zakresów zastrzeżonych, ale następnie łączy się przez net.JoinHostPort(host, port) używając oryginalnej nazwy hosta, a nie już zwalidowanego adresu IP.
- CVE-2026-71271Wysokie
Funkcja isReservedIP w Memos (internal/webhook/validate.go) sprawdza adres IP względem listy zarezerwowanych CIDR, która pomija zakres 0.0.0.0/8 i nie wywołuje ip.IsUnspecified, w przeciwieństwie do poprawnie zaimplementowanej funkcji isInternalIP.
- CVE-2026-30586Średnie
Podatność na Cross Site Scripting w usememos Memos w wersji 0.26.0 umożliwia zdalnemu atakującemu uzyskanie poufnych informacji poprzez strony SANITIZE_SCHEMA, Memo Rendering Component oraz Public/Private Memo View.
Oryginalny opis (angielski, źródło NVD)
Memos is a privacy-first, lightweight note-taking service that uses Access Tokens to authenticate application access. When a user changes their password, the existing list of Access Tokens stay valid instead of expiring. If a user finds that their account has been compromised, they can update their password. In versions up to and including 0.18.1, though, the bad actor will still have access to their account because the bad actor's Access Token stays on the list as a valid token. The user will have to manually delete the bad actor's Access Token to secure their account. The list of Access Tokens has a generic Description which makes it hard to pinpoint a bad actor in a list of Access Tokens. A known patched version of Memos isn't available. To improve Memos security, all Access Tokens will need to be revoked when a user changes their password. This removes the session for all the user's devices and prompts the user to log in again. One can treat the old Access Tokens as "invalid" because those Access Tokens were created with the older password.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

