Żądny wiedzy? Wbijaj na Mega Sekurak Hacking Party w maju! -30% z kodem: majearly

Wykonanie dowolnego kodu na ekstremalnie popularnym: rubygems.org

11 października 2017, 16:08 | W biegu | 0 komentarzy

Jeśli miałeś cokolwiek do czynienia z Ruby – na pewno musiałeś spotkać się z serwisem rubygems.org:

RubyGems.org is the Ruby community’s gem hosting service. Instantly publish your gems and then install them. Use the API find out more about available gemsBecome a contributor and improve the site yourself.

Twórcy serwisu chwalą się:

16,728,878,438 DOWNLOADS & COUNTING

Robi wrażenie, prawda?

Podobnie wrażenie robi błąd, który prawdopodobnie istnieje od 2012 roku, a który przez deserializację YAML umożliwił zdalne wykonanie kodu na serwerze rubygems.org (podatne są też  wcześniejsze niż 2.6.14 wersje pakietu rubygems, mogącego pracować lokalnie).

Dla bardziej dociekliwych: problem jest w funkcji yaml.load Wygląda bezpiecznie? Nie – bezpieczna jest yaml.safe_load
Logiczne, prawda? :-)

Co ciekawe, podobny problem zlokalizowany był w tym roku w API Airbnb (wykonanie kodu na ich serwerze), czy tutaj: tym razem na celowniku Python. Temat jest ogólnie niezależny od technologii… Coś w Javie? Proszę bardzo.

Jeśli nie używasz YAML-a, to możesz czuć się bezpieczny? Różnie z tym bywa, czasem mamy do czynienia z API, które akceptuje tylko wejście JSON, ale… można go przekodować do YAML i próbować wykonać zdalny kod na serwerze. Takie rzeczy omawiamy (również w praktyce) m.in. na naszym szkoleniu z bezpieczeństwa API (mam nadzieję, że pozwolicie na jeszcze jedną reklamę tego kursu, który wygląda naprawdę na czasie).

–ms

 

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz