PHP2Shell en Node.js: waarom wij al voorbereid waren

Woensdag 21 oktober was geen dag om rustig koffie te drinken. Binnen een paar uur werden twee grote kwetsbaarheden bekendgemaakt: één in PHP en één in Node.js. Samen vormen die technieken de basis van een flink deel van de websites, webshops en apps die je dagelijks gebruikt.

Vooral het PHP-lek, inmiddels bekend als PHP2Shell, zorgde voor onrust. Een aanvaller kon op afstand code uitvoeren op een webserver, zonder in te loggen. De details lekten uit voordat er een oplossing beschikbaar was. Daardoor werden al aanvallen waargenomen terwijl iedereen nog op de update wachtte.

Verschillende Nederlandse websites, waaronder die van de Tweede Kamer en het NCSC, gingen uit voorzorg tijdelijk offline.

Diezelfde dag kondigde Node.js tien kwetsbaarheden aan, waarvan vier met een hoge ernst. Zowel PHP als Node.js brachten de benodigde updates pas later op de dag uit.

Weet je wat er in jouw app zit?

Een moderne app bestaat niet alleen uit code die je developers zelf schrijven. Onder de motorkap worden verschillende technologieën gebruikt, zoals programmeertalen, frameworks en serveromgevingen. Daarnaast maken apps gebruik van tientallen tot honderden externe bouwstenen, zoals libraries en open source-pakketten. Die noemen we dependencies.

Dat is logisch en efficiënt: je hoeft niet telkens het wiel opnieuw uit te vinden. Maar het betekent ook dat een lek in een van die onderdelen direct gevolgen kan hebben voor jouw product.

Op zo’n dag is de belangrijkste vraag daarom niet meteen: hoe lossen we dit op? De eerste vraag is: welke van onze applicaties gebruiken dit onderdeel, en welke versie draait daar?

Dat wil je weten vóórdat het nieuws uitbreekt, niet erna.

Altijd inzicht, nu geautomatiseerd en gestandaardiseerd

Bij Coffee IT hielden we al bij welke bouwstenen en versies onze projecten gebruiken. Dat inzicht hebben we nu verder geautomatiseerd en op dezelfde manier ingericht voor al onze projecten.

Daarvoor gebruiken we Renovate, een open source-tool. Elk project krijgt een eigen dependency dashboard met alle benodigde updates. We koppelen dit dashboard aan onze interne tooling. Zo hebben developers, projectmanagers en klanten hetzelfde inzicht in de technische staat van de applicatie en het onderhoud dat nodig is.

Zo werkt dat in de praktijk:

Coffee IT dependency dashboard
Dependency Dashboard

Elke vrijdagochtend een controle

Renovate controleert automatisch alle aangesloten projecten. Per bouwsteen kijkt de tool naar twee zaken:

  • Is er een nieuwere versie beschikbaar?
  • Is er een bekend beveiligingsprobleem?

Voor bekende kwetsbaarheden raadpleegt Renovate een openbare database.

Web, mobiel en backend

Of het nu gaat om een React-webapp, een app in React Native of Flutter, een native iOS- of Android-app of een backend: voor elke techniek hebben we een vaste set regels ingericht.

Daardoor werkt ieder project volgens dezelfde basisafspraken, terwijl er ruimte blijft voor technische keuzes die bij dat specifieke product horen.

Drie duidelijke sporen

We verdelen updates over drie categorieën:

  • Security: beveiligingsupdates krijgen altijd voorrang.
  • Routine: kleine onderhoudsupdates worden gebundeld.
  • Major: grote updates kunnen onderdelen breken. Die bespreken we daarom eerst maandelijks met het team.

Zo behandelen we niet iedere update hetzelfde. Een beveiligingslek vraagt om snelheid, terwijl een grote versie-upgrade eerst een technische afweging nodig heeft.

Niets gaat automatisch live

Renovate doet voorstellen, maar voert updates niet zelfstandig door. Pas nadat een developer akkoord geeft, wordt een update klaargezet. Daarna doorloopt die onze gebruikelijke tests en code review, net als iedere andere wijziging.

Automatisch doorvoeren staat bewust uit. Een update kan op papier veilig lijken en toch gevolgen hebben voor de werking van een app. Daarom houden onze developers de regie.

Eén centrale plek voor de regels

De afspraken voor updates staan op één centrale plek. Als we iets willen aanpassen, hoeven we dat maar één keer te doen in plaats van afzonderlijk voor tientallen projecten.

Dat maakt de werkwijze niet alleen beter overdraagbaar, maar voorkomt ook dat projecten ongemerkt verschillende onderhoudsregels krijgen.

AI als versneller van onze eigen processen

