Filament security-updates 2026: welke versie heb je nu nodig?

Filament publiceerde in 2026 advisories voor MFA-lekken, stored XSS en uploads zonder login. Welke versie je minimaal nodig hebt en hoe je het met Composer checkt.

Coding.nl
7 min leestijd
Inhoud van dit artikel
  1. Wat is er aan de hand?
  2. Welke versie heb je nu nodig?
  3. Hoe check je het met Composer?
  4. Waar let je op in je eigen Filament-code?
  5. Hoe check je of je al geraakt bent?

Filament heeft in 2026 een reeks security advisories gepubliceerd. Het gaat om lekken in multi-factor authenticatie (MFA), stored XSS en een bestandsupload die zonder login werkte. Geen van deze lekken is op zichzelf een ramp. Samen zijn ze een duidelijke reden om je Filament-versie vandaag te controleren.

Draai je een back-office, klantportaal of beheeromgeving op Filament? Dan lees je hier welke versie je minimaal nodig hebt, hoe je dat in twee commando's checkt, en waar je in je eigen code op let.

Wat is er aan de hand?

Filament is een veelgebruikt admin- en panel-framework voor Laravel. In mei, augustus en oktober 2026 publiceerde het Filament-team meerdere advisories op GitHub. Vijf daarvan hebben een CVE-nummer en springen eruit:

CVEWatErnst (CVSS 3.1)Opgelost in
CVE-2026-84306Oudere MFA-code blijft bruikbaar nadat een nieuwere is gebruiktMedium (6.5)4.12.6 / 5.7.6
CVE-2026-48167Stored XSS via ImageColumn en ImageEntryMedium (6.4)4.11.5 / 5.6.5
CVE-2026-48500Tijdelijke bestandsupload zonder login op auth-pagina'sMedium (6.5)3.3.52 / 4.11.5 / 5.6.5
CVE-2026-48505Recovery code meerdere keren bruikbaar via gelijktijdige requestsHigh (7.4)4.11.5 / 5.6.5
CVE-2026-48067Scope van AttachAction/AssociateAction niet afgedwongen bij validatieMedium (6.5)3.3.51 / 4.11.4 / 5.6.4

MFA: twee lekken in de app-codes

CVE-2026-84306 gaat over de eenmalige codes uit een authenticator-app. Dezelfde code twee keer insturen werd al geblokkeerd. Maar een andere code binnen het geldige tijdvenster werd nog geaccepteerd, ook nadat de gebruiker al met een nieuwere code was ingelogd. Heeft een aanvaller het wachtwoord én één code, dan blijft die code volgens de advisory ongeveer vier minuten bruikbaar bij standaardinstellingen. MFA via e-mail is niet geraakt.

CVE-2026-48505 is een race condition in de recovery codes. Door dezelfde recovery code gelijktijdig in te sturen, kon een aanvaller er meer dan één sessie mee openen. Dat vereist wel het wachtwoord en de recovery codes. Het speelt alleen als recovery codes aanstaan.

Let op: in augustus verscheen ook CVE-2026-77567 (High, 8.1). Daarmee kon de tweede factor van app-based MFA worden omzeild als recovery codes aanstaan. Opgelost in 4.12.0 en 5.7.0.

Stored XSS in ImageColumn en ImageEntry

CVE-2026-48167: de componenten ImageColumn (tabellen) en ImageEntry (infolists) gaven waarden uit de database ongeëscaped weer. Kan een gebruiker zelf bepalen wat er in dat veld komt, bijvoorbeeld een avatar-URL in een klantportaal, dan kon hij HTML of JavaScript planten. Die code draait dan bij iedereen die de tabel bekijkt. In een back-office betekent dat: bij je beheerders.

Upload zonder login op gastpagina's

