← Të gjithë artikujt

OpenAI rregullon dy shpëtime nga sandbox-i i Codex të gjetura nga studiuesit

OpenAI rregullon dy shpëtime nga sandbox-i i Codex të gjetura nga studiuesit

Dy teknika të shpëtimit nga sandbox-i i Codex të zbuluara së fundmi tregojnë se si një asistent kodimi me AI mund të shtyhet jashtë hapësirës së mbrojtur ku supozohet të qëndrojë, dhe të dyja u rregulluan brenda tetë ditësh nga raportimi. Gjetjet vijnë nga Oren Yomtov i Accomplish AI, i cili raportoi të metat tek OpenAI më 12 gusht. Codex është agjenti i kodimit i OpenAI, i ofruar si mjet vijë komande dhe si aplikacion desktop, dhe si agjentët e ngjashëm nga furnizues të tjerë, është ndërtuar për të kryer veprimet e modelit brenda një sandbox-i, një zonë e rrethuar me mure që pengon kodin e pabesuar të prekë pjesën tjetër të makinës. Të dyja shpëtimet funksionojnë duke thyer atë kufi nga brenda, jo duke u thyer nga jashtë.

E meta më serioze, të cilën studiuesit e quajnë Heapjack, kthen një veprim të zakonshëm në ekzekutim kodi në distancë, që do të thotë se kodi i sulmuesit ekzekutohet në kompjuterin e vetë viktimës. Rruga është e shkurtër: hapni depon e kodit të dikujt tjetër në Codex, bëni një pyetje agjentit për atë kod, dhe personi që shkroi depon përfundon me ekzekutim komandash pa sandbox në makinën tuaj. Sipas shkrimit të Yomtov, teknika synon një komponent të quajtur node_repl, të cilin Codex Desktop e shkruan në skedarin global të konfigurimit në ~/.codex/config.toml në kohën e instalimit. Nuk ka mundësi për të zgjedhur dhe as cilësim për ta fikur, dhe sepse zëri qëndron në konfigurimin e përbashkët, njerëzit që përdorin mjetin e thjeshtë të vijës së komandës Codex trashëgojnë të njëjtin komponent pa u pyetur kurrë.

Arsyeja pse shpëtimi funksionon është një vendim dizajni brenda node_repl. Ai ekzekuton një proces të vetëm Node.js, një mjedis ekzekutimi për programe JavaScript, që mban dy kontekste të ndara ekzekutimi JavaScript. Njëri prej tyre është i besuar dhe përmban kodin e vetë OpenAI, dhe tjetri është i pabesuar dhe ekzekuton kodin e agjentit. Ana e besuar provon se është e besuar duke paraqitur një token të rastësishëm që gjenerohet i ri në çdo ekzekutim. Problemi është se të dy kontekstet qëndrojnë në të njëjtin proces dhe ndajnë të njëjtën grumbull memorie, kështu që ai token sekret është thjesht një varg që qëndron në memorie aty ku ana e pabesuar mund ta lexojë.

Kodi i pabesuar merr një pamje të grumbullit me një funksion të quajtur v8.getHeapSnapshot() dhe pastaj provon çdo varg që duket si identifikues unik universal, ose UUID. Një hamendje e gabuar kthehet me një mesazh që thotë nuk është i autorizuar. Një token i saktë i dërguar me një argument qëllimisht të keq prodhon një gabim të vërtetë validimi, që i tregon sulmuesit se tokeni është i saktë. Me tokenin në dorë, kodi i pabesuar shkruan kërkesën e vet në të njëjtin tub që konteksti i besuar përdor për të folur me një proces prindëror vendas, pa sandbox. Prindi kontrollon tokenin, sheh një të vlefshëm dhe e kryen punën. Prova e konceptit përdori komandën 'open' të sistemit për të nisur një aplikacion plotësisht jashtë pemës së proceseve të Codex. Shkrimi vëren se i njëjti akses arrin çdo Unix socket, një socket daemon Docker është objektivi i dukshëm, dhe një mjet për të redaktuar skedarin global të konfigurimit. E gjithë kjo ekzekutohet në vetëm-lexim, modaliteti më i rreptë i sandbox-it, ku agjenti nuk supozohet të mund të shkruajë asgjë fare.

E meta e dytë, Overpatch, qëndron në Codex CLI me burim të hapur. Në modalitetin workspace-write, agjenti mund të shkruajë vetëm brenda dosjes së projektit, dhe një komandë shell e drejtuar drejt dosjes home refuzohet. Studiuesit arritën që mjeti i vetë Codex për arna, apply_patch, të shkruante atje gjithsesi. Mjeti i jep akses shkrimi dosjes prindërore të çdo rruge të emërtuar në një arnë, kështu që emërtimi '/tmp' mjafton për të dhënë akses shkrimi në rrënjën e diskut. Shfrytëzimi funksional përdor një arnë me dy ndryshime: një që emërton '/tmp' dhe nuk bën asgjë të dobishme përveçse zgjeron lejen, dhe një që shton një rresht në '.zshrc' përmes një symlink në dosjen home. Hiqni ndryshimin e parë dhe shkrimi refuzohet. Mbajeni atë, dhe terminali i radhës që hap zhvilluesi ekzekuton rreshtin e sulmuesit pa sandbox rreth tij.

Të dyja të metat kanë të njëjtën formë, që është se mekanizmi i zbatimit jetonte brenda pikërisht asaj gjëje që supozohej të zbatonte. apply_patch nxirrte lejet e veta nga inputi i dhënë nga sulmuesi, dhe node_repl mbante sekretin që ndan kodin e besuar nga ai i pabesuar në të njëjtën memorie si kodi i pabesuar. Në secilin rast, sandbox-it iu tha nga brenda të linte diçka të kalonte.

Kjo klasë e të metave nuk është e re. Në korrik 2026, studiuesit në Pillar Security demonstruan të njëjtën ide në Cursor, Codex, Gemini CLI dhe Antigravity të Google, duke treguar një agjent që qëndron brenda sandbox-it të vet duke shkruar një skedar që një mjet i besuar jashtë sandbox-it ekzekuton më vonë. Duke reaguar ndaj postimit të Yomtov në X, një komentues shkroi se "Kontekstet V8 izolojnë globalët, jo memorien, kështu që sandbox-i ishte në të vërtetë një premtim që grumbulli nuk e pranoi kurrë." Një tjetër e përshkroi kufirin e besimit si një ndarës dhome. Fakti që komponenti node_repl është i aktivizuar si parazgjedhje gjithashtu tërhoqi vëmendjen, me një komentues që pyeste pse një token i privilegjuar ishte i arritshëm nga JavaScript i pabesuar fare.

OpenAI rregulloi Heapjack në Codex Desktop build 26.818.21641 dhe Overpatch në Codex CLI 0.149.0, sipas Accomplish. Përdoruesit duhet të përditësojnë në ato versione ose më të reja. Yomtov vlerësoi OpenAI për zgjidhjen e të dyja çështjeve brenda tetë ditësh nga raportimi i tij. BleepingComputer tha se kontaktoi OpenAI për koment përpara publikimit.

Për ekipe që duan ndihmë për të rishikuar se si janë konfiguruar mjetet e zhvilluesve dhe cloud në organizatën e tyre, AEU-I ofron shërbime IT, infrastrukture dhe konsulence me sigurinë në radhë të parë.

Disponueshëm edhe në: EnglishDeutschItaliano