Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

macOS - Votre réseau TCP meurt au bout de 49 jours

49 jours, les amis, c'est la durée de vie d'un Mac avant que son réseau TCP ne s'effondre dans un silence assourdissant. Il suffit d'un overflow d'entier 32 bits dans le kernel XNU, une horloge interne qui se bloque, et hop, plus moyen d'ouvrir la moindre connexion. Le ping marche toujours, parce qu'ICMP se fout du TCP, mais pour le reste... c'est reboot obligatoire ou rien.

Pour savoir combien de temps il vous reste, tapez uptime dans le Terminal. Si votre Mac sous macOS Sequoia, Sonoma ou même Ventura tourne depuis plus de 7 semaines sans redémarrage, c'est le moment d'y remédier car le bug touche toutes les versions.

C'est l'équipe de Photon qui a révélé le problème. Celui-ci est apparu sur une flotte de Macs dédiée à la télémétrie iMessage. Pile 49,7 jours après le dernier redémarrage, plusieurs machines ont lâché en même temps. Plus de nouvelles connexions réseau, mais le ping répondait toujours.

En fouillant le code du noyau XNU d'Apple (qui est open source, faut le rappeler), ils sont tombé sur une variable tcp_now, qui est un compteur 32 bits qui s'incrémente chaque milliseconde. En gros, imaginez un compteur kilométrique qui arrivé au max (environ 4,3 milliards), repasse à zéro.

Sauf que le code contient un garde fou censé empêcher l'horloge de reculer du genre "si la nouvelle valeur est plus petite que l'ancienne, on ne met pas à jour". Ça a l'air malin mais en fait, au moment du rebouclage, patatras : la nouvelle valeur (proche de zéro) est forcément plus petite que l'ancienne (proche du max), du coup le garde fou bloque tout et l'horloge TCP se fige.

Et ensuite, ça part en cascade. Les connexions fermées restent normalement en TIME_WAIT durant 30 secondes sur macOS, avant d'être nettoyées par tcp_gc() mais avec l'horloge gelée, ce nettoyage ne se fait plus. Un netstat -an | grep TIME_WAIT montre alors la catastrophe en temps réel avec des connexions mortes qui s'empilent, et finissent par bouffer les 16 384 ports éphémères (range 49152-65535 sur macOS) restant... Et au bout de quelques heures, plus rien ne passe !

Photon a laissé tourner deux machines après l'overflow pour voir. Neuf heures plus tard, l'une affichait 8 000 connexions zombies et un load average de 49. La machine ne faisait plus que scanner sa propre file d'attente de connexions mortes.

Si ça vous rappelle quelque chose, c'est normal car j'sais pas si vous vous souvenais mais Windows 95 plantait au bout du même délai pour la même raison (le fameux GetTickCount() en 32 bits). Le Boeing 787 avait également un souci similaire au bout de 51 jours sur ses switches réseau, sans oublier le bug de l'an 2038 sous Unix, qui est la version signée du même phénomène. 30 ans séparent certains de ces bugs qui pourtant appartiennent à la même catégorie !

Après flippez pas car des devs avec des Macs à plus de 600 jours d'uptime disent n'avoir jamais eu le souci. À vrai dire, le bug ne se déclencherait que si votre Mac n'a aucun trafic TCP pile au moment de l'overflow. Si votre machine cause au réseau en permanence (et c'est le cas de 99% des Macs), l'horloge passe le cap sans broncher.

Les machines les plus exposées sont en fait les serveurs CI/CD sous macOS, les Mac mini en ferme de build Jenkins ou GitHub Actions, les Mac Pro dédiés au rendu 3D avec Blender ou Cinema 4D. Le MacBook qui passe en veille tous les soirs n'est pas vraiment concerné (le compteur tcp_now ne tourne pas pendant la veille, donc le délai de 49 jours ne concerne que le temps d'activité réel).

Maintenant pour vérifier votre compte à rebours personnel, ouvrez un Terminal et collez y ceci :

boot_sec=$(sysctl kern.boottime | grep -o 'sec = [0-9]*' | head -1 | awk '{print $3}')
now_sec=$(date +%s)
remain=$(( 4294967 - (now_sec - boot_sec) ))
echo "Temps restant avant overflow : $((remain/3600))h $((remain%3600/60))m"

