Quicky : PHP2shell sur Docker, patcher PHP-FPM sans perdre ses modules

La licorne rose de Geekeries remplace un conteneur PHP provisoire par une image officielle validée.

Salut à tous, petite séance de maintenance imprévue avec PHP2shell sur Docker. Le 21 octobre 2026, les correctifs PHP ont été annoncés à 2pm UTC (16h en France), mais l’image docker officielle dont j’ai besoin n’était pas encore dispo. Voici la méthode suivie pour protéger Geekeries, conserver mes extensions PHP et revenir sur la base officielle dès sa disponibilité.

Les deux failles, CVE-2026-109618 et CVE-2026-109619, permettent une exécution de code à distance. L’avis officiel PHP inclut PHP-FPM et indique les versions corrigées : 8.2.35, 8.3.36, 8.4.27 et 8.5.12.

PHP2shell sur Docker : vérifier l’image, pas seulement le tag

Premier piège : le tag peut apparaître alors que la liste des images disponibles est encore vide. Pour vérifier la variante FPM utilisée ici, Docker avec son plugin Buildx suffit :

docker buildx imagetools inspect php:8.5.12-fpm-bookworm

Cette commande consulte le registre sans déployer de conteneur. Cherchez votre plateforme, par exemple linux/amd64, et son digest, l’identifiant précis de l’image. Un tag seul ne suffit pas.

En attendant, j’ai placé le site derrière une page statique de maintenance (sans PHP évidement). Puis j’ai construit une image provisoire depuis les sources officielles corrigées. Un dépannage temporaire pas une invitation à maintenir ma … Lire la suite

Build a CSIRT Second Brain with OpenCode, Obsidian, MCP, and an AbuseIPDB custom tool

CSIRT second brain: workshop introduction (French)

Bonjour à tous ! Le 1er octobre 2026, j’ai animé à Stockholm un atelier consacré au « CSIRT second brain » (ou « second cerveau » en français), pour les équipes de réponse à incident. Il s’inscrivait dans le cadre des 78e rencontres du TF-CSIRT, organisées en Suède du 29 septembre au 1er octobre (auxquelles j’ai aussi assisté 😊).

J’ai préparé cet atelier suite au meeting précédent du TF-CSIRT à Riga au printemps, où plusieurs personnes m’ont demandé de montrer comment on s’y prend au CERT pour qualifier nos incidents avec des agents. Et autant c’est « assez simple » à expliquer, autant l’implémentation réelle en prod est vite complexe à reproduire : entre le choix des LLM, les tools, les MCP, les skills et les bases de connaissances…

Mettre tout ça en musique dans un atelier suffisamment simple pour que tout le monde comprenne en une demi-journée, gratuitement, mais suffisamment complexe pour être représentatif de la réalité, c’était un beau challenge sur lequel je me suis fait des nœuds au cerveau… pour vous sortir la version la plus simple d’un agent SOC/CSIRT de qualification d’incidents.

L’idée de mon workshop est de conserver … Lire la suite

CrowdSec et Nginx Proxy Manager : protéger Docker sans image custom

Une licorne Geekeries bloque un paquet web suspect avec CrowdSec Nginx Proxy Manager devant des conteneurs Docker

Salut les Geeks ! Après avoir protégé les Basic Auth avec Fail2ban devant Nginx Proxy Manager, je voulais compléter la défense contre les scans et comportements HTTP plus larges. Le résultat est un filtrage CrowdSec pour mon Nginx Proxy Manager qui conserve l’image officielle du proxy, observe d’abord, puis bloque les décisions au firewall, y compris pour les flux Docker.

Comme vous allez le voir, ce n’est pas un WAF HTTP. CrowdSec apprend à partir de l’activité déjà vue par le proxy qui lui est transféré, puis le firewall refuse les adresses IP décidées comme malveillantes depuis les liste souscrites chez CrowdSec. C’est moins riche qu’une inspection HTTP intégrée, mais c’est une solution simple, maintenable et adaptée à une installation NPM Docker existante.

Pourquoi je n’ai pas fabriqué une image NPM avec un bouncer Nginx

La première piste semblait évidente : intégrer le bouncer CrowdSec directement dans Nginx Proxy Manager. En pratique, cela suppose l’installation de Lua ou d’OpenResty, des modules spécifiques : donc une image dérivée de NPM, un fork ou une image communautaire. Certaines recettes existantes reposent sur des images peu suivies. Pour un reverse proxy exposé sur Internet, je ne voulais ni dépendre d’une image custom, … Lire la suite

Fail2ban devant Nginx Proxy Manager : bloquer les attaques sans casser Docker

Une licorne Geekeries protège Nginx Proxy Manager avec un bouclier Fail2ban devant des requêtes rejetées

Salut les Geeks ! Après avoir placé mon VS Code Web derrière une Basic Auth, il restait un détail : un attaquant pouvait toujours essayer des mots de passe toute la journée sur la basic auth et chopper un accès root au serveur. J’ai donc configuré Fail2ban avec Nginx Proxy Manager, sans modifier l’image Docker de NPM et sans ajouter un conteneur privilégié de plus. La recette paraît courte, mais Docker cache un petit piège dans ses chaînes iptables.

Ce tutoriel part d’un Nginx Proxy Manager installé avec Docker Compose, dont le dossier /data est persistant sur l’hôte. Adaptez les chemins et l’identifiant du Proxy Host à votre installation. Surtout, gardez une seconde session SSH ouverte pendant les essais. Du coup on va dire que cet article est un Spin-off de la la série « Docker et Portainer », pour rappel

  1. Les conteneurs pour les débutants
  2. Créer une stack vsftpd mono-image
  3. Déployer une stack Docker Guacamole
  4. Docker, OpenVPN et Splunk
  5. Customiser un conteneur PHP-FPM
  6. Déployer Nextcloud avec Docker
  7. Mettre à jour Portainer et ses conteneurs
  8. Déployer Jitsi Meet avec Docker
  9. Superviser Docker avec Splunk
  10. Installer TheHive et Cortex avec Docker
  11. Installer OpenCTI avec Docker
  12. MariaDB, quand latest casse
… Lire la suite