Пропуст во Google Vertex AI SDK им овозможува на напаѓачите да преземаат прикачувања на модели преку „bucket squatting“

Пропуст во Google Cloud Vertex AI SDK за Python му овозможувал на напаѓач, без никаков пристап до проектот на жртвата, да го преземе процесот на прикачување на машински модел и да извршува код во инфраструктурата на Google наменета за сервирање на модели.

Истражувачите од Palo Alto Networks Unit 42, кои го откриле и пријавиле проблемот преку програмата за награди за пронајдени грешки на Google, техниката ја нарекле „Pickle in the Middle“ и изјавиле дека не забележале нејзина злоупотреба во реални услови. Google веќе го поправи пропустот; доколку го користите SDK-то, ажурирајте на верзија 1.148.0 или понова.

На напаѓачот му бил потребен само сопствен Google Cloud проект и ID-то на проектот на жртвата, кое често е јавно достапно. Не биле потребни акредитиви, фишинг или претходен пристап до целниот систем.

Проблемот се наоѓал во начинот на кој SDK-то избирало привремен Cloud Storage bucket за прикачување на моделите. Ако корисникот не навел bucket, SDK-то генерирало предвидливо име врз основа на ID-то на проектот и регионот, на пример: project-vertex-staging-region. Притоа проверувало дали bucket-от постои, но не и дали навистина му припаѓа на жртвата.

Бидејќи имињата на bucket-ите се глобално единствени, напаѓач можел однапред да го креира очекуваниот bucket во својот проект. Потоа SDK-то на жртвата ги прикачувало датотеките со моделот директно во bucket-от на напаѓачот. Напаѓачот можел да го замени оригиналниот модел со злонамерен.

Многу Python ML модели се зачувуваат со pickle или joblib, технологии што можат да извршат код при вчитување на датотека. Кога Vertex AI подоцна ќе го вчитал заменетиот модел, злонамерниот код се извршувал во контејнерот за сервирање.

Нападот зависел од брзината. Unit 42 измерил околу 2,5 секунди помеѓу прикачувањето на моделот од страна на жртвата и моментот кога Vertex AI ја читало датотеката. Во нивниот proof-of-concept, напаѓачот користел Cloud Function што се активирала веднаш по прикачувањето и го заменувала моделот за 1,4 секунди — пред Vertex AI да го прочита.

Потоа, злонамерниот код крадел OAuth токен од metadata серверот на контејнерот за сервирање и го испраќал до напаѓачот. Во тест-околината на Unit 42, тој токен не бил ограничен само на компромитираната инсталација. Со него можело да се пристапи до други артефакти на модели во истиот tenant проект управуван од Google, вклучувајќи целосен TensorFlow модел со обучени тежини, како и BigQuery метаподатоци, листи за пристап, tenant логови, имиња на GKE кластери и интерни патеки до контејнерски слики.

Нападот функционирал само под одредени услови: стандардниот staging bucket на жртвата сè уште да не постои во тој регион и параметарот staging_bucket да не биде рачно поставен. Првиот услов е чест кај нови проекти во Vertex AI во одреден регион.

Вториот услов зависи од тоа дали програмерот се потпира на стандардното однесување на SDK-то наместо сам да наведе bucket што го контролира.

Unit 42 го пријавил пропустот преку Програмата за награди за пронајдени ранливости на Google на 5 март 2026 година. Тестирани биле верзиите 1.139.0 и 1.140.0, кои во тоа време биле најновите достапни верзии, и било утврдено дека и двете се ранливи.

Google објавил почетна поправка во верзијата 1.144.0 на 31 март, додавајќи случајно генериран uuid4 во името на bucket-от. Целосната поправка била завршена во верзијата 1.148.0 на 15 април, со додавање проверка на сопственоста на bucket-от за да се спречат напади од типот „bucket squatting“ во функцијата Model.upload().

Во моментот на објавување на информацијата, ниту Unit 42 ниту безбедносните билтени на Vertex AI не навеле CVE ознака за овој пропуст.

Се препорачува ажурирање на верзија 1.148.0 или понова за да биде активна проверката на сопственоста. Дополнително, при прикачување модели треба експлицитно да се постави параметарот staging_bucket на Cloud Storage локација што ја контролирате.

Бидејќи проблематичната логика се наоѓа во клиентското SDK, треба да се провери верзијата на пакетот google-cloud-aiplatform на сите места каде што се користи — вклучително и notebook-окружувања, CI/CD задачи и тренинг-пајплајни, а не само во продукциските сервиси.

Ова е втор пропуст поврзан со предвидливи имиња на bucket-и што е откриен во Vertex AI оваа година. Google во февруари го поправи пропустот CVE-2026-2473, посебна ранливост во Vertex AI Experiments која исто така овозможувала извршување код меѓу различни кориснички средини (cross-tenant), кражба на модели и нивно компромитирање.

Во претходно истражување, Unit 42 анализирал и дозволи поврзани со стандардните service-agent сметки на Vertex AI, при што покажал потенцијален пат од распореден AI агент до податоци на корисници и податоци на самите tenant-окружувања.

Извори:

  • The Hacker News – Google Vertex AI SDK Flaw Let Attackers Hijack Model Uploads via Bucket Squatting The Hacker News