NNSA-2026-001
Sessiegegevens in rosett-ai v1.2.0 — Vastgesteld, Verholpen, Voorkomen
Op 15 april publiceerden we rosett-ai v1.2.0 op RubyGems. Drie dagen later stelde een interne veiligheidsaudit vast dat het gem-pakket AI-ontwikkelingssessielogboeken bevatte die er niet in hadden mogen zitten. We trokken v1.2.0 onmiddellijk terug en publiceerden schone vervangingen (v1.3.0, v1.3.1). In dit bericht leggen we uit wat er is gebeurd, wat de impact was en wat we hebben gedaan om herhaling te voorkomen.
Wat Er Is Gebeurd
De rosett-ai gemspec gebruikte git ls-files om te bepalen welke bestanden in de gem werden opgenomen. Ontwikkelingssessielogbestanden — gegenereerd tijdens AI-ondersteunde ontwikkeling — werden door git bijgehouden in een doc/claude-sessions/-map. Omdat ze werden bijgehouden, werden ze in de gem verpakt.
Het resultaat: v1.2.0 was 54.9 MB. Schone versies zijn 36.3 MB. Het verschil van 18.6 MB bestond uit sessiegegevens die niets te zoeken hadden in een distributiepakket.
Wat Er Is Blootgesteld
De sessiebestanden bevatten gesprekslogboeken van AI-ontwikkeling, interne projectplanningsdiscussies en technische beslissingsoverwegingen. Kortom: het soort interne werkaantekeningen dat u in de chatgeschiedenis van elk ontwikkelteam zou aantreffen.
Wat Er NIET Is Blootgesteld
We voerden geautomatiseerde referentiescanning (gitleaks + patroonherkenning) uit op elk sessiebestand. De resultaten:
- Nul referenties — geen API-sleutels, tokens of wachtwoorden
- Nul klantgegevens — rosett-ai had geen externe gebruikers op het moment van release
- Nul gegevens van derden — uitsluitend interne inhoud van NeatNerds
- Geen kwetsbaarheid in de code — dit was een verpakkingsprobleem, geen beveiligingslek in de software
Wat We Hebben Gedaan
- v1.2.0 teruggetrokken van RubyGems binnen enkele uren na de ontdekking
- Schone builds gepubliceerd — v1.3.0 en v1.3.1 (elk 36.3 MB)
- De gemspec verhard met een positieve bestandstoestemlijst — alleen
lib/,bin/,conf/, licentiebestanden en documentatie worden opgenomen - Sessiegegevens toegevoegd aan .gitignore in alle projecten
- Alle sessiebestanden gescand op referenties — bevestigd schoon
Wat We Aan Het Bouwen Zijn
Dit incident legde een leemte in ons releaseproces bloot: we verifieerden codekwaliteit (tests, linting, beveiligingsaudits) maar stelden nooit de vraag "wat zit er eigenlijk in het pakket?" Op die vraag komt nu een permanent antwoord:
- Inhoudsaudit vóór release — elke release wordt vóór publicatie gecontroleerd aan de hand van een positieve toestemlijst
- CI/CD-beveiligingspijplijn — geautomatiseerde scanning op sessiegegevens, geheugenbestanden en referentiepatronen in elke pijplijn
- Beveiligingsgedragsregels — afdwingbare regels die releaseopdrachten blokkeren zonder voorafgaande inhoudsaudit
- Gem-groottecontrole — onverwachte groottetoenames leiden tot onderzoek
Deze maatregelen gelden voor alle NeatNerds-projecten, niet alleen voor rosett-ai.
Als U v1.2.0 Hebt Geïnstalleerd
Upgrade naar v1.3.1: gem update rosett-ai. Verwijder gecachte kopieën: gem cleanup rosett-ai. Er zijn geen referentiewijzigingen of configuratieaanpassingen nodig.
Een Woord Van de Oprichter
Laat me eerlijk zijn: dit is beschamend. Dit is onze eerste publieke softwarerelease, en het meesturen van sessietranscripten daarin is bepaald niet het professionele debuut waar u op hoopt. Ons releaseproces bevatte onvoldoende zorgvuldigheid bij het controleren van alles wat in die gem terechtkwam voordat we hem de deur uit stuurden.
Maar hier is het punt — dit incident is precies de reden waarom we tools zoals rosett-ai bouwen. Het toont aan waarom AI-herkomst belangrijk is, waarom transparantie belangrijk is, en waarom u zich niet kunt verschuilen achter mooie woorden als "verantwoordelijke AI" en "governancekader" zonder het werk ook daadwerkelijk te doen.
We hadden de versie stil kunnen terugtrekken en hopen dat niemand het merkte. Dat hebben we niet gedaan. Als u onze software vertrouwt voor uw infrastructuur, verdient u het te weten wanneer we een fout maken en wat we daaraan hebben gedaan. Niet een opgepoetste versie van de gebeurtenissen — de echte.
Ons beleid voor volledige openbaarmaking staat in onze SECURITY.md. Beveiligingsrapporten kunnen worden gestuurd naar security@neatnerds.be.
Advies-ID: NNSA-2026-001 | Gepubliceerd: 2026-04-18 | Ernst: Medium
← Terug naar Transparantie | Meld een beveiligingsprobleem →