Populært .NET-bibliotek rappet utvikleres e-poster: – Sinnssykt!

Flere advarer mot å bruke Moq, men nå lover utvikleren bak prosjektet å rydde opp.

Moq er et såkalt "mocking-bibliotek" for .NET, og med snart en halv milliard installasjoner ett av de desidert mest populære.

Nå har noen oppdaget at biblioteket fra og med versjon 4.20 inkluderte verktøyet SponsorLink, som skanner den lokale git-configen din og sender e-post-adressen din til skyen uten å spørre.

– E-posten din vil bli skrapet og sendt til utvikleren av Moq. Det er helt sinnssykt, hevder Nick Chapsas i en YouTube-video:

Laget for å få sponsorer til åpen kildekode

Det er utvikleren bak Moq, Daniel Cazzulino, som også har laget SponsorLink-biblioteket. I et blogginnlegg fra januar i år skriver han at han som vedlikeholder av åpen kildekode kjenner på kroppen hvor vanskelig det kan være å bruke mye tid på denne typen arbeid uten å få betalt for det.

Derfor laget han SponsorLink, som et verktøy som gir utviklere en påminnelse inne i kodeeditoren om å sponse prosjekter som har tatt i bruk SponsorLink. Og er du allerede sponsor, vil du få en takkemelding.

Slik ser det ut hvis et prosjekt har inkludert SponsorLink i koden. 📸: SponsorLink
Slik ser det ut hvis et prosjekt har inkludert SponsorLink i koden. 📸: SponsorLink Vis mer

Fra og med versjon 4.20 bestemte altså Cazzulino seg for å ta i bruk SponsorLink i Moq, angivelig uten å ha spurt andre om hva de syntes om det.

Reaksjonene lot ikke vente på seg.

– Dette er litt skummelt, skriver utvikleren Georg Dangle på Reddit og sammenligner det med metoder som brukes i såkalte forsyningskjedeangrep.

Mange fjernet Moq

Reddit-innlegget skapte masse debatt, og mange utviklere både på Reddit og X (tidligere Twitter) var åpenbart sjokkerte. Mange oppfordret til å rapportere SponsorLink til nuget som ondsinnet kode.

I debatten som fulgte valgte mange å fjerne Moq, ettersom de så på bruken av SponsorLink i Moq som en sikkerhetsrisiko. Andre mener det å bruke Moq med SponsorLink inkludert vil være et brudd på GDPR.

Georg Dangle meldte også inn en "issue" til Moq-repoet.

I en oppdatering i Readme-filen til SponsorLink hevder Moq-utvikleren Daniel Cazzulino at SponsorLink ikke sender utvikleres Github-epost-adresse til skyen. E-posten blir først hashet med SHA256, og så enkodet med Base62.

Det mener mange ikke er godt nok, ettersom dette er noe som gjøres uten å spørre først.

Det viser seg også at biblioteket som brukes for å hente ut utviklerens e-post-adresse er lukket kildekode og i tillegg obfuskert – altså endret så den skal være vanskelig å lese eller forstå.

Lover å fikse det

Enkelte som kommenterer hendelsen, mener det hele er en menneskelig feil. Utvikleren bak Moq ønsket å finne en smart måte å sjekke om hvorvidt en utvikler har sponset prosjektet eller ikke, og valgte en lite gjennomtenkt løsning, mener de.

En løsning som blir foreslått er at man i stedet aktivt må velge å "opte inn" via for eksempel bruk av en API-nøkkel eller lignende.

Moq-utvikleren lover uansett nå å rydde opp.

I en tweet sier han at takker de som har begynt å sponse han midt oppe i alt bråket, og at han nå jobber med å finne en bedre løsning som ikke går på bekostning av personvernet.

I en fersk pull request har Cazzulino i versjon 4.20.2 av Moq valgt å fjerne SponsorLink. Begrunnelsen er at den "brekker" restore i MacOS.

Cazzulino skriver også: "I tillegg var det potensielle personvernrelaterte problemer med hensyn til SHA256-hashingen av brukeresn e-postadresser for sponsing, så den kommer ikke tilbake inntil dette er ordnet på en god måte".