Vulnerabilități critice în SDK-ul x402: un API rău intenționat putea goli portofelul unui agent AI
Agenții AI care plătesc singuri pentru apeluri API devin ceva obișnuit. Un set de vulnerabilități publicate recent în SDK-urile oficiale x402 arată riscul: cu setările implicite vechi, un API ostil putea cere unui agent să plătească cu tot soldul de tokeni, iar agentul semna.
Ce s-a întâmplat
x402 este un standard deschis prin care un program, inclusiv un agent AI, poate plăti pentru o cerere HTTP fără ca un om să aprobe fiecare plată. Serverul răspunde cu 402 Payment Required și o listă de opțiuni de plată. Clientul alege una, semnează plata și retrimite cererea. Protocolul a fost creat de Coinbase și a fost cedat apoi x402 Foundation, un proiect al Linux Foundation.
Cercetătorii firmei de securitate V12 au analizat codul x402 și au făcut teste locale. Au raportat 25 de probleme, dintre care trei critice. x402 Foundation le-a corectat pe toate trei în versiunile din 18 august. Nici V12, nici fundația nu au raportat atacuri care să folosească aceste vulnerabilități.
Cele trei probleme critice:
- Nicio limită de cheltuieli în clientul implicit. Clientul accepta prima opțiune de plată oferită de server și nu limita suma. Un API rău intenționat putea transforma o cerere obișnuită într-o cerere pentru tot soldul unui token acceptat. Dacă agentul semna plățile automat și aplicația nu avea o politică de plată, agentul plătea.
- Aprobări de token acceptate ca plăți pe Solana. Facilitatorul TypeScript pentru Solana (
@x402/svm, versiunile 2.0.0–2.22.0) verifica dacă tranzacția apela un program de token permis, dar nu verifica ce instrucțiune rula. O aprobare de token nu mută bani, dar trecea ca plată validă. V12 a numit-o o ocolire completă a plății: atacatorul putea obține o resursă plătită fără să plătească, iar facilitatorul comerciantului plătea totuși taxa de tranzacție. SDK-urile Python și Go verificau deja tipul instrucțiunii. - Autentificări semnate pentru alte site-uri. Extensia Sign-In-With-X (SIWx) permite unui agent să se autentifice semnând un mesaj scurt cu portofelul. Clientul automat semna aceste mesaje fără să verifice că site-ul din mesaj era site-ul cu care vorbea. Un server rău intenționat putea transmite mai departe o cerere de autentificare de la alt site, putea face agentul s-o semneze și apoi se putea autentifica acolo în numele agentului.
De ce contează
Corecturile au fost ușor de ratat. Notele de versiune le-au listat fără să spună că sunt corecturi de securitate, iar la 23 octombrie npm audit nu raporta nicio problemă pentru versiunile TypeScript afectate. Echipele care se bazează pe aceste verificări ca să știe când să actualizeze ar putea rula încă versiuni vulnerabile.
Mai larg, acesta este un tip nou de risc pentru agenții autonomi. Când un program poate cheltui bani și semna autentificări fără ca un om să verifice fiecare pas, toate protecțiile trebuie să fie în cod: limite de cheltuieli, o listă de tokeni și destinatari permiși și verificări că o semnătură este pentru site-ul corect.
Ce trebuie făcut
- Actualizați SDK-urile. Pentru clienții TypeScript, actualizați
@x402/fetchsau@x402/axiosla 2.23.0 sau mai nou, care aduce și@x402/corecorespunzător. Aplicațiile care folosesc SIWx au nevoie și de@x402/extensions2.23.0+. Facilitatorii care verifică plăți pe Solana au nevoie de@x402/svm2.23.0+. Modulul Go și pachetul Python au și ele versiuni corectate. Verificați versiunile exacte în avizul de securitate al x402 Foundation. - Verificați noile setări implicite. După actualizare, clienții limitează fiecare plată la 1 $ și acceptă doar stablecoin-uri în dolari recunoscute, cum este USDC, dacă aplicația nu are propriile limite de cheltuieli. Aplicațiile care dezactivează aceste setări au nevoie de limite proprii.
- Dacă nu puteți actualiza încă, înregistrați o politică de plată care respinge orice opțiune peste o anumită sumă:
registerPolicyîn TypeScript și Go sauregister_policyîn Python, care are și o politică gata făcută pentru suma maximă. - Stabiliți bugete în mod explicit. Limitați cheltuielile pe plată și în total și restricționați tokenii, rețelele și destinatarii pe care un agent îi poate plăti.
- Tratați portofelele agenților ca pe niște credențiale de producție. Monitorizați-le, păstrați soldurile mici și setați alerte pentru ieșiri neobișnuite de bani.
Astfel de vulnerabilități stau în codul SDK-urilor terțe care ajunge în aplicația dumneavoastră printr-o actualizare de dependență. Serviciul nostru de code review asistat de AI verifică felul în care codul dumneavoastră folosește astfel de dependențe, inclusiv setările implicite de plată, verificările de semnătură și limitele lipsă, ca problemele să fie găsite înaintea unui atacator.
Sursa: articol original publicat de The Hacker News (Swati Khandelwal, 23 octombrie 2026), pe baza cercetării firmei de securitate V12. Acest articol este rezumatul și analiza noastră.
