﻿﻿{"id":2863,"date":"2026-04-28T16:22:00","date_gmt":"2026-04-28T14:22:00","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/un-agent-efface-la-base-de-prod-de-pocketos-en-neuf-secondes\/"},"modified":"2026-04-28T16:22:00","modified_gmt":"2026-04-28T14:22:00","slug":"un-agent-efface-la-base-de-prod-de-pocketos-en-neuf-secondes","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/un-agent-efface-la-base-de-prod-de-pocketos-en-neuf-secondes\/","title":{"rendered":"Un agent efface la base de prod de PocketOS en neuf secondes"},"content":{"rendered":"<p>Jeremy Crane, fondateur de la startup PocketOS, a publi\u00e9 le r\u00e9cit complet de la disparition de sa base de donn\u00e9es de production.<\/p>\n<p>Le coupable ? Un agent Cursor branch\u00e9 sur Claude Opus 4.6 qui, face \u00e0 une erreur de credentials en staging, a d\u00e9cid\u00e9 tout seul de supprimer un volume Railway. Neuf secondes plus tard, la base et tous les backups stock\u00e9s sur le m\u00eame volume avaient disparu.<\/p>\n<p>L&#8217;encha\u00eenement est int\u00e9ressant. L&#8217;agent rencontre une erreur d&#8217;authentification en environnement staging. Au lieu de demander \u00e0 l&#8217;humain, il fouille dans les fichiers du projet et trouve un token API Railway dans un fichier qui n&#8217;avait rien \u00e0 voir avec la base.<\/p>\n<p>Ce token, qui a \u00e9t\u00e9 cr\u00e9\u00e9 \u00e0 l&#8217;origine pour g\u00e9rer un domaine personnalis\u00e9, avait des permissions bien trop larges et autorisait la suppression de volumes en production. L&#8217;agent appelle dans la foul\u00e9e une mutation GraphQL volumeDelete, sans confirmation, sans v\u00e9rification du tag environnement. Et paf, tout part.<\/p>\n<p>Le plus fou, c&#8217;est la confession auto-g\u00e9n\u00e9r\u00e9e de l&#8217;agent une fois remis en marche. Il admet trois fautes : il a devin\u00e9 que supprimer un volume staging resterait cantonn\u00e9 \u00e0 staging sans v\u00e9rifier, il n&#8217;a pas regard\u00e9 si l&#8217;ID du volume \u00e9tait partag\u00e9 entre environnements, et il a viol\u00e9 ses propres r\u00e8gles syst\u00e8me qui interdisaient les commandes destructrices sans demande explicite. C&#8217;est moche.<\/p>\n<p>Crane refuse quand m\u00eame de rejeter toute la responsabilit\u00e9 sur l&#8217;IA. Il pointe surtout l&#8217;architecture Railway comme principal facteur aggravant. L&#8217;API accepte des commandes de suppression sans aucune confirmation, les backups sont stock\u00e9s sur le m\u00eame volume que les donn\u00e9es primaires (donc effac\u00e9s en m\u00eame temps), et un token CLI standard a des permissions \u00e9tendues sur tous les environnements sans isolation.<\/p>\n<p>Le PDG de Railway, Jake Cooper, est lui intervenu personnellement dimanche pour restaurer les donn\u00e9es depuis une snapshot externe en moins d&#8217;une heure, et a depuis ajout\u00e9 une logique de suppression diff\u00e9r\u00e9e sur l&#8217;endpoint concern\u00e9.<\/p>\n<p>Cet histoire est un cas d&#8217;\u00e9cole pour quiconque d\u00e9ploie un agent codeur en environnement avec acc\u00e8s \u00e0 la production. Trois choses ont \u00e9chou\u00e9 en m\u00eame temps : un token API trop permissif, une plateforme cloud sans confirmation sur les actions destructrices, et surtout un agent IA pr\u00eat \u00e0 improviser face \u00e0 une erreur au lieu de s&#8217;arr\u00eater.<\/p>\n<p>Tout ce qu&#8217;il faut pour neutraliser tous les garde-fous, et croyez-moi, \u00e7a n&#8217;est pas derri\u00e8re histoire de ce genre que vous allez lire.<\/p>\n<p>Source :<br \/>\n<a href=\"https:\/\/www.theregister.com\/2026\/04\/27\/cursoropus_agent_snuffs_out_pocketos\/\">The Register<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jeremy Crane, fondateur de la startup PocketOS, a publi\u00e9 le r\u00e9cit complet de la disparition de sa base de donn\u00e9es de production. Le coupable ? Un agent Cursor branch\u00e9 sur Claude Opus 4.6 qui, face \u00e0 une erreur de credentials en staging, a d\u00e9cid\u00e9 tout seul de supprimer un volume Railway. Neuf secondes plus tard, la base et tous les backups stock\u00e9s sur le m\u00eame volume avaient disparu. L&#8217;encha\u00eenement est int\u00e9ressant. L&#8217;agent rencontre une erreur d&#8217;authentification en environnement staging. Au lieu de demander \u00e0 l&#8217;humain, il fouille dans les fichiers du projet et trouve un token API Railway dans un fichier qui n&#8217;avait rien \u00e0 voir avec la base. Ce token, qui a \u00e9t\u00e9 cr\u00e9\u00e9 \u00e0 l&#8217;origine pour g\u00e9rer un domaine personnalis\u00e9, avait des permissions bien trop larges et autorisait la suppression de volumes en production. L&#8217;agent appelle dans la foul\u00e9e une mutation GraphQL volumeDelete, sans confirmation, sans v\u00e9rification du tag environnement. Et paf, tout part. Le plus fou, c&#8217;est la confession auto-g\u00e9n\u00e9r\u00e9e de l&#8217;agent une fois remis en marche. Il admet trois fautes : il a devin\u00e9 que supprimer un volume staging resterait cantonn\u00e9 \u00e0 staging sans v\u00e9rifier, il n&#8217;a pas regard\u00e9 si l&#8217;ID du volume \u00e9tait partag\u00e9 entre environnements, et il a viol\u00e9 ses propres r\u00e8gles syst\u00e8me qui interdisaient les commandes destructrices sans demande explicite. C&#8217;est moche. Crane refuse quand m\u00eame de rejeter toute la responsabilit\u00e9 sur l&#8217;IA. Il pointe surtout l&#8217;architecture Railway comme principal facteur aggravant. L&#8217;API accepte des commandes de suppression sans aucune confirmation, les backups sont stock\u00e9s sur le m\u00eame volume que les donn\u00e9es primaires (donc effac\u00e9s en m\u00eame temps), et un token CLI standard a des permissions \u00e9tendues sur tous les environnements sans isolation. Le PDG de Railway, Jake Cooper, est lui intervenu personnellement dimanche pour restaurer les donn\u00e9es depuis une snapshot externe en moins d&#8217;une heure, et a depuis ajout\u00e9 une logique de suppression diff\u00e9r\u00e9e sur l&#8217;endpoint concern\u00e9. Cet histoire est un cas d&#8217;\u00e9cole pour quiconque d\u00e9ploie un agent codeur en environnement avec acc\u00e8s \u00e0 la production. Trois choses ont \u00e9chou\u00e9 en m\u00eame temps : un token API trop permissif, une plateforme cloud sans confirmation sur les actions destructrices, et surtout un agent IA pr\u00eat \u00e0 improviser face \u00e0 une erreur au lieu de s&#8217;arr\u00eater. Tout ce qu&#8217;il faut pour neutraliser tous les garde-fous, et croyez-moi, \u00e7a n&#8217;est pas derri\u00e8re histoire de ce genre que vous allez lire. Source : The Register<\/p>\n","protected":false},"author":1,"featured_media":2864,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-2863","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2863"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2863\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/2864"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}