HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

Les meilleurs longs formats de Hacker News, relus plus calmement.

6808 articles Page 317/681 Sans filtre

06:08

Carrot Disclosure: Forgejo

Après le passage de Fedora de Pagure à Forgejo, l'auteur a réalisé un audit rapide et a trouvé un grand nombre de failles de sécurité dans le code. Les problèmes identifiés incluent des SSRF, l'absence de CSP/Trusted-Types, de mauvaises pratiques cryptographiques, des erreurs d'authentification (OAuth2, OTP, gestion des sessions), des fuites d'information et des possibilités de DoS et de TOCTOU. L'auteur a réussi à enchaîner plusieurs vulnérabilités pour démontrer une exécution de code à distance, des fuites de secrets, des accès persistants à des comptes et des élévations de privilèges OAuth2, tout en notant que l'exploit RCE dépend d'options de configuration spécifiques. Plutôt que de publier systématiquement, il a envisagé la "carrot disclosure", une stratégie consistant à divulguer une preuve partiellement censurée pour pousser le fournisseur à corriger les problèmes sans fournir de détails exploitables. Il a contacté Forgejo via leur politique de sécurité et indique qu'il pourrait trouver d'autres enchaînements vulnérables ou soumettre des correctifs, mais il n'a pas encore pris de décision définitive sur la divulgation complète.

06:08

Claude.ai unavailable and elevated errors on the API

Un incident a empêché l'accès à Claude.ai et a provoqué des erreurs d'authentification sur l'API et Claude Code, affectant également Claude Console, Claude Cowork et Claude pour le gouvernement. L'équipe a commencé à enquêter à 17:41 UTC et a identifié l'origine des erreurs à 17:51 UTC. Des mesures correctives ont été appliquées pour corriger les erreurs d'authentification et rétablir les accès. L'impact a eu lieu de 17:34 à 18:52 UTC et les taux de réussite des services sont revenus à la normale, la situation restant surveillée. Le service est désormais opérationnel et l'incident est clos.

06:08

Your Terminal Is Burning Battery Like It's Mining Bitcoin

L'auteur constate une décharge rapide de la batterie sur son MacBook Air M3 alors qu'il n'utilisait qu'un terminal pour coder. Activity Monitor identifie Ghostty comme responsable avec une consommation accumulée de 3 600 sur 12 heures, contre 125 pour Brave, 99 pour Zoom et 46 pour Claude. Les terminaux GPU-accélérés rendent chaque caractère et animation via le pipeline graphique et empêchent souvent macOS d'activer l'App Nap, ce qui augmente fortement la consommation énergétique. Solutions proposées: utiliser Terminal.app qui utilise le rendu CPU et entre correctement en App Nap, ou créer dans iTerm2 un profil "Battery" désactivant le rendu GPU et le basculer manuellement ou automatiquement via un script. Ghostty n'offre pas d'option pour désactiver le rendu GPU et oblige à des compromis (minimiser la fenêtre, réduire les animations), ce qui illustre que les outils modernes peuvent privilégier la performance au détriment de l'efficacité énergétique.

06:08

Waymo in Portland

Waymo annonce son arrivée à Portland et affirme collaborer avec les autorités étatiques et municipales ainsi que des partenaires communautaires pour établir un cadre réglementaire en vue d'un déploiement. L'entreprise commence par conduire manuellement ses véhicules pour familiariser le système Waymo Driver avec les particularités des rues de la ville, y compris ses ponts et ses corridors souvent humides. Waymo met en avant son cadre rigoureux de sécurité et indique que le Waymo Driver a entraîné une réduction d'un facteur 13 des accidents avec blessures graves dans les villes où il opère, en lien avec les objectifs Vision Zero de Portland. Des responsables locaux et des organisations comme MADD ont salué le potentiel des véhicules autonomes pour améliorer la sécurité routière et prévenir la conduite sous influence. Les personnes intéressées sont invitées à s'inscrire pour recevoir des mises à jour et figurer parmi les premiers usagers lorsque le service sera disponible.

06:07

A playable DOOM MCP app

