Gotenberg w wersjach 8.30.1 i wcześniejszych nie sanityzuje wartości metadanych przekazywanych do ExifTool, co umożliwia niezautoryzowanemu atakującemu wstrzyknięcie arbitralnych pseudo-tagów ExifTool. Podatność pozwala na nadpisywanie plików, przenoszenie przetwarzanych plików PDF oraz tworzenie symlinków i hard linków w obrębie kontenera.
▸ Pokaż oryginał (EN)
Gotenberg is a Docker-powered stateless API for PDF files. In versions 8.30.1 and earlier, the metadata write endpoint validates metadata keys for control characters but leaves metadata values unsanitized. A newline character in a metadata value splits the ExifTool stdin line into two separate arguments, allowing injection of arbitrary ExifTool pseudo-tags such as -FileName, -Directory, -SymLink, and -HardLink. This is a bypass of the incomplete key-sanitization fix introduced in v8.30.1. An unauthenticated attacker can rename or move any PDF being processed to an arbitrary path in the container filesystem, overwrite arbitrary files, or create symlinks and hard links at arbitrary paths.
Endpoint zapisu metadanych waliduje klucze metadanych pod kątem znaków kontrolnych, jednak wartości metadanych pozostają niesanityzowane. Umieszczenie znaku nowej linii w wartości metadanych powoduje podział wejścia stdin ExifTool na dwa osobne argumenty. W ten sposób atakujący może wstrzyknąć dowolne pseudo-tagi ExifTool, takie jak -FileName, -Directory, -SymLink czy -HardLink. Jest to obejście niekompletnej poprawki walidacji kluczy wprowadzonej w wersji 8.30.1.
Niezautoryzowany atakujący może przemianować lub przenieść przetwarzany plik PDF w dowolne miejsce w systemie plików kontenera, nadpisać dowolne pliki oraz tworzyć symlinki i hard linki pod arbitralnymi ścieżkami, co może prowadzić do dalszego naruszenia integralności środowiska kontenerowego.
Należy zaktualizować Gotenberg do wersji zawierającej poprawkę dostępną w commicie 405f1069c026bb08f319fb5a44e5c67c33208318. Szczegóły dostępne w referencjach producenta (GitHub Security Advisory GHSA-q7r4-hc83-hf2q).
Gotenberg (Thecodingmachine) w wersjach 8.30.1 i wcześniejszych
Podatność stanowi bypass niekompletnej poprawki (CWE-88: argument injection) wprowadzonej w v8.30.1, która sanityzowała wyłącznie klucze metadanych, pomijając ich wartości.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:HThecodingmachine Gotenberg
APPThecodingmachine< 8.31.0
Powiązane podatności
SSRF w Gotenberg — ominięcie deny-list przez IPv6-mapped adresy
Gotenberg: command injection w endpoincie zapisu metadanych PDF via ExifTool
An incomplete-cleanup vulnerability in the Office rendering engine of Gotenberg through 6.2.1 allows an attack...
A directory traversal vulnerability in file upload function of Gotenberg through 6.2.1 allows an attacker to u...
In Gotenberg through 6.2.1, insecure permissions for tini (writable by user gotenberg) potentially allow an at...