CVE-2026-102354
ŚrednieCVSS 6.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
W BentoPDF do wersji 2.8.6 plik cloudflare/cors-proxy-worker.js wykonuje sprawdzenie DNS-over-HTTPS w hostnameResolvesToPrivate() oddzielnie od właściwego żądania fetch. W środowiskach bez walidacji PROXY_SECRET atakujący kontrolujący autorytatywny DNS może sfałszować nagłówek Origin i podać URL certyfikatu, OCSP, CRL lub TSA, który przechodzi kontrole ścieżki, zwracając publiczny adres podczas walidacji i prywatny podczas późniejszego fetch.
Ocena ryzyka
Atakujący może uzyskać treści odpowiedzi z endpointu, co może prowadzić do ujawnienia informacji lub SSRF. Eksploatacja wymaga precyzyjnego timingu, a redirecty i obfuskacja adresów IP są blokowane.
Rekomendacja
Zaktualizuj BentoPDF do wersji 2.8.7 lub nowszej. Upewnij się, że walidacja PROXY_SECRET jest włączona w środowisku produkcyjnym.
Inne podatności w BentoPDF
Zobacz wszystkie- CVE-2026-41653Wysokie
W BentoPDF, przed wersją 2.8.3, zidentyfikowano podatność typu cross-site scripting (XSS). Atakujący mógłby wykonać dowolny kod JavaScript w określonych okolicznościach w narzędziu Markdown do PDF.
- CVE-2026-77581Wysokie
BentoPDF w wersji 2.8.6 i wcześniejszych ma podatność w proxy CORS dla certyfikatów i znaczników czasu w cloudflare/cors-proxy-worker.js, które używa isPrivateOrReservedHost() do walidacji nazwy hosta oddzielnie od rozwiązywania DNS używanego przez fetch(targetUrl), co pozwala na rozwiązanie nazwy hosta do wewnętrznego lub zastrzeżonego miejsca po walidacji. Ścieżka podobna do certyfikatu może spełnić ALLOWED_PATH_PATTERNS, a bezpośredni klienci mogą sfałszować nagłówek Origin. Wdrożenia bez PROXY_SECRET pomijają opcjonalną kontrolę podpisu.
- CVE-2026-63630Niskie
BentoPDF to samodzielnie hostowany zestaw narzędzi PDF działający po stronie klienta. W wersji 2.8.6 i wcześniejszych funkcja deserializeWorkflow() przyjmuje kontrolę tsaUrl węzła Timestamp z importowanego JSON bez walidacji schematu i miejsca docelowego. Gdy użytkownik zaimportuje spreparowany workflow i uruchomi go na pliku PDF, funkcja timestampPdf() wysyła żądanie RFC 3161 TimeStampReq zawierające skrót SHA-256 dokumentu do punktu końcowego wybranego przez atakującego. Domyślna konfiguracja samodzielnego hostowania nie ustawia VITE_CORS_PROXY_URL, więc żądanie omija kontrole ALLOWED_TSA_HOSTS proxy i jest wysyłane bezpośrednio. Ujawniony skrót może potwierdzić, że dokument odpowiada znanemu plikowi, oraz skorelować ten sam dokument między użytkownikami bez ujawniania jego treści. Podatność naprawiono w wersji 2.8.7.
Oryginalny opis (angielski, źródło NVD)
BentoPDF is a privacy-focused PDF toolkit that runs in the browser. In versions through 2.8.6, cloudflare/cors-proxy-worker.js performs a DNS-over-HTTPS safety check in hostnameResolvesToPrivate(), as used by isValidCertificateUrl() and isValidTsaUrl(), separately from the outbound fetch(targetUrl, ...). In deployments where PROXY_SECRET validation is not enabled, a direct client that controls authoritative DNS can forge the Origin header, supply a certificate, OCSP, CRL, or TSA URL that passes the proxy's accepted path checks, return a public address during validation, and return a private or link-local address during the later fetch. The endpoint can return allowed response bodies to the attacker, but exploitation requires precise timing, redirects and IP-literal obfuscation are blocked, and network reachability limits the target. This vulnerability is fixed in 2.8.7.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

