
GitLab AI Gateway: Tampal CVE-2026-90970
GitLab AI Gateway: Tampal CVE-2026-90970
GitLab keluarkan tiga versi tampalan pada Jumaat, 2 Oktober — 19.2.4, 19.3.2 dan 19.4.1 — untuk satu flaw yang mereka sendiri beri markah 9.9 Critical. Tajuk advisory itu sendiri sudah menyatakan punca sebenar dalam lapan perkataan: Improper Neutralization issue in custom flow prompt template.
Kalau korang yang host AI Gateway sendiri, ini alamat pagi ini. Kalau GitLab yang host untuk korang, boleh tutup tab ni. Membezakan dua keadaan tu ambil kira-kira tiga puluh saat, dan beza antara tindak balas insiden dengan sepetang yang lapang.
Siapa sebenarnya yang terdedah
AI Gateway ialah bahagian yang menyambungkan instance GitLab kepada model
provider. Dokumen pemasangan GitLab
mendeskripsikannya sebagai "a combination of two services" — AI Gateway service
dan Duo Agent Platform service — dan kedua-duanya dibekalkan dalam satu
container model-gateway di sebelah instance korang sendiri, pada port 5052 dan
50052.
Ciri opt-in itulah sebabnya pengungkapan ini perlu dibaca dengan teliti. GitLab menyatakan secara jelas bahawa fix sudah pun deployed untuk gateway yang dihost GitLab, dan instance GitLab.com, Dedicated serta Self-Managed yang menggunakan gateway dihoskan GitLab "are protected and do not need to take action."
Jadi kumpulan yang terdedah sempit: organisasi yang menjalankan GitLab Duo
Self-Hosted dengan container gateway sendiri. Kumpulan kecil memang — fitur ni
wajib supaya anda boleh memastikan trafik model kekal dalam rangkaian sendiri —
tetapi nilainya tinggi. Container itu dikonfigurasi dengan credential untuk
model endpoint yang dipanggilnya: dokumen pemasangan yang sama mendokumentasikan
AIGW_MTLS__CERT_FILE dan AIGW_MTLS__KEY_FILE, satu client certificate
bersama private key yang gateway bentulkan kepada model provider.
Mekanismenya, dan sejauh mana advisory mendedahkannya
CVE-2026-90970 dipetakan kepada CWE-1336: improper neutralization of special elements used in a template engine. Dalam bahasa sebenar, kandungan yang dihantar pengguna dinilai sebagai template syntax dan bukan sebagai data.
Ini yang GitLab tulis:
"GitLab has remediated an issue in the GitLab AI Gateway that, under certain conditions, could have allowed an authenticated user with Duo Agent Platform access to escape the prompt template sandbox via a specially crafted flow configuration, leading to arbitrary command execution on the AI Gateway."
Baca betul-betul. Ia bukan prompt injection terhadap model. Output model tiada bahagian dalam serangan. Penyerang menghantar satu flow configuration — dan custom flow ialah workflow berasaskan AI yang dibina pengguna dalam Duo Agent Platform — yang prompt template-nya melolos dari sandbox yang tugasnya menahan kandungan dihantar itu daripada sampai ke host. Yang keluar di sebelah lain ialah execution command pada gateway, dengan privilege gateway itu sendiri.
Vector string itulah yang menyebabkan nilainya 9.9 dan bukan lebih rendah:
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
PR:L komponen satu-satunya yang menghalangnya daripada sepuluh penuh — korang perlukan
akaun disahkan dengan akses Duo Agent Platform. S:C bahagian yang ramai orang
langkau: scope changed. Kesan melepasi komponen gateway itu sendiri, jadi
apa-apa yang boleh dicapai gateway juga termasuk dalam skop.
Credit kepada researcher HackerOne bernama invisiblemeerkat, yang
deservingkan terima kasih daripada GitLab kerana responsible disclosure.
Precedent Februari yang tiada siapa kaitkan
Ini bukan 9.9 pertama dalam AI Gateway, dan yang terdahulu mempunyai bentuk yang sama. CVE-2026-1868 ditampal pada 6 Februari 2026 dalam 18.6.2, 18.7.1 dan 18.8.1, juga 9.9, juga CWE-1336. Flaw itu terletak dalam Duo Workflow Service dan boleh dicapai melalui Flow definitions yang direka, menyebabkan denial of service atau code execution pada gateway. Advisory Februari membawa nasihat yang sama: kemas kini serta-merta.
Dua pengungkapan, lapan bulan kemudian, dua-duanya critical, dua-duanya template expansion data pengguna daripada produk yang sama. Sistem templating flow dalam service ini sudah pun gagal dua kali. Anggap yang seterusnya sebagai soal masa, bukan soal adakah — dan ambil perhatian bahawa advisory Februari senyap tentang yang satu ini, jadi tiada pernyataan vendor bahawa dua-duanya berkongsi punca. Tiada siapa yang menerbitkannya.
Pengiraan versi akan menggigit anda
Di sinilah saya jangka seorang admin akan tersangkut. Julat yang terjejas, mengikut perkataan GitLab:
AI Gateway: all versions from 18.1.6 before 19.2.4,
19.3 before 19.3.2, and 19.4 before 19.4.1
Ditampal dalam 19.2.4, 19.3.2, 19.4.1. Sekarang lihat senarai fix yang ada untuk deployment tertentu:
| Baris gateway anda | Fix ada | Apa yang perlu dibuat |
|---|---|---|
| 19.2.x | 19.2.4 | Tampal gateway |
| 19.3.x | 19.3.2 | Tampal gateway |
| 19.4.x | 19.4.1 | Tampal gateway |
| 18.x (18.1.6+) | tiada | Naik taraf branch, atau naik taraf keseluruhan GitLab |
| 19.0 / 19.1 | tiada | Masalah yang sama |
Versi terendah yang ada fix dalam produk ialah 19.2.4. Tiada backport di bawah itu. Deployment 18.x tiada patch dalam branch untuk ditampal.
Dan ini bertindih dengan panduan pemasangan GitLab sendiri, yang
memadankan tag image gateway dengan versi GitLab korang: jika korang berada pada
vX.Y.*-ee, guna tag self-hosted-vX.Y.*-ee terkini. Mendapat gateway yang
benar-benar ditampal bermakna kena naik taraf aplikasi GitLab ke 19.2 atau
lebih baharu. Advisory tidak menangani keadaan itu, jadi semak dengan GitLab support
sebelum korang pin pasangan yang tidak sepadan.
Satu perangkap lagi layak dinamakan: ini bukan nombor tampalan GitLab CE/EE. Aplikasi GitLab sendiri juga mengambil fix critical bulan lepas — path traversal maximum severity, CVE-2026-85706 — dan CISA memorablekannya ke dalam catalog KEV pada 11 September, yang menjadikannya flaw GitLab yang anda sudah wajib tampal. Instance Self-Managed dengan gateway self-hosted sedang membawa dua advisory critical berasingan sekarang, dan hanya satu daripadanya boleh ditampal dengan menaikkan tag gateway.
Menampal gateway
Laluan naik tarafnya biasa sahaja, dan itu melegakan. Hentikan container, buang, tarik tag yang dipin, jalankan semula dengan environment variables yang sama:
sudo docker stop gitlab-aigw
sudo docker rm gitlab-aigw
docker pull registry.gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/model-gateway:<ai-gateway-tag>
docker run -d -p 5052:5052 -p 50052:50052 \
-e AIGW_GITLAB_URL=<your_gitlab_instance> \
-e AIGW_GITLAB_API_URL=https://<your_gitlab_domain>/api/v4/ \
-e AIGW_SELF_SIGNED_JWT__SIGNING_KEY="$(cat aigw_signing.key)" \
-e AIGW_SELF_SIGNED_JWT__VALIDATION_KEY="$(cat aigw_validation.key)" \
-e DUO_WORKFLOW_AUTH__ENABLED="true" \
-e DUO_WORKFLOW_SELF_SIGNED_JWT__SIGNING_KEY="$(cat duo_workflow_jwt.key)" \
-e DUO_WORKFLOW_SELF_SIGNED_JWT__VALIDATION_KEY="$(cat duo_workflow_validation.key)" \
registry.gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/model-gateway:self-hosted-v19.4.1-ee
Untuk deployment Helm, jangan langkau digest. Chart version sebelum 0.7.0
menggunakan imagePullPolicy: IfNotPresent sebagai default, jadi rollout semula
terhadap tag yang sama masih menyajikan image lama — dan anda akan yakin anda
sudah tampal:
# Pin by digest so a re-rollout cannot silently reuse the old image
helm upgrade --install ai-gateway \
ai-gateway/ai-gateway \
--set="image.tag=self-hosted-v19.4.1-ee@sha256:<digest>" \
--set="image.pullPolicy=Always" \
# ... your existing flags
kubectl rollout restart deployment/ai-gateway -n ai-gateway
Sahkan image yang sedang berjalan, bukan image yang anda rancang:
# Docker
docker images --digests | grep ai-assist
# Kubernetes: read the tag and digest the pod is actually running
kubectl get pod -n ai-gateway \
-o jsonpath='{.items[0].status.containerStatuses[0].imageID}{"\n"}'
Sebelum tampalan melekat: potong laluan serangan
Advisory beri anda fix dan hampir tiada panduan ganti. Dua perkara patut buat sendiri, kedua-duanya murah.
Pangkas senarai entitlement. Pra-syaratnya ialah akses Duo Agent Platform. Audit siapa sebenarnya yang memegangnya. Kalau bisnes anda tidak perlukan fitur itu, matikan dan laluan serangan hilang terus; jika perlu, kecilkan kepada akaun terkecil yang benar-benar menulis flow. Semak flow sedia ada untuk template syntax yang tidak dikenali.
Anggap gateway ini sebagai foothold yang mungkin. GitLab tidak publish sebarang indicator of compromise, dan penilaian SSVC daripada CISA pada rekod CVE menyenaraikan exploitation sebagai none, automatable sebagai no, dan technical impact sebagai total. Itu isyarat terkuat yang ada, dan ia tetap tidak memberitahu apa-apa tentang gateway anda. Ia juga bermakna tiada apa-apa dari vendor untuk dijejak, jadi titik permulaan yang munasabah dipilih sendiri: child process atau shell activity yang tidak dijangka dalam container, outgoing connection yang tiada sebab service itu patut buat, dan flow yang baru dicipta atau diubah oleh akaun yang biasanya tidak menulis flow.
Command itu berjalan sebagai gateway, jadi jika ada apa-apa yang kelihatan pelik, pusing credential yang gateway pegang untuk model endpoint anda — termasuk client certificate mTLS itu — dan bina semula gateway dari image yang dipercayai, bukan sekadar restart.
Kalau ada satu pelajaran architecture yang perlu diambil dari sini, jadikan ia: komponen yang memegang credential model provider korang jangan sekali-kali menjadi komponen yang pengguna hujung boleh menyuntik kandungan berventuk executable ke dalam. Itu masalah blast radius agent platform dalam bentuk paling tulen — penalaran yang sama yang membuat sandboxed agent runtime berbaloi dituntut terpakai juga kepada gateway yang dipanggil agent anda.
Apa yang masih tidak diketahui
GitLab kata escaping itu berfungsi "under certain conditions" dan tidak
senaraikannya. Work item yang mengandungi butiran isu ini akan menjadi publik
90 hari selepas fix keluar, mengikut
proses coordinated disclosure GitLab —
"All vulnerabilities will be made public via our issue tracker 90 days after
releasing the fix" — jadi detail mekanismenya sampai berhampiran penghujung
tahun. Advisory tidak kata credential atau sistem mana yang terjejas selepas
exploitation; S:C memberitahu anda sempadan telah ditembusi tanpa memberitahu
apa yang terletak selepasnya.
CISA belum memorablekan CVE-2026-90970 ke dalam catalog Known Exploited Vulnerabilities, walaupun GitLab kini ada lima entri di sana — termasuk CVE-2026-85706 dari September. Itu sebab untuk tampal hari ini, bukan sebab untuk mengambil ringan: fix memang ada, ia kenaikan tiga versi, serangannya tidak perlu sesuatu yang lebih pelik daripada akaun yang memang memegang permission untuk agent, dan gateway yang belum diserang adalah momen termurah untuk mengemasikannya.
Corak yang paling berbaloi diambil: uncompromis termahal bermula daripada akses biasa yang sah, bukan daripada login yang hilang.
Sumber
- GitLab Docs: GitLab AI Gateway Critical Patch Release: 19.2.4, 19.3.2, and 19.4.1
- NVD: CVE-2026-90970 (CNA record and CISA SSVC assessment)
- GitLab Docs: GitLab AI Gateway Critical Patch Release: 18.6.2, 18.7.1, and 18.8.1 (CVE-2026-1868)
- GitLab Docs: Install the GitLab AI Gateway
- GitLab: Coordinated Disclosure Process
- CISA: Known Exploited Vulnerabilities Catalog (CVE-2026-90970 and CVE-2026-85706 entries)
- The Hacker News: GitLab Patches Critical Self-Hosted AI Gateway Flaw That Could Let Duo Agent Users Run Commands
- BleepingComputer: GitLab warns of critical RCE vulnerability in AI Gateway service
// penulis
Editor & Operator
Mohd Firdaus Abu Bakar (MrDodgerX) is an enterprise geospatial systems engineer in Malaysia and the editor behind hejes.my. He runs the briefing pipeline, curates and edits every draft, verifies each factual claim against primary sources, and presses the publish button — nothing ships without his review. He writes about AI, security and Malaysia's tech scene from a builder's perspective. Professional profile and code: the links below.
// sumber //
disahkan fakta · 03 OKT 2026 · hejes-content-fact-check
- GitLab AI Gateway Critical Patch Release: 19.2.4, 19.3.2, and 19.4.1GitLab Docs · diakses 03 OKT 2026
- CVE-2026-90970 (CNA record and CISA SSVC assessment)NVD · diakses 03 OKT 2026
- GitLab AI Gateway Critical Patch Release: 18.6.2, 18.7.1, and 18.8.1 (CVE-2026-1868)GitLab Docs · diakses 03 OKT 2026
- Install the GitLab AI GatewayGitLab Docs · diakses 03 OKT 2026
- Coordinated Disclosure ProcessGitLab · diakses 03 OKT 2026
- Known Exploited Vulnerabilities Catalog (CVE-2026-90970 and CVE-2026-85706 entries)CISA · diakses 03 OKT 2026
- GitLab Patches Critical Self-Hosted AI Gateway Flaw That Could Let Duo Agent Users Run CommandsThe Hacker News · diakses 03 OKT 2026
- GitLab warns of critical RCE vulnerability in AI Gateway serviceBleepingComputer · diakses 03 OKT 2026
berkaitan //

Anthropic dapati bahan asas untuk AI worm masa depan
Kajian Anthropic menunjukkan model open-weight kecil boleh menyusun langkah replikasi kendiri, tetapi had hardware dan lebar jalur masih menyukarkannya.

Anthropic hentikan ujian AI berisiko selepas model langgar laman kerajaan
Anthropic memutuskan akses internet untuk ujian AI berisiko selepas model mengeksploitasi laman, menghantar borang sebenar dan memintas perlindungan.

Bug GoBalance Dedah Kunci Master Onion Tor
Bug dalam load balancer GoBalance membolehkan sesiapa memulihkan kunci master Tor sebuah laman dark web daripada satu descriptor awam.
// sertai suapan
satu ilmu seminggu. tiada spam.
ringkasan mingguan. berhenti bila-bila masa.