Apple n'a pour l'instant rien communiqué sur le sujet, ce qui n'est guère surprenant vu que c'est un peu leur spécialité quand une vulnérabilité est remontée. L'équipe de Photon dit travailler sur un moyen de contourner le problème qui éviterait de rebooter, mais en attendant, le seul fix c'est le redémarrage, qui remet le compteur à zéro... et relance le compte à rebours.

Bref, y'a rien à faire si ce n'est de vérifier votre uptime et faire éventuellement un petit reboot préventif. Tic tac, l'horloge tourne ^^.

Source

Il menace un agent du renseignement en parlant à ChatGPT, le RAID débarque chez lui

Un Strasbourgeois de 37 ans a été interpellé par le RAID après avoir formulé des menaces dans une conversation avec ChatGPT. OpenAI a signalé les propos au FBI, qui a transmis l'alerte aux autorités françaises via la plateforme Pharos.

L'affaire a été classée sans suite, mais elle montre que les échanges avec les chatbots ne sont pas vraiment privés.

Des menaces repérées par OpenAI

Les faits remontent au 3 avril. L'homme a indiqué à ChatGPT vouloir acheter un pistolet Glock pour "tuer un agent du renseignement de la CIA, du Mossad ou de la DGSI". Les propos ont été détectés par les systèmes de modération d'OpenAI, qui applique depuis 2024 une politique claire : si une conversation présente un risque de violence physique, l'entreprise peut transmettre les échanges aux forces de l'ordre.

Ici, OpenAI a alerté le FBI, qui a relayé l'information aux autorités françaises via Pharos, la plateforme de signalement en ligne gérée par l'OCLCTIC.

Le RAID intervient, aucune arme trouvée

L'intervention a eu lieu au domicile de l'homme, dans le quartier de Koenigshoffen à Strasbourg. Le RAID est entré sans incident et n'a trouvé aucune arme sur place. L'homme a été placé en garde à vue puis libéré le lendemain.

Il a expliqué être schizophrène, en rupture de traitement depuis deux ans, et avoir voulu "tester la fiabilité et la surveillance de l'intelligence artificielle" plutôt que planifier quoi que ce soit. Le parquet de Strasbourg a classé l'affaire sans suite et l'homme a été hospitalisé d'office en psychiatrie.

Vos conversations avec les chatbots ne sont pas privées

Cette affaire est un bon rappel pour tous les utilisateurs de ChatGPT et d'autres assistants IA. OpenAI le dit dans ses conditions d'utilisation : les conversations peuvent être analysées, et dans certains cas transmises à la police.

Depuis février 2024, l'entreprise a perturbé plus de 40 réseaux qui enfreignaient ses règles. Et le mécanisme est rapide : entre les propos tenus à Strasbourg et l'intervention du RAID, il s'est visiblement passé très peu de temps. La coopération entre OpenAI, le FBI et les autorités françaises a fonctionné en quasi temps réel.

C'est le genre d'histoire qui fait réfléchir. On parle quand même d'un type qui tape des menaces dans un chatbot depuis chez lui et qui voit le RAID débarquer à sa porte quelques heures plus tard. Ici l'affaire s'est bien terminée, l'homme avait visiblement besoin de soins et pas d'un Glock.

Mais ça pose une question très concrète : est-ce que tous les utilisateurs de ChatGPT, Claude ou Gemini ont bien conscience que leurs conversations sont surveillées et peuvent remonter aux autorités de n'importe quel pays ? On imagine bien que non.

Source : Vosges Matin

Des agents IA découvrent deux failles critiques dans le système d'impression de Linux et macOS

CUPS, le système d'impression utilisé par macOS et la plupart des distributions Linux, est touché par deux nouvelles vulnérabilités. Elles ont été trouvées par des agents d'intelligence artificielle, et permettent une exécution de code à distance.

Aucun correctif officiel n'est disponible pour le moment, et les preuves de concept sont déjà publiques. Les environnements professionnels sont les premiers concernés.

Quand l'IA fait le boulot des chercheurs en sécurité

C'est un ingénieur sécurité de SpaceX, Asim Manizada, qui a publié les détails de ces deux failles. Le plus surprenant, c'est qu'il ne les a pas trouvées tout seul. Il a utilisé des agents IA pour analyser le code de CUPS et débusquer les problèmes.

Son travail s'inspire des recherches de Simone Margaritelli, qui avait déjà montré en 2024 comment enchaîner plusieurs failles CUPS pour exécuter du code à distance sur des machines Linux.

Les deux vulnérabilités portent les références CVE-2026-34980 et CVE-2026-34990. Elles touchent CUPS 2.4.16 et peuvent être combinées pour un résultat assez redoutable.

