Het verborgen risico van onbeheerde dependencies: lessen van Ingress NGINX

Op 24 maart 2026 werd kubernetes/ingress-nginx officieel met pensioen gestuurd, gebruikt in de helft van alle Kubernetes-clusters. Geen patches meer. Hetzelfde patroon speelt bij MinIO, WordPress-plugins en npm-packages. Dit zijn de waarschuwingssignalen.

Op 24 maart 2026 werd kubernetes/ingress-nginx officieel met pensioen gestuurd. Best-effort onderhoud voorbij. Geen releases meer, geen bugfixes, geen securitypatches. Nooit meer. Het project dat ruwweg de helft van alle Kubernetes-clusters van hun ingressverkeer voorzag, is klaar.

Een week eerder werd MinIO's GitHub-repository gearchiveerd. De README: "THIS REPOSITORY IS NO LONGER MAINTAINED." De objectstoragelaag waar duizenden selfhosted setups op draaiden, effectief weg tenzij je $96.000 per jaar neerlegt voor het commerciële vervolgproduct.

Twee grote infrastructuurprojecten. Zelfde kwartaal. Zelfde patroon.

TL;DR: De retirement van Ingress NGINX en het archiveren van MinIO volgen dezelfde boog: onderbezet onderhoud, genegeerde waarschuwingssignalen, dan plotselinge onbeschikbaarheid. Dit is geen Kubernetes-specifiek probleem. Bijna de helft van geaudite codebases bevat componenten zonder actieve ontwikkeling in twee jaar. Het risico geldt net zo goed voor WordPress-plugins, npm-packages en PHP-libraries. De oplossing is niet open source vermijden. Het is actief de gezondheid van je dependencies bewaken vóórdat een retirement je tot een spoedmigratie dwingt.

Inhoudsopgave

Wat er gebeurde met Ingress NGINX

Achteraf gezien was de retirement niet plotseling. De waarschuwingssignalen stapelden zich jarenlang op: het project had "only one or two people doing development work, on their own time, after work hours, and on weekends." Maintainer James Strong pinnte GitHub-issue #13002 in maart 2025, met de boodschap dat versie 1.13 waarschijnlijk de laatste minor release zou worden. Een beoogde opvolger, InGate, trok geen contributors en werd zelf ook met pensioen gestuurd.

En toen IngressNightmare. In maart 2025 onthulde Wiz Research vijf CVE's waaronder CVE-2025-1974, CVSS 9.8: unauthenticated remote code execution met volledige cluster-takeover als resultaat. 43% van de cloudomgevingen was kwetsbaar. Meer dan 6.500 clusters hadden de kwetsbare admission controller publiek op het internet staan.

Die CVE werd gepatcht. Het fundamentele designprobleem niet. Het Snippets-annotatiesysteem, waarmee willekeurige NGINX-configuratie kon worden geïnjecteerd, bleef gewoon bestaan. Het retirement-bericht verwoordde het treffend: "Yesterday's flexibility has become today's insurmountable technical debt."

Het statement van de Kubernetes Steering en Security Response Committees in januari 2026 was ongekend direct: "We cannot overstate the severity of this situation or the importance of beginning migration to alternatives." Draai je nog op ingress-nginx en zoek je een migratiepad? Ik schreef eerder een hands-on Gateway API migratiegids.

MinIO: dezelfde boog, ander ecosysteem

MinIO's traject is een schoolvoorbeeld van een open source rug-pull. De licentie ging van Apache 2.0 naar AGPLv3 in 2021. De admin-GUI werd uit de community-editie gestript begin 2025, goed voor een thread van 180 reacties op Hacker News. Docker-images en pre-built binaries stopten in oktober 2025. De repository ging in "maintenance mode" in december en werd gearchiveerd in februari 2026.

GitHub-issue #21714 vertelt het verhaal: 57 "confused"-reacties, 29 duimen omlaag, een thread die uiteindelijk op slot ging. Eén reactie vatte de stemming samen: "Bait-and-switch, good job. Goodbye."

Ik hielp recent een klant door precies deze migratie. Hun requirements waren bescheiden: S3-compatibele objectstorage voor applicatie-assets, geen petabyteschaal. We bekeken de alternatieven. Ceph was overkill voor hun setup (8–16 GB RAM per OSD, apart operations-team verwacht). SeaweedFS zag er veelbelovend uit maar was nog niet volwassen genoeg. We kozen voor Garage: lichtgewicht, geschreven in Rust, zo'n 50 MB RAM, ontworpen voor precies het soort kleine tot middelgrote selfhosted deployment dat ze nodig hadden.

De migratie werkte. Maar het had geen noodgeval hoeven zijn.

Waarom dit steeds opnieuw gebeurt

De cijfers vertellen een structureel verhaal. Tidelift's maintaineronderzoek uit 2024 laat zien dat 60% van open source-maintainers onbetaalde hobbyisten zijn en 44% is gestopt of heeft overwogen te stoppen vanwege burn-out. Betaalde maintainers voeren 55% vaker securitypraktijken uit dan onbetaalde.

Het Synopsys OSSRA 2024-rapport keek naar meer dan 1.000 commerciële codebases: 49% bevatte componenten zonder actieve ontwikkeling in meer dan twee jaar. 91% had componenten die tien of meer versies achterliepen. Die code werkt nog prima. Tot er een CVE valt en er niemand meer is om te patchen.

