Mentionsy

random:stream
random:stream
29.06.2025 09:52

random:short – #016 – Shellshock i opowieść o środowisku

Streszczenie analizy usterki bezpieczeństwa Shellshock.

Szukaj w treści odcinka

Znaleziono 12 wyników dla "Bash"

Co to jest ten Bash i dlaczego był wtedy wszędzie?

Bash, czyli Born Again Shell, to jest po prostu bardzo, bardzo popularna powłoka systemowa.

To była, no cóż, krytyczna podatność w Bashu, a najgorsze było to, że pozwalała na zdalne wykonanie dowolnego kodu, RCE, z uprawnieniami tego procesu, który Basza uruchomił.

I błąd polegał na tym, że po przetworzeniu tej definicji funkcji, czyli tego fragmentu w nawiasach klamrowych kiek, Bash nie przestawał czytać.

Jeśli za tym zamykającym nawiasem było coś jeszcze, jakieś dodatkowe polecenia, Bash po prostu je wykonywał, jakby były częścią skryptu.

Bash czytał definicję, a potem od razu wykonywał zrób coś złego.

Czyli Bash traktował kawałek danych konfiguracyjnych, zmienną środowiskową, jak kod do wykonania.

I jeśli skrypt CGI nawet niekoniecznie w Bashu, powiedzmy w PHP, ale który gdzieś tam w tle wywoływał Basha przez funkcję system, to Bash odczytywał tę spreparowaną zmienną,

Dane z zewnątrz trafiają do zmiennych środowiskowych, a bash je niefortunnie interpretuje.

Dopiero późniejsze łatki, które wprowadziły specjalne nazewnictwo dla eksportowanych funkcji, coś w stylu bash-funkt-nazwa-%-% uznano za solidniejsze rozwiązanie.

Pokazał, że mechanizmy, które wydają się proste i fundamentalne, jak zmienne środowiskowe, w połączeniu z czymś potężnym, ale i złożonym, jak eksport funkcji w Bashu, mogą stworzyć naprawdę poważne zagrożenie.

Szczególnie, gdy mówimy o komponencie tak wszechobecnym jak Bash.