Deux failles qui se complètent

La première faille permet à un attaquant d'envoyer une tâche d'impression sur une file PostScript partagée, sans aucune authentification.

CUPS accepte par défaut les requêtes anonymes sur les files partagées, et un mécanisme d'échappement de caractères permet d'injecter du code qui sera exécuté en tant qu'utilisateur "lp". En pratique, un attaquant peut forcer le serveur à lancer un programme de son choix.

La seconde faille concerne l'authentification du démon cupsd. Un utilisateur local sans privilège peut tromper le service pour qu'il s'authentifie auprès d'un faux serveur IPP contrôlé par l'attaquant.

Le jeton récupéré permet alors d'écraser n'importe quel fichier avec les droits root. Combinées, les deux failles donnent à un attaquant distant et non authentifié la possibilité d' écraser des fichiers système en tant que root.

Pas de patch, mais des correctifs dans les tuyaux

Pour le moment, aucune mise à jour officielle de CUPS n'a été publiée. Michael Sweet, le créateur et mainteneur du projet, a mis en ligne des correctifs sur GitHub, mais il n'y a pas encore de version patchée à télécharger.

Manizada prévient que ces failles seront faciles à reproduire, vu que les preuves de concept sont publiques et que les modèles de langage actuels peuvent transformer un rapport technique en exploit fonctionnel en quelques minutes.

Côté impact, CUPS est le système d'impression par défaut de macOS et de la quasi-totalité des distributions Linux. Pour être vulnérable, il faut que le serveur CUPS soit accessible sur le réseau avec une file d'impression partagée configurée, ce qui est courant dans les environnements professionnels.

C'est quand même un drôle de signal. D'un côté, l'IA montre qu'elle sait trouver des failles de sécurité plus vite que les humains. De l'autre, les mainteneurs open source galèrent toujours autant pour sortir les correctifs à temps. Manizada lui-même le dit : les modèles de langage peuvent convertir un simple rapport technique en code d'attaque prêt à l'emploi.

Du coup, entre la divulgation d'une faille et le premier exploit, on parle de quelques heures, pas de quelques semaines. Si vous gérez des imprimantes en réseau, le plus prudent reste de couper le partage des files CUPS en attendant le patch, ou au moins de restreindre l'accès réseau au service. Pas très pratique, mais c'est le prix à payer quand le système d'impression a vingt ans de code derrière lui.

Source : The Register

Un driver Linux contre les périphériques USB piégés

Vous vous souvenez de BadUSB ? Mais siiii, c'est ce truc dévoilé en 2014 à la Black Hat qui avait foutu la trouille à tout le monde. Ça montrait qu'un simple périphérique USB pouvait se faire passer pour un clavier et balancer des commandes à votre place. Hé bien depuis, les attaques se sont bien raffinées et c'est pourquoi un dev vient de proposer un module kernel Linux capable de détecter ces saloperies.

Enfin !

Ce module s'appelle hid-omg-detect et c'est signé Zubeyr Almaho. Le patch (déjà en v2) a été soumis le 4 avril dernier sur la LKML. Alors je pense que vous allez vous dire que c'est encore un truc qui va bloquer par défaut vos périphériques USB sauf que non, ça ne bloque rien. En fait, il surveille passivement les périphériques HID (claviers, souris...) et leur attribue un score de suspicion basé sur trois critères.

D'abord, l'entropie des frappes clavier. Un humain tape de manière irrégulière, avec des pauses, des hésitations, des fautes (perso je fais au moins 3 fautes de frappe par phrase ^^). Un câble trafiqué, lui, balance ses commandes avec une régularité de métronome, genre 500 caractères en 2 secondes sans une seule erreur. Ensuite, y'a la latence entre le branchement et la première frappe. Si votre "clavier" commence à taper immédiatement après avoir été branché... y'a comme un souci. Et enfin, le fingerprinting des descripteurs USB pour repérer les vendor/product IDs suspects ou les anomalies dans les descripteurs HID.

Pas con hein ? Et si le score dépasse un certain seuil (configurable), hop, le module balance un warning dans dmesg et vous oriente vers USBGuard pour bloquer le périphérique. Parce que hid-omg-detect ne touche à rien lui-même. Il sonne juste l'alarme, et c'est à vous d'agir !

Mais alors pourquoi lancer ça maintenant ?

