1. Chaos w społeczności Ruby on Rails związany z licencją GPLv2 🤯

Dzisiejszy przegląd zaczynamy od dramy, która wprawdzie wydarzyła się jeszcze w poprzednim tygodniu, ale informacje o niej nie załapały się do poprzedniej soboty. Jest ona przykładem na to, że frywolne używanie zależności bez patrzenia na reperkusje potrafi mieć olbrzymie reperkusje.

Pamiętacie jak parę lat temu krążył wiadomość o jedenastu linijkach, które wywróciły połowę internetu? Left-Pad stał się symbolem tego, jak niestabilny jest cała nasza współczesna infrastruktura IT, oraz jak wiele elementów ruchomych posiada. Dla przypomnienia - ze względu na konfliktu o znak handlowy nazwy, NPM zmusił programistę do usunięcia pakietu `kik`. W następstwie ten postanowił wywalić z NPMa nie tylko ten konkretny pakiet, ale również pozostałe przez siebie stworzone. Jednym z nich był left-pad, który okazał się być jedną z zależności Babela, co doprowadziło do sytuacji, że nagle na całym świecie przestały budować się projekty które go używały.

Pełna historia w podlinkowanym wyżej artykule z The Register, w tle jest kilka ciekawych wątków 😉

Ten obrazek jest WIECZNIE aktualny

Ale co to ma do wspomnianej sytuacji w społeczności Ruby on Rails? Otóż sytuacja jest dość zbliżona, ale nie identyczna. Twórcy biblioteki mimemagic oskarżeni zostali przez maintainera używanego przez nich pakietu shared-mime-info o łamanie postanowień licencyjnych. shared-mime-info udostępniony jest na licencji GPLv2, tak zwanej “wirusowej” (otwartoźródłowej w bardzo agresywny sposób) licencji. Na czym polega owa wirusowość? W skrócie - jeżeli Twój projekt używa jakiegokolwiek kodu opartego o GPLv2, sam też musi być udostępniony na licencji GPLv2. W ten sposób społeczność open-source zapewnia sobie, że np. Kernel Linuxa będzie rozwijany w sposób otwarty i publiczny.

Twórca mimemagic zdecydował się usunąć te wersje swojej biblioteki, które zawierały shared-mime-info. Okazało się jednak, że popsuł w ten sposób Ruby on Rails - używa ono bowiem mimemagic. Co więcej, popularny RoR używany jest w wielu komercyjnych systemach, które pośrednio również zaczęły nie spełniać postanowień licencji GPLv2 (tranzytywnie używały bowiem kodu na tej licencji, więc zgodnie z literą licencji ich źródła również powinny zostać otwarte). Całą sytuację udało się naprawić wypuszczając mimemagic w wersji v0.4.1, aczkolwiek dam sobie rękę uciąć, że nie wszyscy dokonali przejścia. Na samym GitHubie mimemagic jest używany bezpośrednio przez 172 inne pakiety, pośrednio zaś pół miliona repozytoriów.

W międzyczasie, sam Ruby on Rails postanowił pozbyć się mimemagic w zupełności, wypuszczając nowe wersje (odpowiednio 5.2.5, 6.0.3.6 i 6.1.3.1) w oparciu o wersję biblioteki Marcel, oryginalnie wrapperze na mimemagic, z której usunięto wszystkie ślady po kontrowersyjnym pakiecie. Ciekawe jednak jak dużo na świecie jest teraz wiszącego Railsowego legacy, proszącego się o pozwy sądowe.

Morał - upewniajcie co do licencji w Waszych projektach. Są aplikacje które Wam w tym trochę mogą pomóc.

Kradzione od kolegi z pracy: napisać bota, który będzie przeglądał menedżery pakietów, automatycznie będzie sprawdzał niezgodności w licencji i zacznie zgłaszać takie pakiety. Następnie otworzyć wino i patrzeć jak świat płonie.

Źródła:

2. Kontrowersje wokół powrotu Richarda Stallmana do Free Software Foundation 🤬

Druga z dzisiejszych dram jest nieco bardziej kontrowersyjna od poprzedniej, postaram się zatem zachować odpowiednią dozę “dziennikarskiej” niezależności i spróbuje przyglądnąć się całości z boku.

Wszystkim nam by się taka lekcja przydała

Stallman odszedł z Free Software Foundation w atmosferze skandalu. W 2019 roku, w ramach prywatnej korespondencji, wstawił się on za długoletnim przyjacielem, Marvinem Minskym, zaangażowanym w głośną aferę Jeffreya Epsteina. W swojej wiadomości twierdził, że jego kolega nie miał pojęcia, że 17-latka z którą utrzymywał kontakty seksualne była do nich przymuszana, nie powinno się więc traktować go jako stręczyciela. Korespondencja wyciekła, a sam Stallman został przez opinie publiczną zmuszony do odejścia z rolii prezesa FSF, ale także z uczelni MIT.

W połowie marca tego roku, Stallman wrócił do Free Software Foundation jako członek zarządu. Organizacja pomyślała pewnie, że po dwóch latach i globalnej pandemii przejdzie to bez echa.