Un développeur a créé une application MCP qui lance une session jouable de DOOM inline dans des hôtes MCP compatibles comme ChatGPT et Claude, et redirige vers une URL de navigateur lorsqu'il n'y a pas de support inline. L'architecture est volontairement simple : un petit serveur MCP en TypeScript, une interface navigateur utilisant cloudflare/doom-wasm, un flux de jetons signés transmis via l'URL de lancement, et un déploiement Netlify sous chrisnager.com/doom/*. Le principal défi a été l'intégration inline face aux restrictions d'iframe, CSP et politiques d'hébergement, résolu en exécutant le canvas DOOM directement dans l'iframe de l'hôte plutôt qu'en imbriquant des pages. Le projet utilise Freedoom Phase 1 pour le contenu redistribuable, a éliminé des fonctionnalités non essentielles et a simplifié le flux autour de deux outils principaux : create_doom_session pour les hôtes inline et get_doom_launch_url en fallback. La version finale peut démarrer la même session via un modèle de jeton signé aussi bien inline que dans le navigateur, reste auto‑contenue pour éviter la dépendance à un stockage côté serveur, et vise à démontrer la faisabilité plutôt que la maximalité fonctionnelle.

06:07

Patch applies fake diffs from commit messages

GitHub fournit des patches au format mail via des URLs .patch qui peuvent être téléchargés et appliqués avec GNU patch. Si le message de commit contient un texte au format diff, GNU patch peut l'appliquer comme s'il faisait partie du patch réel, entraînant la création de fichiers non prévus par le commit. Un exemple public montre un commit qui modifie seulement readme.md tandis que le message inclut un faux diff ajoutant SHOULD_NOT_BE_HERE.md, et wget suivi de patch applique les deux. git apply et git am rejettent les chemins .git mais acceptent néanmoins des diffs injectés affectant des fichiers du répertoire de travail, alors que git cherry-pick traite les objets Git directement. Il n'est pas encore établi si la cause est GNU patch, l'export .patch ou le format de patch, et il est conseillé d'examiner attentivement les messages de commit avant d'appliquer des patches récupérés.

06:07

200 Journalists Applaud the Internet Archive's Role in Preserving Public Record

Le texte rassemble les témoignages de nombreux journalistes qui remercient l'Internet Archive pour sa préservation respectueuse de l'information et de l'histoire, notamment via la Wayback Machine. Ces témoignages expliquent que l'outil est essentiel pour lutter contre la disparition des articles (link rot), vérifier des affirmations, reconstituer des publications supprimées et soutenir des enquêtes journalistiques. Les contributeurs soulignent l'importance de l'archive pour le journalisme local et international, pour documenter la censure d'États et d'acteurs privés, et pour retrouver des sources rares ou disparues. La lettre note également que l'Internet Archive collabore avec des organisations de presse, évite le contournement des paywalls et adopte des pratiques responsables face aux enjeux liés à l'intelligence artificielle. Les signataires exhortent à défendre et soutenir l'Internet Archive afin de préserver la mémoire journalistique et l'accès public à des preuves historiques vérifiables.

06:07

GitHub Actions is the weakest link

De nombreux incidents de la chaîne d'approvisionnement observés ces dix-huit derniers mois se ramènent à des fichiers de workflow GitHub Actions et à des fonctionnalités (pull_request_target, uses: mutable, cache partagé, expansion de variables et jetons par défaut en écriture) qui, combinées, permettent l'exécution de code non fiable. Des campagnes et compromissions concrètes ont suivi ces vecteurs : spotbugs -> reviewdog -> tj-actions a permis de voler des PATs et diffuser un voleur de mémoire dans des milliers de dépôts, Ultralytics a livré un miner par empoisonnement de cache, nx a exfiltré identifiants via une injection dans le titre d'une PR, Trivy a subi une compromission puis un repositionnement de tags, et elementary-data a publié une roue malveillante après un commentaire d'issue. Les causes racines identifiées incluent l'absence de verrouillage et d'intégrité transitive des actions (pas de lockfile ni de hachages), la résolution de refs git mutables parfois tirées d'objets présents dans des forks non vérifiés, et la concentration de la confiance des registres de paquets sur le workflow CI via OIDC. GitHub a publié une feuille de route proposant des correctifs utiles (lockfile d'actions, politiques bloquant pull_request_target, secrets par workflow, pare-feu de sortie), mais ces mesures sont majoritairement optionnelles, lentes à généraliser et risquent d'être insuffisantes tant que les valeurs par défaut restent permissives. En pratique, il est recommandé aux mainteneurs d'adopter des gardes-fous (linter zizmor, épingler les SHAs, définir permissions: {}, considérer toute entrée non authentifiée comme potentiellement exécutable) et d'encourager des changements de défauts côté plateforme (jetons publics en lecture seule, interdiction d'expansion github.event.* dans run, refus de restaurer les caches sur pull_request_target) pour réduire significativement ces risques.