Hé bien parce que les outils d'attaque USB sont devenus légion ! Les câbles O.MG (créés par le chercheur MG et distribués via Hak5), par exemple, ça ressemble à un câble USB lambda que vous emprunteriez sans réfléchir pour charger votre téléphone. Sauf que dedans y'a un implant WiFi capable d'injecter des frappes, de les logger, de spoofer les identifiants USB, le tout contrôlable à distance. Quand je pense qu'il y a quelques mois, des chercheurs montraient qu'une simple webcam Lenovo pouvait être transformée en dispositif BadUSB ... Sa fé grav réchéflir 🤓 comme dirait les citoyens souverains ^^.

Maintenant, en attendant que le patch soit accepté, vous n'êtes pas totalement démunis non plus. Des outils comme USBRip (un script Python, pip3 install usbrip) permettent déjà de tracer les connexions et déconnexions USB en parsant /var/log/syslog. Y'a pas ce scoring d'anomalies, mais au moins vous avez un historique pour savoir qui a branché quoi et quand. Et si vous êtes vraiment parano (et franchement, vous avez raison de l'être), USBGuard peut carrément whitelister vos périphériques de confiance et bloquer tout le reste. Mais le problème d'une telle solution c'est que ça demande de maintenir une liste blanche à jour, ce qui n'est pas toujours pratique quand on branche 15 trucs par jour.

On verra si les mainteneurs du kernel l'accepte... Après ça ne protégera pas contre tous les scénarios non plus. Un périphérique qui attend 30 secondes avant de commencer son injection pourrait passer sous le radar. Et si un attaquant injecte du jitter aléatoire dans ses frappes pour simuler un humain, là ce sera plus compliqué. Mais combiné avec USBGuard, ça donnera enfin une vraie ligne de défense native contre les attaques par périphériques USB piégés . Et c'est quand même mieux que de boucher ses ports au plâtre et ciment (Mais pleure pas au dessus du mortier...) !

Bref, va falloir garder un œil là-dessus.

Source

BlueHammer - Le zero-day Windows lâché par un chercheur en colère

Ce week-end, pendant qu'on se gavait d'oeufs de Pâques au Cadmium, un chercheur en sécu a balancé un zero-day Windows dans la nature... et tout ça d'après ce que j'ai compris, à cause de Microsoft qui l'a vraiment poussé à bout. L'exploit s'appelle BlueHammer et il permet à quiconque ayant un accès local sur une machine Windows 11 25H2 de passer SYSTEM. Et vous vous en doutez y'a toujours pas de patch.

Il s'agit d'une d'une escalade de privilèges locale (LPE) qui exploite une race condition de type TOCTOU (time-of-check to time-of-use), combinée avec une confusion de chemins dans le processus de mise à jour des signatures de Windows Defender. Je sais, il est trop tôt pour ces conneries mais disons que c'est le bug classique où un programme vérifie un truc, puis l'utilise, mais entre les deux quelqu'un a changé le truc en question.

En gros, l'exploit profite d'une fenêtre de temps entre le moment où Defender vérifie un fichier et celui où il l'utilise pour glisser un lien symbolique qui redirige vers la ruche SAM, le fichier C:\Windows\System32\config\SAM (là où Windows stocke les identifiants locaux). Et là, après ça devient open bar sur les hash de mots de passe de tous les comptes locaux.

Le chercheur derrière tout ça opère sous les pseudos Chaotic Eclipse et Nightmare-Eclipse et le 3 avril 2026, il a publié le code source complet sur GitHub , signé PGP, avec ce message assez salé : " I was not bluffing Microsoft, and I'm doing it again. "

Son reproche ? D'abord le MSRC (Microsoft Security Response Center) qui lui a demandé une vidéo de démonstration pour valider son rapport, et ensuite une réponse sur ce bug Windows Defender qui ne l'a visiblement pas satisfait : "I'm just really wondering what was the math behind their decision"

Will Dormann, analyste principal chez Tharros (ex-Analygence) et référence dans le milieu, a confirmé que l'exploit fonctionne, même s'il précise que l'exploitation n'est pas triviale. Une fois les privilèges obtenus, l'attaquant a les clés du royaume et peut lancer un shell avec les privilèges SYSTEM comme si c'était chez lui... Donc pas trivial, certes mais bien réel. D'ailleurs, c'est pas la première fois que Windows se fait éplucher par des chercheurs qui trouvent sans difficultés des failles d'escalade de privilèges en série.

Source : Will Dormann