Naiwność 😉

Powrót Stallmana odbił się szerokim echem i mocno uderzył w całą fundację. Na dzień dzisiejszy min. Red Hat Enterprise wycofał swoje dofinansowanie. W związku z powrotem Stallmana swoją rezygnację ogłosił też pełniący rolę prezydenta fundacji Geoffrey Knauth oraz Kat Walsh, wcześniej zasiadająca w jej zarządzie.

Tak jak powiedziałem na początku, o Stallmana nie będę kruszył kopii - gość zawsze był kontrowersyjny (min. jego wypowiedzi na temat pedofilii w dobie zdobyczy dzisiejszej psychologii są wyjątkowo paskudne), podejrzewam, że odejścia ludzi z samej fundacji też nie są bez przyczyny. Ogólnie zresztą ludzie związani z Open Source mają długą historię “nieczułości społecznej”. No ale czego się spodziewać można po robaczywych komuchach, którzy twierdzą, że “dzielenie się jest dobre” i powinniśmy udostępniać sobie wzajemnie swój kod źródłowy.

Kiedyś Microsoft by mi za ostatnie zdanie zapłacił, ale nawet oni się przeprosili z Open Source.

Za to jako mój komentarz do całej sprawy zostawię książkę The Coddling of the American Mind pana Jonathana Haidta, autora kochanego przez lata Prawego Umysłu. Mam nadzieje że za to nikt mnie nie “zcanceluje” 😉

Źródła:

3. To był zły tydzień dla "bezpieczeństwa" 😱

A na koniec szybki przegląd przez problemy związane z bezpieczeństwem - w zeszłym tygodniu było ich wręcz zatrzęsienie.

Prywata: Właśnie przymierzałem się do stworzenia nowej sieci domowe i mój wybór padł na urządzenia firmy Ubiquiti. Teraz już nie jestem tego pewien, bowiem na światło dzienne wyszła informacja o potężnym wycieku danych bezpieczeństwa tej firmy, który podobno pozwalał przez długi czas na zdalne logowanie się na jej sprzęty poprzed chmurowy panel administratora. Ubiquiti zaleca zmianę hasła i włączenie Two-Factor Authentication. Jest to na pewno duży cios dla tej uznanej firmy zapewniającej profesjonalny sprzęt sieciowy.

Aczkolwiek moja wewnętrzna 🧅 patrzy na temat z nieco innej strony

Następny news z tej dziedziny nie jest atakiem, a raczej pewną luką bezpieczeństwa którą udało się znaleźć w popularnej bibliotece netmask służącej do parsowania adresów IP. Otóż okazuje się, że w błędny sposób parsuje ona poszczególne bloki.

Adresy IP zgodnie ze standardem przyjmują wartości ósemkowe - jeżeli w przeglądarce wpiszecie 0127.0.0.1, adres ten zostanie rozwiązany do 87.0.0.1. W przypadku użycie netmask adres rozwiązany zostanie po prostu do 127.0.0.1. Prowadzi to do luki bezpieczeństwa - sieci oraz systemy operacyjne traktują adresy “wewnętrzne” jako bardziej godne zaufania, a błąd w netmask pozwala ten mechanizm sprytnie oszukać. Przykłady możecie znaleźć w załączonym linku.


Na koniec zaś zostawiliśmy sobie informacje na temat ataku na repozytorium kodu PHP. Czytelnicy naszych JVMowych wtorków na pewno kojarzą fakt przenosin JDK na GitHuba w ramach Projektu Skara. Jest to długa akcja, rozpisana na wiele miesięcy. Społeczność PHP bardzo podobne działania wykonuje w trybie “pali się”. Okazało się bowiem, że w ramach ich wewnętrznego repozytorium kodu ktoś był w stanie podszyć się pod Nikitę Popova i Rasmusa Lerdorfa. Nie udało się odkryć przyczyn podatności, podejrzanym jest jednak sam serwer przetrzymujący kod. W związku z tym faktem, nastąpić ma “ekspresowa” migracja na GitHuba, który dotychczas był tylko “lustrem” dla oficjalnego git.php.net.

Twórcy języka poinformowali, że wstrzymują release PHP o dwa tygodnie, na czas śledztwa. Nie wiadomo bowiem czy podatność nie pojawiła się już wcześniej.

Śledztwo Trwa

A, o igraniu z bezpieczeństwa przez twórców Spisu Powszechnego już nie będziemy wspominać. Nie ma co kopać leżącego na deskach 😉

Źródła:


Bonus: Pionierzy prac nad kompilatorami - Jeffrey Ullman oraz Alfred Aho - otrzymali nagrodę Turinga

Nagrodę Turinga traktuje się czasem jako programistycznego Nobla. Panowie otrzymali go za pracę nad kompilatorami oraz teorią języków programowania.

Gratulujemy i dziękujemy za wszystko 🥳


I pamiętajcie, żeby spróbować Vived, jeśli chcesz otrzymywać tego typu treści spersonalizowane pod Ciebie!