En als het zover is, reageert de downstream niet. Een ICSE 2025-studie over het npm-ecosysteem concludeerde dat 15% van veelgebruikte packages binnen zes jaar werd verlaten, en de meeste downstream-projecten de verlaten dependency nooit vervingen of verwijderden.

Ingress-nginx-maintainer Ricardo Katz vatte het samen: "Not having more maintainers ended up burning me out and burning James out."

Dit is niet alleen infrastructuur

Precies hetzelfde patroon speelt in WordPress. Ik schreef recent over de omvang van WordPress-pluginkwetsbaarheden: 331 nieuwe kwetsbaarheden in één week, bijna allemaal in plugins. Maar het abandonmentprobleem gaat verder. Patchstack's rapport over 2024 documenteert meer dan 1.600 plugins en thema's die uit de WordPress-repository werden verwijderd wegens ongepatche beveiligingslekken. In 33% van de gevallen was de kwetsbaarheid niet eens gefixt vóór publieke onthulling.

Het meest schrijnende voorbeeld: Eval PHP, een plugin die ruim tien jaar verlaten was. Tien jaar lang gemiddeld één download per dag. Toen begonnen aanvallers het in 2023 massaal te installeren op gecompromitteerde sites als persistent backdoor. Downloads schoten naar 7.000 per dag. WordPress sloot de plugin. Tien jaar te laat.

Of Kaswara Modern WPBakery Page Builder Addons: CVSS 10.0, ongeauthenticeerde bestandsupload met remote code execution. De ontwikkelaar reageerde nooit. Er kwam geen patch. In 2022 waren er 440.000 dagelijkse aanvalspogingen vanuit 10.000 IP-adressen, gericht op 1,6 miljoen sites.

In npm hetzelfde verhaal. event-stream (2018): een maintainer droeg eigenaarschap over aan een vreemde die malware injecteerde, 2,5 maand onontdekt. colors.js (2022): 3,3 miljard downloads, gesaboteerd door de eigen maintainer uit protest. En de XZ Utils-backdoor (2024): twee jaar geduldig infiltreren in een project met één maintainer, dat bijna SSH op het merendeel van Linux-systemen compromitteerde.

Andere ecosystemen. Zelfde structureel falen.

Hoe je een stervende dependency herkent

Drie stadia van verval, en het is de moeite waard ze uit elkaar te houden:

  • Deprecated: officieel gemarkeerd voor toekomstige verwijdering, nog wel onderhouden tijdens de overgang. Kubernetes doet dit goed: deprecated beta-API's werken minimaal 9 maanden of 3 releases door en geven machine-readable warnings.
  • Retired / end-of-life: onderhoud is gestopt. Geen patches meer. Ingress NGINX na maart 2026 is retired. MinIO's community-editie is retired.
  • Abandoned: geen aankondiging, geen formele overgang. De maintainer is gewoon gestopt met opdagen. Dit is het gevaarlijkste stadium, want je hebt het misschien niet eens door.

Praktische signalen om op te letten:

  • Commitfrequentie daalt. Niet naar nul, maar naar sporadisch. Het project lijkt nog wel actief maar kan het tempo niet bijhouden.
  • Issues stapelen zich op zonder reactie. Vooral securitygerelateerde issues.
  • Een of twee committers. Een project met één maintainer heeft 36% kans per jaar die ene contributor te verliezen.
  • Geen stichtingsbacking. CNCF, Apache en Linux Foundation-projecten hebben organisatorische verantwoording. De ironie van ingress-nginx is dat zelfs Kubernetes-gerelateerde projecten als vrijwilligershobby kunnen eindigen.
  • Licentiewijzigingen. MinIO's reis van Apache 2.0 naar AGPL naar gearchiveerd volgde een voorspelbare verschuiving in businessmodel. Een licentiewijziging betekent niet per se dat abandonment eraan komt, maar het signaleert een spanning die je in de gaten wilt houden.

Handige tools: OpenSSF Scorecard automatiseert gezondheidscontroles van projecten op 21 security- en onderhoudscriteria. Voor WordPress houden Patchstack en WPScan kwetsbaarheidsdatabases bij die onbeheerde plugins signaleren. En voor je hele stack geeft een Software Bill of Materials (SBOM) je binnen minuten inzicht of een nieuwe CVE jou raakt, in plaats van dagenlang zoeken.

De belangrijkste punten

  • De retirement van Ingress NGINX en het archiveren van MinIO zijn symptomen van hetzelfde probleem: kritieke infrastructuur onderhouden door een handvol vrijwilligers zonder duurzame financiering.
  • Het patroon herhaalt zich in elk ecosysteem. 49% van geaudite codebases bevat componenten zonder actieve ontwikkeling in meer dan twee jaar.
  • WordPress is extra kwetsbaar: meer dan 1.600 plugins werden in 2024 verwijderd uit de repository wegens beveiligingsproblemen, en verlaten plugins worden actief als wapen ingezet.
  • Weet waar je van afhankelijk bent. Een SBOM, OpenSSF Scorecard of zelfs een kwartaallijkse handmatige review van je dependencylijst is beter dan het ontdekken via een security-advisory.
  • Het doel is niet open source vermijden. Het is monitoren, net zoals je elk ander onderdeel van je infrastructuur zou monitoren.

Terugkerende server- of deploymentproblemen?

Ik help teams productie betrouwbaar maken met CI/CD, Kubernetes en cloud—zodat fixes blijven en deploys geen stress meer zijn.

Bekijk DevOps consultancy