Abas ievainojamības OpenAI tika ziņotas 12. augustā un novērstas astoņu dienu laikā, norāda Accomplish AI pārstāvis Orens Jomtovs. Nopietnāko trūkumu pētnieki nodēvējuši par Heapjack. Tas ļauj panākt attālinātu komandu izpildi, ja Codex tiek atvērts kāda cita izstrādātāja repozitorijs un aģentam tiek uzdots jautājums par tā kodu. Šādā gadījumā repozitorija autors var iegūt nesandboxētu piekļuvi lietotāja datoram.
Codex ir OpenAI kodēšanas aģents, kas pieejams gan komandrindas rīka, gan darbvirsmas lietotnes veidā. Tāpat kā līdzīgi aģenti, tas modeļa darbības izpilda smilškastē, lai neuzticams kods nevarētu piekļūt pārējai sistēmai. Abas atklātās ievainojamības šo robežu pārvarēja no pašas sistēmas iekšienes.
Heapjack izmanto kopīgu atmiņu
Heapjack uzbrukums vērsts pret komponenti node_repl, ko Codex Desktop instalēšanas laikā ieraksta globālajā failā ~/.codex/config.toml. Lietotājam nav jāaktivizē šī funkcija, un to nav iespējams izslēgt ar iestatījumu. Tā kā ieraksts atrodas koplietotajā konfigurācijā, to bez atsevišķa brīdinājuma pārmanto arī parastie Codex CLI lietotāji.
node_repl izmanto vienu Node.js procesu ar diviem atsevišķiem JavaScript izpildes kontekstiem. Viens ir uzticams un satur OpenAI kodu, bet otrs ir neuzticams un izpilda aģenta kodu. Uzticamais konteksts savu statusu apstiprina ar katrā palaišanas reizē no jauna ģenerētu nejaušu pilnvaru.
Problēma ir tā, ka abi konteksti atrodas vienā Node procesā un izmanto vienu atmiņas kopumu, tādēļ pilnvara ir vienkārši virkne, ko var nolasīt neuzticamā puse. Uzbrukuma kods ar v8.getHeapSnapshot() izveido atmiņas momentuzņēmumu un pārbauda visas virknes, kas atgādina UUID. Nepareiza vērtība rada atbildi “not authorized”, bet pareiza pilnvara kopā ar nederīgu argumentu izraisa īstu validācijas kļūdu, tādējādi apstiprinot, ka pilnvara ir atrasta.
Pēc pilnvaras iegūšanas neuzticamais kods var ierakstīt savu pieprasījumu tajā pašā kanālā, ko uzticamais konteksts izmanto saziņai ar natīvu, nesandboxētu vecākprocesu. Vecākprocess pārbauda pilnvaru, atzīst to par derīgu un izpilda pieprasījumu. Koncepcijas demonstrācijā tika izmantota sistēmas komanda open, lai palaistu lietotni pilnībā ārpus Codex procesu koka. Šāda piekļuve sniedz iespēju sasniegt jebkuru Unix ligzdu, tostarp Docker dēmona ligzdu, kā arī rīku globālās konfigurācijas rediģēšanai.
Uzbrukums darbojās pat read-only režīmā — stingrākajā Codex smilškastes iestatījumā, kur aģentam vispār nevajadzētu būt iespējai rakstīt.
Overpatch ļauj izkļūt ar ielāpu rīku
Otra ievainojamība, ko pētnieki nosaukuši par Overpatch, atrodas atvērtā koda Codex CLI. workspace-write režīmā aģents drīkst rakstīt tikai projekta mapē, bet komanda, kas mēģina piekļūt mājas mapei, tiek noraidīta. Tomēr pētniekiem izdevās panākt, ka Codex paša ielāpu rīks apply_patch šajā vietā raksta.
Rīks piešķir rakstīšanas tiesības tās mapes vecākdirektorijai, kas norādīta katrā ielāpa ceļā. Ja tiek norādīta /tmp, rīks piešķir rakstīšanas piekļuvi diska saknei. Praktiskajā ekspluatācijā tika izmantots ielāps ar divām izmaiņām: viena tikai nosauca /tmp un paplašināja atļaujas, bet otra, izmantojot simbolisko saiti uz mājas mapi, papildināja failu .zshrc.
Ja pirmā izmaiņa tiek izņemta, rakstīšana tiek atteikta. Taču kopā ar to nākamajā termināļa sesijā izstrādātāja datorā tiek palaista uzbrucēja pievienotā rinda jau ārpus smilškastes.
Abos gadījumos robežu sargāja pati apdraudētā sistēma
Abām ievainojamībām ir kopīga būtība: mehānisms, kam bija jānodrošina aizsardzība, atradās tajā pašā sistēmā, kuru tas centās ierobežot. apply_patch savas atļaujas aprēķināja, balstoties uz uzbrucēja kontrolētu ievadi, bet node_repl uzticamo un neuzticamo kodu nošķirošo noslēpumu glabāja tajā pašā atmiņā, kurā darbojās neuzticamais kods.
Abos gadījumos smilškastei no iekšienes tika likts atļaut darbību, kurai tai vajadzēja liegt piekļuvi. Šāda ievainojamību klase nav jauna. 2026. gada jūlijā Pillar Security pētnieki demonstrēja līdzīgu pieeju Cursor, Codex, Gemini CLI un Google Antigravity vidē — aģents paliek smilškastē, bet ieraksta failu, ko vēlāk palaiž uzticams rīks ārpus tās.
Reaģējot uz Jomtova ierakstu platformā X, kāds komentētājs rakstīja: “V8 konteksti izolē globālos objektus, nevis atmiņu, tāpēc smilškaste patiesībā bija solījums, kuram kaudze nepiekrita.” Cits komentētājs uzticamības robežu salīdzināja ar “telpas starpsienu”. Tika apšaubīta arī pēc noklusējuma aktivizētā darbība un jautāts, kādēļ privileģēta pilnvara vispār bija pieejama neuzticamam JavaScript kodam.
OpenAI ievainojamības novērsa
Saskaņā ar Accomplish sniegto informāciju OpenAI Heapjack novērsa Codex Desktop versijā 26.818.21641, bet Overpatch — Codex CLI versijā 0.149.0. Lietotājiem ieteikts atjaunināt programmas uz šīm vai jaunākām versijām.
Jomtovs norādīja, ka OpenAI abas problēmas novērsa astoņu dienu laikā pēc ziņojuma saņemšanas. Pirms publikācijas OpenAI tika lūgts komentēt atklājumus.
Tehnoloģijas
Tehnoloģijas
Tehnoloģijas