Dit dashboard laat zien hoe wij AI inzetten. Niet alleen in producten die we voor klanten bouwen, maar ook bij de ontwikkeling van onze eigen tooling.

Daarmee kunnen we delen van ons werk versnellen en automatiseren. Onze developers blijven verantwoordelijk voor de afwegingen en uiteindelijke keuzes. AI ondersteunt het proces, maar neemt de regie niet over.

In ons AI manifest lees je hoe we AI verantwoord inzetten.

Eerlijk over de grenzen

Een leeg overzicht betekent in die gevallen dus niet automatisch dat alles veilig is. Daarom blijft er altijd een developer meekijken en delen we ook waar het inzicht nog onvolledig is.

Dat zagen we ook bij de Node.js-update. Een aantal eerdere Node-versies ontvangt helemaal geen beveiligingsupdates meer, ook niet voor de kwetsbaarheden die deze week bekend werden. Projecten die nog op zo’n versie draaien, moeten overstappen naar een nieuwere versie — ongeacht wat een tool aangeeft.

Die projecten pakken we nu één voor één op.

Coffee IT Dependency Dashboard Repository Problems
Dependency Dashboard

Nog lang niet klaar - en dat is prima

Het dashboard draait inmiddels bij de eerste projecten. De komende tijd sluiten we steeds meer projecten aan.

Daarnaast koppelen we het dependency dashboard aan ons interne tooling-ecosysteem. Zo zien developers, projectmanagers en klanten op één centrale plek hoe de applicatie er technisch voor staat, welke dependencies verouderd zijn en waar mogelijke beveiligingsrisico’s zitten.

Kwetsbaarheden zoals die van deze week zijn geen uitzondering meer. Ze horen bij software. Het verschil zit in hoe snel je ziet dat je geraakt bent, welke afwegingen je vervolgens maakt en hoe beheerst je een update doorvoert.

Daarom zien wij onderhoud en hosting als een vast onderdeel van ieder project. Niet als iets wat je oppakt wanneer er toevallig tijd over is. Als ontwikkelaar van apps met ISO 27001- en NEN 7510-certificering vinden we dat onze verantwoordelijkheid.

Is jouw app toe aan een APK?

Je auto gaat ieder jaar naar de garage voor een APK. Waarom zou je een app niet periodiek technisch laten controleren?

Misschien twijfel je of jouw app of website geraakt is door de kwetsbaarheden van deze week. Of je weet niet precies welke onderdelen verouderd zijn en welke risico’s dat oplevert.

Met een App APK analyseren onze developers de code, zoeken ze naar kwetsbaarheden en brengen ze verouderde onderdelen in kaart. Je ontvangt een helder rapport met concrete verbeterpunten. Zo weet je waar je staat en kun je onderbouwd bepalen wat eerst moet gebeuren.

Alles over onze App APK

Liever eerst je situatie bespreken? Neem vrijblijvend contact op!

Mark Meesters

October 23, 2026

Veelgestelde vragen

Wat is PHP2Shell precies?

PHP2Shell is de naam voor twee kritieke kwetsbaarheden in PHP die op 21 oktober 2026 werden aangekondigd. Ze maakten het mogelijk om op afstand code uit te voeren op een PHP-webserver, zonder in te loggen. Later die dag verschenen updates en werd geadviseerd om direct bij te werken.

Wat was er aan de hand met Node.js?

Node.js kondigde diezelfde dag tien kwetsbaarheden aan in alle ondersteunde versies. Vier daarvan hadden een hoge ernst. Aan het einde van de dag verscheen de bijbehorende update. Eerdere versies die niet meer worden ondersteund, krijgen geen oplossing. Applicaties die daarop draaien, moeten overstappen naar een nieuwere versie.

Wat is een dependency dashboard?

Een dependency dashboard laat zien welke externe bouwstenen een applicatie gebruikt. Je ziet welke onderdelen verouderd zijn en waar bekende beveiligingsproblemen spelen. Coffee IT gebruikt hiervoor Renovate. De tool controleert aangesloten projecten wekelijks en doet voorstellen voor updates.

Worden updates bij Coffee IT automatisch doorgevoerd?

Nee. Renovate signaleert wat er bijgewerkt kan of moet worden. Een developer beoordeelt vervolgens de wijziging. Daarna doorloopt de update de gebruikelijke tests en code review.

Wat is een app apk?

Een app apk is een technische analyse van je app. We kijken onder andere naar de code, kwetsbaarheden, verouderde onderdelen, prestaties en schaalbaarheid. Je ontvangt een rapport met concrete verbeterpunten, zodat je weet waar je applicatie staat en welke stappen nodig zijn.

Gerelateerde blogs