CVE-2026-63437
ŚrednieCVSS 6.5Streszczenie
W 2FAuth metoda recipients() w app/Api/v1/Controllers/TwoFAccountShareController.php otrzymuje wybrany przez wywołującego TwoFAccount przez powiązanie modelu Laravel, ale nie wywołuje polityki autoryzacji manageShares przed wyświetleniem listy odbiorców. Gdy udostępnianie kont jest włączone, uwierzytelniony użytkownik może wywołać GET /api/v1/twofaccounts/{victimId}/recipients dla kont należących do innych użytkowników, wyliczyć identyfikatory i nazwy wyświetlane zarejestrowanych użytkowników, testować dokładne adresy e-mail za pomocą filter[nameOrEmail] oraz sprawdzać relacje udostępniania każdego konta.
Ocena ryzyka
Luka umożliwia nieautoryzowany dostęp do informacji o udostępnianiu kont innych użytkowników, w tym wyliczanie użytkowników i adresów e-mail, co może ułatwić ataki phishingowe lub inżynierię społeczną. Ryzyko dotyczy wdrożeń z włączonym udostępnianiem kont.
Rekomendacja
Zaktualizuj 2FAuth do wersji 8.0.0 lub nowszej, która naprawia tę podatność. Do czasu aktualizacji rozważ wyłączenie funkcji udostępniania kont.
Inne podatności w 2FAuth
Zobacz wszystkie- CVE-2026-63441Średnie
W aplikacji 2FAuth funkcja ValidatesUrls::isPublicIp() nie rozpoznaje prefiksów NAT64 64:ff9b::/96 oraz 64:ff9b:1::/48, co pozwala na obejście walidacji adresów prywatnych. Parametr obrazu w URI otpauth może zawierać adres IPv6 lub adres syntezowany przez DNS64, którego docelowy adres IPv4 jest prywatny, link-local, loopback lub należy do metadanych chmury. W wyniku tego IconService::buildFromRemoteImage() wykonuje żądanie HTTP GET do wewnętrznego celu, umożliwiając odczyt odpowiedzi obrazów lub sondowanie innych punktów końcowych.
- CVE-2026-63440Średnie
W 2FAuth ścieżka pobierania obrazów otpauth waliduje nazwę hosta przez ValidatesUrls::isExternalHost(), a następnie IconService::storeRemoteImage() ponownie rozwiązuje tę samą nazwę hosta dla żądania HTTP. Przy włączonym pobieraniu zewnętrznych obrazów otpauth uwierzytelniony użytkownik kontrolujący autorytatywny DNS o niskim TTL może zwrócić adres publiczny podczas walidacji i adres wewnętrzny podczas późniejszego połączenia, omijając listę blokowanych adresów prywatnych. Pozwala to na dostęp do loopback, sieci prywatnej, link-local lub punktów końcowych metadanych chmury.
- CVE-2026-63439Krytyczne
2FAuth przed wersją 8.0.0 przy włączonym AUTHENTICATION_GUARD=reverse-proxy-guard odczytuje domyślny nagłówek tożsamości REMOTE_USER lub niestandardowy nagłówek wskazany w AUTH_PROXY_HEADER_FOR_USER bez potwierdzenia, że żądanie pochodzi z zaufanego proxy. Zdalny klient mogący dotrzeć bezpośrednio do aplikacji może sfałszować nagłówek tożsamości i uwierzytelnić się jako istniejący użytkownik, w tym administrator.
- CVE-2026-63438Krytyczne
2FAuth przed wersją 8.0.0 przy AUTHENTICATION_GUARD=reverse-proxy-guard akceptuje nagłówki uwierzytelniania od klienta, który nie przeszedł przez zaufane proxy; RemoteUserProvider::retrieveById() tworzy konto dla nieznanego REMOTE_USER, awansuje pierwsze utworzone konto na administratora i synchronizuje e-mail z nagłówka poczty. Nieuwierzytelniony zdalny klient może utworzyć administratora na świeżej instancji lub podszyć się pod znane konto i przekierować jego e-mail.
Oryginalny opis (angielski, źródło NVD)
2FAuth is a web app to manage Two-Factor Authentication (2FA) accounts and generate their security codes. Prior to 8.0.0, the recipients() method in app/Api/v1/Controllers/TwoFAccountShareController.php receives a caller-selected TwoFAccount through Laravel model binding but does not call the manageShares authorization policy before listing its recipients. When account sharing is enabled, an authenticated user can call GET /api/v1/twofaccounts/{victimId}/recipients for accounts owned by other users, enumerate registered user IDs and display names, test exact email addresses with filter[nameOrEmail], and inspect each account's sharing relationships. This issue is fixed in version 8.0.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

