CVE-2026-55696
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 13 - wyżej niż 13% wszystkich znanych CVE
Streszczenie
PrivateBin to internetowy pastebin, w którym serwer nie ma wiedzy o wklejonych danych. Przed wersją 2.0.5 funkcja AttachmentViewer.setAttachment w js/privatebin.js używa getAttachmentMimeType do akceptowania typów MIME kontrolowanych przez atakującego oraz getBlobUrl do tworzenia bloba samego pochodzenia przed ustawieniem href linku Download. Gałąź sanityzacji tylko dla SVG aktualizuje tylko blob podglądu, więc załączniki text/html, image/svg, application/xhtml+xml i text/xml mogą pozostać aktywne w blobie pobierania. Na instancji z fileupload = true i osłabioną, usuniętą lub nieobecną polityką bezpieczeństwa treści, anonimowy atakujący może utworzyć taki załącznik, a ofiara, która otworzy link w nowej karcie, powoduje wykonanie wbudowanego JavaScriptu w kontekście PrivateBin. Skrypt może odczytać lokalne magazyny w zakresie pochodzenia i wysyłać żądania samego pochodzenia, w tym żądania do aplikacji współdzielonych na tej samej domenie. Problem został naprawiony w wersji 2.0.5.
Ocena ryzyka
Ryzyko wykonania skryptu w kontekście PrivateBin może prowadzić do kradzieży danych z lokalnego magazynu i nieautoryzowanych żądań do współdzielonych aplikacji, co może skutkować naruszeniem poufności i integralności danych.
Rekomendacja
Zaleca się natychmiastowe zaktualizowanie PrivateBin do wersji 2.0.5 lub nowszej, która zawiera poprawkę eliminującą tę podatność.
Inne podatności w PrivateBin
Zobacz wszystkie- CVE-2026-55891Nieznane
PrivateBin przed wersją 2.0.5 zawiera podatność w funkcji Request::getRequestUri(), która przekazuje $_SERVER['REQUEST_URI'] przez FILTER_SANITIZE_URL, nie usuwając cudzysłowów, nawiasów ostrych ani apostrofów. Kontrolowana przez atakującego wartość jest następnie wstawiana do szablonów JSON-LD bez odpowiedniego escapowania JSON, co może pozwolić na wstrzyknięcie danych do odpowiedzi application/ld+json.
- CVE-2025-64714Średnie
W PrivateBin w wersjach od 1.7.7 do przed 2.0.3 występuje nieuwierzytelnione Local File Inclusion w funkcji przełączania szablonów. Jeśli templateselection jest włączone, serwer ufa ciasteczku template i dołącza wskazany plik PHP, co może pozwolić na odczyt wrażliwych danych lub zdalne wykonanie kodu. Poprawka w wersji 2.0.3; obejściem jest ustawienie templateselection = false.
- CVE-2025-62796Średnie
PrivateBin to pastebin z zerową wiedzą serwera o danych. W wersjach od 1.7.7 do 2.0.1 występuje trwałe wstrzyknięcie HTML poprzez nieoczyszczoną nazwę załącznika (attachment_name), gdy załączniki są włączone. Atakujący może zmodyfikować attachment_name przed szyfrowaniem, aby po odszyfrowaniu wstawić dowolny HTML w pobliżu informacji o rozmiarze pliku, umożliwiając przekierowania i defacement oraz ataki phishingowe. Wykonywanie skryptów jest zazwyczaj blokowane przez zalecane CSP.
Oryginalny opis (angielski, źródło NVD)
PrivateBin is an online pastebin where the server has zero knowledge of pasted data. Prior to 2.0.5, AttachmentViewer.setAttachment in js/privatebin.js uses getAttachmentMimeType to accept attacker-controlled MIME types and uses getBlobUrl to create a same-origin blob before setting attachmentLink's href for the Download attachment link. The SVG-only sanitization branch updates only the preview blob, so text/html, image/svg, application/xhtml+xml, and text/xml attachments can remain active in the download blob. On an instance with fileupload = true and a weakened, stripped, or absent Content Security Policy, an anonymous attacker can create such an attachment, and a victim who opens the link in a new tab causes inline JavaScript to execute in the PrivateBin origin. The script can read origin-scoped local storage and issue same-origin requests, including requests to applications co-hosted on the same domain. This issue is fixed in version 2.0.5.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