Après, sous le capot, c'est quand même bien foutu. Un développeur (0xjustBen) a réimplémenté le PoC de manière modulaire et ça montre bien la mécanique : un module télécharge une vraie mise à jour Defender, un autre surveille les Volume Shadow Copies, un troisième enregistre un callback via l'API Cloud Files.

Source : Will Dormann

Et le cœur du truc joue la race condition avec un swap de lien symbolique pour lire la ruche SAM.

Notez quand même que le PoC original contient des bugs (le chercheur l'admet lui-même dans le README) et ne fonctionne pas sur Windows Server... ce qui ne veut pas dire que c'est inoffensif, attention. Et la réimplémentation de 0xjustBen, elle, n'a fonctionné que sur Windows 11 25H2, les versions 22H2, 23H2 et 24H2 n'étant pas affectées. Pas de CVE attribuée non plus pour l'instant, ce qui veut dire que Microsoft n'a même pas encore catalogué officiellement le problème.

Côté protection, c'est pas simple vu qu'il n'y a pas de correctif officiel mais comme l'attaque nécessite un accès local à la machine, ça limite pas mal les scénarios. Faut déjà être sur le poste Windows, que ce soit via un malware, du social engineering ou un accès physique. Après on sait bien qu'en entreprise, un poste partagé ou un stagiaire un peu curieux, c'est pas rare...

Premier réflexe donc : allez vérifier votre version de Windows (Paramètres > Système > À propos, ou winver dans Exécuter). Si vous n'êtes pas sur 25H2, vous n'êtes pas concerné. Sinon, vérifiez que vos comptes locaux ont des mots de passe costauds (pas "admin123"), désactivez les comptes inutilisés et gardez un œil sur les processus qui tournent avec des privilèges élevés. Côté entreprise, les solutions EDR devraient pouvoir détecter le comportement suspect (création de service temporaire, accès SAM inhabituel).

Bref, je pense que Microsoft finira bien par patcher... un jour.

Source

These Old Bike Frames Upcycled Into Armchairs Are The Coolest Thing You’ll See Today

Most upcycling projects ask you to forget what something used to be. Omri Piko Kahan’s bike frame chairs ask the opposite. The geometry is still unmistakably a bicycle frame, the head tube, the top tube, the triangulated rear triangle, all of it present and accounted for, just oriented sideways and asked to hold a person instead of propel one. Kahan, an industrial designer based in Israel, builds lounge chairs from pairs of retired frames, and the whole point is that the donor material remains fully readable, repurposed without being disguised.

Structurally, the approach is clean and considered. Each frame pair is positioned symmetrically, fork and chainstay ends touching the floor as legs, the top tube running horizontally as an armrest. A slung seat and backrest in leather or canvas complete the form. The result has the relaxed posture of a Barcelona chair and the material honesty of something that was clearly built, not styled.

Designer: Omri Piko Kahan

Bicycle frames are absurdly overbuilt for what Kahan is asking them to do. A modern aluminum road frame is engineered to survive repeated impact loads from a rider pushing 300 watts through rough tarmac, and it does that while weighing somewhere between 1,000 and 1,400 grams. The structural surplus in that kind of engineering is enormous, which is why two of them positioned as a chair frame and asked to support a seated adult is, from a load-bearing standpoint, almost comically within spec. The geometry does the rest. Bicycle frames already resolve forces through triangulated sections, and a lounge chair asks for exactly that kind of lateral and compressive stability.

What Kahan has figured out is the orientation problem. Flip a frame on its side and the existing tube angles don’t automatically produce a useful chair geometry. The fork legs and chainstay ends need to hit the floor at the right height relative to each other, the top tube needs to land at armrest height, and the whole thing needs to produce a seat rake that doesn’t pitch you forward or swallow you whole. The matched top tube angles across both frames in the Cube and Trek build suggest this took real iteration, because they align with a precision that reads as deliberate rather than lucky. Filed fillets at the junctions and a custom setback upper support holding the sling confirm someone was paying close attention to finish quality.

The two builds photographed so far, one pairing a blue Cube road frame with a Trek, another combining a GT Transeo 3.0 with what appears to be a Supreme-branded MTB frame, show how much the donor bikes drive the final character of each piece. The GT build in particular has a longer wheelbase geometry that gives the chair a wider, more reclined stance than the Cube version. Kahan is taking custom orders, with pricing worked out per commission, which makes sense given that no two donor frame combinations will produce the same structural or ergonomic outcome.

The post These Old Bike Frames Upcycled Into Armchairs Are The Coolest Thing You’ll See Today first appeared on Yanko Design.

Piratage : Google, Cloudflare et Cisco contraints de bloquer des sites pirates en France

La cour d'appel de Paris vient de confirmer que les fournisseurs de DNS alternatifs doivent bloquer l'accès aux sites de streaming et d'IPTV pirates. Google, Cloudflare et Cisco ont perdu leur appel face à Canal+.

Cinq appels rejetés d'un coup

La cour d'appel de Paris a tranché cinq affaires distinctes dans lesquelles Canal+ demandait à Google (Google Public DNS), Cloudflare (1.1.1.1) et Cisco (OpenDNS) de bloquer des centaines de noms de domaine liés à du streaming illégal. Les trois entreprises avaient fait appel des ordonnances rendues en première instance par le tribunal judiciaire de Paris.

C'est la première fois qu'une cour d'appel française valide ce type de blocage DNS en s'appuyant sur l'article L.333-10 du Code du sport, qui permet aux détenteurs de droits d'exiger le blocage de domaines en cas de piratage grave et répété.

Les arguments qui n'ont pas fonctionné

Cloudflare et Cisco avaient plaidé que leurs services avaient une fonction "neutre et passive", comparable à un annuaire qui traduit des noms de domaine en adresses IP. La cour a estimé que cette neutralité était tout simplement hors sujet : ce qui compte, c'est la capacité technique à bloquer un accès, pas la nature du service.

Google a tenté un autre angle en expliquant que le blocage DNS était inefficace puisqu'il suffit d'un VPN pour le contourner. La cour a balayé l'argument en rappelant que tout système de filtrage peut être contourné, et que ça ne le rend pas inutile pour autant.

Cisco avait aussi chiffré le coût de mise en place à 64 semaines-personne de travail. Pas suffisant non plus pour convaincre les juges.

Canal+ continue de pousser

Cette décision s'ajoute à celle obtenue contre les fournisseurs de VPN fin 2025, quand NordVPN, ExpressVPN et d'autres avaient eux aussi été contraints de bloquer des sites pirates en France.

Canal+ verrouille progressivement tous les moyens de contournement. Et la chaîne ne compte visiblement pas s'arrêter là : le blocage d'adresses IP serait déjà en test, avec un premier essai lors de Roland-Garros.

Les frais de mise en place sont à la charge de Google, Cloudflare et Cisco.

Canal+ est en train de poser des briques une par une. D'abord les FAI, puis les VPN, maintenant les DNS. On imagine bien que le blocage IP est la prochaine étape.

Côté efficacité, ça reste un jeu du chat et de la souris, mais la justice française envoie un signal clair : si un service technique peut aider à bloquer du piratage, il devra le faire. Et à ses frais, en plus.

Source : Torrent Freak

A Transforming Table-Chair That Turns Tradition into Space-Saving Intelligence

At a time when living spaces are shrinking while expectations from them continue to expand, this design presents a thoughtful response that is both rooted in tradition and aligned with contemporary needs.

Emerging from the context of rising housing pressures in Taiwan, where compact homes are increasingly becoming the norm, the project addresses a fundamental question: how can furniture adapt to limited space without compromising comfort or experience? Rather than treating furniture as static, single-purpose objects, the designer reimagines them as dynamic systems capable of transformation.

Designer: Che-Chia Hsu

At the heart of this piece lies a deep engagement with traditional Chinese woodworking techniques, particularly the precision of tenon joints. These joints move beyond being structural solutions and become expressions of calculated craftsmanship, where geometry, material behavior, and human interaction converge. The result is a construction that feels both minimal and robust, relying on accuracy instead of excess.

The furniture set is designed to integrate storage and seating within a compact footprint. A chair is concealed within the table and can be pulled out, unfolded, and expanded into a functional seat. The process is intuitive: the chair is extracted, the seat and backrest are opened, and the backrest angle is adjusted using velcro. The transformation is smooth and unobtrusive, allowing the object to shift roles effortlessly.

What distinguishes this design is its reliance on the user’s own body as part of the structural system. Instead of depending entirely on rigid supports, the chair uses the tension generated by the sitter to stabilize the backrest. This introduces a subtle interaction between user and object, where the act of sitting becomes integral to how the design performs. The experience feels efficient, responsive, and quietly intelligent.

Material choices reinforce this balance between function and experience. Lightweight pine wood panels provide durability while ensuring ease of movement. Paired with gray cotton linen fabric, the design introduces a tactile softness that enhances comfort. The fabric is breathable and visually understated, complementing the natural warmth of the wood. Together, these materials create a calm, cohesive aesthetic suited to contemporary interiors.

The development of the project reflects a layered and rigorous process. The designer began by studying traditional joinery techniques through literature, followed by hands-on training under a woodcraft master. This immersion enabled a deeper understanding of the craft beyond theory. Building on this foundation, the designer explored ways to translate these techniques into a modern, functional context through research and experimentation.

What emerges is a design that treats constraint as a starting point rather than a limitation. The piece brings together traditional knowledge and contemporary living patterns, shaping an object that adapts, responds, and participates in everyday use. It reflects a way of designing where space, material, and human interaction are considered together, resulting in furniture that feels considered, purposeful, and in tune with the realities of modern living.

The post A Transforming Table-Chair That Turns Tradition into Space-Saving Intelligence first appeared on Yanko Design.

These Steel Chairs Are Too Big to Sit In: Walk Through Them Instead

Most public art earns its place on a pedestal and stays there. It asks you to look, maybe photograph it, and walk away. The relationship between viewer and work rarely extends beyond that brief transaction. That’s been the convention for a long time, but there’s a growing push for installations that don’t just occupy public space but actually do something within it.

Michael Jantzen has been exploring that tension for years. His Moving Furniture series applies a simple idea to ordinary chairs and tables: take each object’s form and repeat it in progressive intervals as if capturing it mid-movement, then connect those moments into a single piece. The result is something you can still sit in or set a drink on, even if it no longer looks quite built for that.

Designer: Michael Jantzen

Monumental Moving Furniture takes that same concept into architectural territory. Built from painted steel, the series consists of abstracted chair and table forms, each generated by moving the original object through space and time and locking its path into a chain of connected segments. At this scale, what started as a reference to everyday objects feels closer to a building than a piece of furniture.

The method behind each piece is consistent. A chair or table is set in motion through space and time, with each interval frozen and joined to the next. Some pieces move only part of the original form; others shift the whole thing. The result is a structure that stops belonging to any single discipline and starts reading as furniture, sculpture, and architecture at once.

Despite being too large to sit in, these sculptures aren’t purely decorative. Each is large enough to walk under and through, giving it a practical function as a pavilion and shelter. That’s not something most public art can claim. Instead of asking people to observe from a polite distance, these structures pull you in, turning a passive encounter into something more physical and immediate.

The series covers both chair forms and table forms, each treated with the same sequential abstraction. Individual pieces have also been grouped into configurations that suggest more complex structures, as if each were a building block for something larger. Painted in vivid, solid colors like white, orange, and yellow, each structure commands attention from a distance and rewards a closer look once you’re standing beneath it.

Public spaces deserve more than objects to look at. They deserve things to experience. Monumental Moving Furniture earns its place on both counts, offering structures large enough to shelter visitors while giving them something genuinely puzzling to engage with. These forms don’t demand reverence. They invite curiosity, exploration, and the kind of slow, circling attention that good public space has always been designed to encourage.

The post These Steel Chairs Are Too Big to Sit In: Walk Through Them Instead first appeared on Yanko Design.

Claude Code prend la fuite

60 Mo de source maps (ces fichiers qui permettent de remonter du code minifié à l'original) ont été oubliés dans un paquet npm. Et voilà comment Anthropic a involontairement balancé en public le code source complet de Claude Code, son outil à 2.5 milliards de dollars de revenus annuels.

Alors qu'est-ce qui s'est passé exactement ?

Hé bien hier, la version 2.1.88 du package @anthropic-ai/claude-code sur le registre npm embarquait un fichier .map de 59.8 Mo. Un truc normalement réservé au debug interne, sauf que ce fichier .map contenait les pointeurs vers les 1 900 fichiers TypeScript originaux, en clair. Chaofan Shou, un développeur chez Solayer Labs, a alors repéré la boulette et l'a partagée sur X. Le temps qu'Anthropic réagisse, le code était déjà mirroré partout sur GitHub, avec 41 500+ forks en quelques heures. Autant dire que le dentifrice ne rentrera pas dans le tube !

Pour ma part, j'avais un petit dépôt à moi assez ancien avec quelques trucs relatifs à Claude Code, qui n'avait rien à voir avec tout ça, qui s'est même retrouvé striké... Ils ratissent large avec leur DMCA donc.

Et là, c'est la fête pour les curieux comme moi parce que les entrailles de l'outil révèlent pas mal de surprises. Côté architecture, on découvre environ 40 outils internes avec gestion de permissions, un moteur de requêtes de 46 000 lignes de TypeScript, un système multi-agents capable de spawner des essaims de sous-tâches en parallèle, et un pont de communication entre le terminal et votre éditeur VS Code ou JetBrains. Le tout tourne sur Bun (pas Node.js ^^) avec Ink pour l'interface terminal. Par contre, pas de tests unitaires visibles dans le dump.

Côté mémoire, c'est plutôt bien pensé puisqu'au lieu de tout stocker bêtement dans la fenêtre de contexte du modèle, l'outil utilise un fichier texte MEMORY.md ultra-léger (genre 150 caractères par entrée) qui sert d'index de pointeurs. Les vraies données, elles, sont distribuées dans des fichiers thématiques chargés à la demande, et les transcripts bruts ne sont jamais relus entièrement, mais juste fouillés à la recherche d'identifiants précis. L'agent traite en fait sa propre mémoire comme un "hint" ce qui le force à vérifier toujours le vrai code avant d'agir. En gros, il a une mémoire sceptique, et pour moi c'est clairement le truc le plus intéressant du dump.

Y'a aussi un truc qui s'appelle KAIROS (mentionné 150 fois dans le code) qui est un genre de mode daemon autonome. En fait, pendant que vous allez chercher votre café, l'agent tourne en arrière-plan et fait ce qu'ils appellent autoDream : il consolide sa mémoire dans des fichiers JSON, vire les contradictions et transforme les observations vagues en données structurées. Comme ça, quand vous revenez devant votre écran, le contexte est nettoyé.

Et puis le code balance aussi la roadmap interne d'Anthropic (bon courage au service comm ^^). On y trouve les noms de code des modèles... Capybara pour un variant de Claude 4.6, Fennec pour Opus 4.6, et un mystérieux Numbat qui n'est pas encore sorti. D'ailleurs, les commentaires internes révèlent que Capybara v8 a un taux de fausses affirmations qui tourne autour de 30%, ce qui est une grosse régression par rapport aux 17% de la v4. Y'a même un "Undercover Mode" qui permet à l'agent de contribuer à des repos publics sans révéler d'infos internes (c'est sympa pour les projets open source).

Anthropic a confirmé la fuite : "C'était un problème de packaging lié à une erreur humaine, pas une faille de sécurité. Aucune donnée client n'a été exposée." Mouais, attention quand même, parce que le code est déjà partout et n'en repartira pas. Et même si aucun secret client n'a fuité, exposer l'architecture complète d'un agent IA à 2.5 milliards de revenus, c'est pas rien non plus.

Bon, et maintenant qu'est-ce qu'on peut en faire ? Bah pas mal de choses en fait.

Par exemple, le système de mémoire auto-correcteur est un pattern directement réutilisable pour vos propres agents IA. L'architecture "index léger + fichiers à la demande" résout élégamment le problème de la pollution de contexte qui fait halluciner les LLM sur les longues sessions. Les +40 outils internes permettent aussi de comprendre comment structurer un système de permissions granulaires dans un agent autonome . Et le concept KAIROS/autoDream, la consolidation mémoire pendant l'idle, c'est une idée qu'aucun outil open source n'implémente encore. Autant dire que les alternatives open source à Claude Code ou Codex vont monter en gamme dans les jours qui viennent. Et le code est déjà nettoyé, réécris en Rust et mis sur GitHub si vous voulez fouiller. Bon, pas sûr que le pattern autoDream soit simple à reimplémenter, mais le système de mémoire oui.

Je trouve ça assez marrant que le code proprio d'une boite qui a aspiré tout l'open source du monde voire plus, sans autorisation, pour le revendre sous la forme de temps machine / tokens, devienne lui aussi en quelque sorte "open source" sans qu'on leur demande leur avis ^^. La vie est bien faite.

Maintenant, pour les développeurs qui publient sur npm, la leçon est limpide : Vérifiez votre .npmignore et votre champ files dans package.json. Ou plutôt, lancez la commande npm pack --dry-run dans votre terminal avant chaque publish. Ça prend 2 secondes et ça vous montre exactement ce qui sera inclus dans le paquet. Ça aurait évité 60 Mo de secrets industriels qui partent en public.

Bref, un .npmignore bien configuré, ça coûte 0 euro. Alors qu'une fuite de propriété intellectuelle évaluée à 2.5 milliards... un peu plus !

Source

❌