veilletech.fr
18 sept.

Source · 31 jours de veille

DEV Community

Ce qui a été retenu de cette source, et sur quels thèmes. Chaque fiche est une synthèse originale et renvoie à l'article d'origine.

16fiches
11jours sur 31
37min de lecture
Sécurité · PHP & CMS · IA & LLM · Web & Front · Cloud & Ops · Données · Outils & méthode · Langages & OSthèmes

NocoBase met à jour par clé, pas par filtre

Sur NocoBase 2.2.7, une mise à jour conditionnelle exécute un SELECT avec le filtre, collecte les clés primaires, puis émet les UPDATE sur ces clés — la condition n'atteint jamais l'instruction de mise à jour. Une ligne qui cesse de remplir la condition pendant l'opération est modifiée quand même : cinq fois sur cinq sur un test de 10 001 lignes. Le signalement dort sur le forum officiel depuis le 4 septembre.

13 sept.3 min

POSTGRES

Safari rend un PNG quand vous demandez du WebP

Sur Safari, `canvas.toBlob(cb, 'image/webp')` ne lève pas d'erreur : la spécification HTML impose de retomber sur `image/png` quand le type demandé n'est pas supporté. On livre donc un PNG portant l'extension `.webp`, sans qu'aucun signal ne le dise. Le reste de la chaîne de conversion côté client accumule le même genre de défaillances muettes.

7 sept.3 min

FRONT

Redémarrer Linux sans repasser par le firmware

`systemctl soft-reboot` relance tout l'espace utilisateur en gardant le noyau en place : ni firmware, ni bootloader, ni initrd. Disponible depuis systemd 254, il couvre le cas fréquent d'une mise à jour de paquets qui n'a pas touché au noyau, et ramène l'interruption à un redémarrage du gestionnaire de services.

7 sept.3 min

LINUX

Le démon qui tourne et ne signe rien

Post-mortem d'un relais de courrier dont Gmail rejetait tout : pas d'enregistrement SPF valide (seulement un vieux SenderID), un PTR dont la résolution directe ne revenait pas sur l'IP d'envoi, et un OpenDKIM qui ne signait rien sans écrire la moindre ligne de journal. La cause finale tenait en un mot de configuration : refile: au lieu de file:.

6 sept.3 min

DEVOPS

Chrome traduit, React démonte tout

Chrome ne traduit pas un nœud de texte, il le remplace par un wrapper <font> et détache l'original — que la fibre React continue de référencer. D'où le NotFoundError sur removeChild, et surtout un gel silencieux quand React écrit dans un nœud qui n'est plus dans le document. Mesures reproductibles à l'appui (Chrome 151, relevés du 02/09/2026), et un garde-fou populaire qui aggrave le problème.

4 sept.2 min

FRONT

559 CLAUDE.md : 63 % ne sont pas des règles

Un corpus de 559 fichiers de règles d'agents publics montre que 62,9 % de leur contenu n'est pas une directive mais de la documentation, et que 56,5 % des vraies règles ne sont vérifiables par aucun outil. La proportion n'a bougé que de 2,5 points entre 40 et 559 fichiers.

2 sept.2 min

MESURE

@fastify/jwt : la clé globale écrase la vôtre

Dans @fastify/jwt avant la 10.2.2, la clé passée à request.jwtVerify({ key }) est écrasée par le secret configuré globalement sur le plugin. Une route qui exigeait une clé de vérification distincte accepte donc les jetons signés avec la clé globale. NVD note la faille 8.1 HIGH.

31 août1 min

SÉCURITÉ

Accelerate : un index de poids lit vos fichiers

Hugging Face Accelerate ne vérifie pas les chemins listés dans la table weight_map d'un index de checkpoint découpé. Un index piégé fait lire un fichier arbitraire du système, ou bloque le chargement en pointant vers un tube nommé. Toutes les versions jusqu'à 1.14.0 sont touchées et aucun correctif n'existe encore.

31 août2 min

SÉCURITÉ

Le echo qui avalait tous vos codes de sortie

Une ligne de journal du type echo "[$(date)] done (exit $?)" ne peut jamais rapporter autre chose que zéro : la substitution de commande est évaluée avant $? et écrase le code de sortie. L'auteur a passé 28 heures avec des journaux entièrement verts pendant qu'aucun de ses 171 jobs launchd ne faisait son travail.

31 août2 min

DEVOPS

MCP : « lecture seule », mais qui a vérifié ?

Dans MCP, l'annotation readOnlyHint est écrite par le serveur qu'elle est censée qualifier, et certains harnais s'en servent pour décider s'il faut demander l'accord de l'utilisateur. Airlock, publié sous licence MIT, teste les déclarations contre le comportement observé et interpose ensuite un proxy qui applique la politique côté réseau.

30 août3 min

MCP

zram et oomd : un petit VPS qui ne rame plus

Sur un VPS de 1 à 8 Go, la saturation mémoire se traduit par un thrashing qui rend la machine injoignable avant tout OOM kill. Un swap compressé en RAM (zram) et une décision d'éviction pilotée par la pression (systemd-oomd) évitent les deux, avec quatre fichiers de configuration.

28 août3 min

LINUX

SAML WordPress : moins un vaut vrai, et on entre

Deux vulnérabilités du plugin miniOrange SAML SSO pour WordPress permettent de forger une réponse SAML et d'obtenir un cookie d'administrateur. La seconde tient à une erreur PHP élémentaire : le retour -1 d'openssl_verify, évalué comme un booléen, est vrai.

25 août2 min

PHP

SSE en Go : vos délais ne couvrent pas tout

Un flux SSE est une requête qui ne se termine jamais, et les défauts d'un serveur Go la traitent comme une requête lente : en-tête Connection illégal en HTTP/2, délais coupant à 30 secondes, et blocage du reste de la page en HTTP/1.1.

24 août2 min

GO

Le découpage, décision la plus sous-estimée du RAG

Dans une chaîne RAG, le découpage des documents est traité comme un détail de configuration alors qu'il conditionne la qualité de chaque réponse : une règle coupée de sa condition produit une réponse fausse et assurée.

24 août2 min

RAG

La régression de 2x qui n'existait pas

Une équipe a failli publier une régression de 2 à 4x qui n'existait pas : le même binaire, sur la même machine, avec la même requête, donnait des résultats différents selon l'heure de la journée.

24 août2 min

MESURE

Slate : le style shadcn pour Laravel, en Blade

Slate est un kit d'interface Blade inspiré de shadcn pour Laravel : un paquet Composer, Tailwind 4, compatible Livewire, sans React ni fichiers déversés dans le projet. La version 3 est en alpha.

21 août2 min

LARAVEL