CVE-2026-48500: Filament koppelt Livewire's WithFileUploads aan elk component waar een schema in zit. Ook aan het loginformulier, dat helemaal geen upload nodig heeft. Een aanvaller zonder account kon daardoor willekeurige bestanden in de tijdelijke uploadopslag zetten. De advisory noemt als risico: schijfruimte vol laten lopen of opslagkosten opdrijven. Dit is het enige lek uit de lijst dat ook Filament 3 raakt.

Scope-controle bij Attach en Associate

CVE-2026-48067: met recordSelectOptionsQuery() beperk je welke records een gebruiker in de Select van AttachAction of AssociateAction ziet. De validatie paste die beperking niet toe. Een gebruiker die de actie mag uitvoeren, kon de Livewire-state aanpassen en een record buiten zijn scope koppelen. In een multi-tenant portaal is dat precies het soort lek dat je niet wilt.

En in oktober nog vijf

Op 8 en 14 oktober 2026 kwamen er nog vijf advisories bij, nog zonder CVE-nummer: onder meer XSS via bestandsnamen bij FileUpload, XSS via tenant-namen in de tooltip, een MFA-omzeiling via e-mail in multi-panel-apps met botsende user-ID's, en resource-pagina's die toegang hielden na een scopewijziging. Die zijn opgelost in 4.15.0 / 5.10.0, en de tenant-tooltip in 3.3.57 / 4.15.2 / 5.10.2.

Welke versie heb je nu nodig?

Wil je alle hierboven genoemde advisories dicht hebben, dan is dit het minimum:

  • Filament 5: 5.10.2 of hoger (actueel bij schrijven: 5.11.0)
  • Filament 4: 4.15.2 of hoger (actueel: 4.16.0)
  • Filament 3: 3.3.57 of hoger (de laatste 3.x-release)

Over Filament 3: volgens het officiële supportbeleid krijgt 3.x geen bugfixes meer sinds 1 augustus 2026, maar wel security fixes tot 1 januari 2028. Filament 4 krijgt bugfixes tot 15 januari 2027 en security fixes tot 15 januari 2028. Filament 2 krijgt sinds 1 januari 2026 niets meer. Draai je nog op 2.x, dan is updaten binnen de reeks geen optie. Dan moet je migreren.

Hoe check je het met Composer?

Op je server of lokaal, in de root van je Laravel-project:

bash
composer show 'filament/*'

Dat toont de geïnstalleerde versies van alle Filament-pakketten. Ze moeten allemaal op dezelfde versie staan.

Daarna:

bash
composer audit

composer audit vergelijkt je composer.lock met de bekende security advisories en laat zien welke pakketten kwetsbaar zijn. Draai dit ook in je CI-pipeline, dan zie je het voortaan vanzelf.

Bijwerken binnen je huidige major-versie:

bash
composer update "filament/*" -W
php artisan filament:upgrade

Test daarna je panels op een staging-omgeving voordat je naar productie gaat. Een minor-update binnen dezelfde major hoort geen breaking changes te hebben, maar je eigen custom componenten kunnen anders reageren.

Waar let je op in je eigen Filament-code?

Updaten dicht de lekken in Filament zelf. Een paar zaken liggen bij jou.

1. Wie vult de data die je toont?

XSS via ImageColumn werkte omdat de waarde ongevalideerd uit de database kwam. Valideer alles wat gebruikers kunnen invoeren: URL's, bestandsnamen, tenant-namen. In een klantportaal zijn je klanten de "gebruikers" en dus de mogelijke aanvallers.

2. Waar staan je uploads?

Bestanden op een public disk, geserveerd vanaf het domein van je app, zijn een XSS-risico. Gebruik waar mogelijk een private disk of een apart domein. Gebruik preserveFilenames() alleen bij gebruikers die je vertrouwt.

3. Scopes zijn geen autorisatie

recordSelectOptionsQuery() en resource-scopes bepalen wat iemand ziet. Dwing met policies af wat iemand mag. Filament merkt bij de oktober-fix zelf op dat relation managers en widgets niet automatisch opnieuw gecontroleerd worden.

4. MFA aan, en recovery codes bewust

