Varnish 2.0.6 zapisuje do pliku logów dane z żądań HTTP bez usuwania znaków niedrukowalnych, w tym sekwencji sterujących terminala. Może to umożliwić atakującemu manipulację tytułem okna terminala lub potencjalnie wykonanie poleceń przez administratora przeglądającego log.
▸ Pokaż oryginał (EN)
Varnish 2.0.6 writes data to a log file without sanitizing non-printable characters, which might allow remote attackers to modify a window's title, or possibly execute arbitrary commands or overwrite files, via an HTTP request containing an escape sequence for a terminal emulator. NOTE: the vendor disputes the significance of this report, stating that "This is not a security problem in Varnish or any other piece of software which writes a logfile. The real problem is the mistaken belief that you can cat(1) a random logfile to your terminal safely.
Atakujący wysyła żądanie HTTP zawierające sekwencje escape interpretowane przez emulatory terminala (np. VT100/ANSI). Varnish zapisuje te dane do logu bez ich sanityzacji. Gdy administrator wyświetla plik logów w terminalu (np. poleceniem cat), sekwencje sterujące mogą zostać zinterpretowane przez emulator terminala. W efekcie możliwa jest zmiana tytułu okna, a w skrajnych przypadkach próba wykonania poleceń lub nadpisania plików.
Atakujący może manipulować wyświetlaniem terminala administratora przeglądającego logi, a w sprzyjających warunkach potencjalnie doprowadzić do wykonania arbitralnych poleceń lub nadpisania plików. Vendor kwestionuje krytyczność problemu, wskazując, że odpowiedzialność leży po stronie bezpiecznego wyświetlania plików logów.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Jako obejście należy unikać bezpośredniego wyświetlania plików logów poleceniem cat w terminalu — zamiast tego używać narzędzi filtrujących znaki niedrukowalne (np. cat -v, less -r lub dedykowanych narzędzi do analizy logów).
Varnish w wersji 2.0.6
Vendor (Varnish/Linpro) oficjalnie zakwestionował wagę podatności, stwierdzając że problem leży po stronie użytkownika wyświetlającego logi w terminalu, a nie po stronie samego oprogramowania. Pomimo oceny CVSS 9.8, praktyczna exploitowalność jest ograniczona i wymaga interakcji administratora z plikiem logów.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HVarnish.projects.linpro Varnish
APPVarnish.Projects.Linpro2.0.6