Zet MFA aan voor iedereen met beheerrechten. Gebruik je recovery codes, update dan zeker, want twee van de 2026-lekken (CVE-2026-48505 en CVE-2026-77567) raken juist die combinatie.

Hoe check je of je al geraakt bent?

  • Zoek in je database naar HTML of <script in velden die je in ImageColumn, ImageEntry of als tenant-naam toont.
  • Kijk in je tijdelijke uploadmap. Livewire zet tijdelijke uploads standaard in livewire-tmp/ op je default disk. Onverklaarbaar veel of grote bestanden daar kunnen wijzen op misbruik van CVE-2026-48500. Gebruik je S3, controleer dan of de lifecycle-regel voor opruimen actief is.
  • Controleer logins. Kijk in je logs of sessies bij beheerders vanaf onbekende IP-adressen kwamen, vooral rond MFA-challenges.
  • Controleer koppelingen. Bij multi-tenant apps: staan er records gekoppeld aan een tenant waar ze niet thuishoren?

Vind je iets? Isoleer, bewaar logs en roteer wachtwoorden en MFA-secrets van de betrokken accounts. Bij twijfel: zie wat te doen als je gehackt bent.

Wij bouwen en onderhouden Laravel-maatwerk, inclusief Filament-back-offices en klantportalen. Meer over hoe we Laravel-applicaties beveiligen lees je op Laravel security. Wil je dat we je Filament-installatie nalopen? Na een korte analyse krijg je een onderbouwde inschatting. Plan een gesprek.

Veelgestelde vragen

Is mijn Filament-app kwetsbaar als ik geen MFA gebruik?+

Voor de MFA-lekken niet. Maar CVE-2026-48167, CVE-2026-48500 en CVE-2026-48067 staan los van MFA. Updaten is dus hoe dan ook nodig.

Raakt dit ook Filament 3?+

Gedeeltelijk. CVE-2026-48500 en CVE-2026-48067 raken ook 3.x, net als enkele oktober-advisories. Update naar 3.3.57. De MFA-lekken gaan over de ingebouwde MFA uit Filament 4 en 5.

Welke versie is veilig?+

Op dit moment minimaal 5.10.2, 4.15.2 of 3.3.57. Er kunnen nieuwe advisories bijkomen, dus draai composer audit regelmatig.

Is de onbevoegde upload een manier om code op mijn server te krijgen?+

Volgens de advisory niet. Het risico is volgelopen schijfruimte of hogere opslagkosten. Toch: bestanden van onbekenden op je server wil je niet.

Moet ik van Filament 3 naar 5?+

Niet acuut. 3.x krijgt security fixes tot 1 januari 2028. Maar plan het wel: bugfixes zijn al gestopt, en de dependencies eronder (PHP, Laravel, Livewire) hebben hun eigen einddata.


Bronnen: GitHub security advisories van filamentphp/filament, waaronder GHSA-r3j6-gpjw-qfjr, GHSA-3fc8-8hp6-6jr4, GHSA-44wp-g8f4-f4v5, GHSA-mc5j-f6wx-h9qh en GHSA-7q3w-xqjw-g3cr; het Filament version support policy; Packagist; Livewire uploads-documentatie. Geschreven op 28 oktober 2026.

Ruthger Idema

Geschreven door Ruthger Idema

Eigenaar van Coding.nl. 15+ jaar e-commerce met Magento, Shopify en Laravel, samen met het vaste team in Emmen.

Wil je dit voor jouw shop laten uitzoeken? Plan een half uur

Een half uur via video met de mensen die het werk ook echt doen. Kies hieronder een moment dat jou past.

  • Direct met het vaste team, geen tussenlagen
  • Concrete feedback op je huidige situatie of plannen
  • Eerlijk advies, ook als het antwoord "niet doen" is
  • Indicatie van kosten en tijdlijn
Liever bellen? 0591-239 299
Beschikbaar deze week

Plan een gratis Tech Check

Vrijblijvend jouw uitdagingen bespreken

Of bel direct: 0591-239 299