Ilustrasi teknis abstrak pada bidang abu-abu hangat pucat: panel pengaturan tinggi berwarna putih gading dengan baris-baris bergaris samar terletak di kiri tengah, dan bidang terendahnya memuat dua tanda kurung sudut sian kecil yang bersarang, satu di dalam yang lain. Garis sian tipis membentang dari panel ke blok server sabak datar di kanan; garis kuning kunyit kedua keluar dari tanda bersarang itu, melewati tepi panel dan mencapai blok yang sama, dan kotak kuning kunyit kecil menandai persimpangan tempat kedua jalur bercabang. Blok server kedua yang lebih redup berada di belakang blok pertama. Karya seni ini berupa geometri vektor datar dengan bayangan lembut dan margin lapang; tidak ada teks, huruf, angka, orang, atau logo organisasi yang muncul. Logo OrcaRouter dikomposisikan di sudut kanan bawah pita putih di bawah karya seni.
AI Safety Incidents

RCE Agen AI Zammad: tag templat bersarang, perbaikan satu huruf

Penulis

Alistair Wren

Tanggal Terbit

Model terbaru · 20Lihat semua model →
Benchmark: Artificial Analysis · diperbarui setiap hari
Kembali ke semua artikel

Zammad, helpdesk sumber terbuka, merilis versi 7.1.2 pada 4 Agustus 2026 dengan delapan belas perbaikan keamanan; perbaikan pertama yang tercantum menutup celah eksekusi kode jarak jauh di kolom konfigurasi fitur AI Agent-nya. Kerentanannya adalah CVE-2026-84462, yang diungkapkan dalam advisory GitHub GHSA-gp3x-9xm8-rcj6 pada hari yang sama, dan rentang terdampaknya mencakup setiap instalasi yang dihosting sendiri pada versi hingga dan termasuk 7.1.1. Administrator yang dapat membuat atau mengedit AI Agent dapat memasukkan teks yang dirancang khusus ke salah satu kolom agen tersebut, menembus filter yang dimaksudkan untuk menetralkannya, dan menjalankan perintah sembarang di server yang menghosting Zammad — dengan potensi, menurut kata-kata advisory tersebut, untuk "membaca, mengubah, atau menghancurkan semua data yang disimpan di server itu." Tidak ada pengguna lain yang perlu bertindak: advisory tersebut menyatakan bahwa "kode berbahaya itu berjalan secara otomatis pada saat berikutnya AI Agent yang terdampak memproses tiket." GitHub menilainya Tinggi dengan skor 8,6 pada CVSS 4.0. Catatan tersebut, tag tingkat keparahan dan tag dampak kerugiannya, serta entri yang dicatat di sekitarnya disimpan di Orca AI Incident Archive, yang mencantumkan insiden ini bersama rangkaian insiden lainnya.

Apa yang ditetapkan oleh advisory tersebut

Peringatan GitHub, yang diterbitkan pada 4 Agustus 2026, singkat dan luar biasa spesifik mengenai mekanisme serta prasyaratnya. Dokumen itu menjelaskan "security filter yang melindungi konfigurasi AI Agent Zammad" yang "dapat dilewati dengan memasukkan teks yang dibuat khusus ke salah satu bidang AI Agent," dan menyebut pelakunya secara tepat: "Seorang administrator dengan izin untuk membuat atau mengedit AI Agent dapat memanfaatkan ini untuk menjalankan perintah arbitrer pada server yang menghosting Zammad." Rentang yang terdampak tercatat hingga dan termasuk 7.1.1, sedangkan versi yang telah ditambal adalah 7.1.2. Pelapor yang dicantumkan adalah colinthebomb1; akun penerbitnya adalah fliebe92. Peringatan tersebut tidak memublikasikan bukti konsep maupun detail eksploitasi apa pun.

GitHub menilai kerentanan ini Tinggi, 8,6 pada CVSS 4.0, dengan vektor AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H dan tanpa perubahan cakupan. Jika dibaca, itu berarti kerentanan ini dapat dijangkau melalui jaringan dengan kompleksitas rendah, tanpa persyaratan serangan dan tanpa interaksi pengguna, oleh penyerang yang sudah memiliki hak akses tinggi di dalam aplikasi, dengan dampak tinggi terhadap kerahasiaan, integritas, dan ketersediaan instans Zammad itu sendiri. Advisori tersebut mencantumkan tiga kelemahan: CWE-20, validasi input yang tidak tepat; CWE-94, injeksi kode; dan CWE-1336, kelas mesin templat yang didefinisikan MITRE sebagai kegagalan menetralkan sintaks khusus "yang dapat ditafsirkan sebagai ekspresi templat atau direktif kode lain saat diproses oleh mesin."

Perbaikan itu mengubah satu huruf

Perbaikan publik adalah commit e3b0c8df91ad2108c8305be23e8fe6f73fb9718d, yang dikirimkan dengan pesan "Maintenance: Improve ERB sanitizer." GitHub mencatat tanggal penulis 7 Juli 2026 dan tanggal commit 3 Agustus 2026, satu hari sebelum advisory dan rilis. Ini menyentuh dua file: satu baris lib/erb_sanitizer.rb, dan empat belas baris spesifikasi yang ditambahkan.

Satu baris itu adalah seluruh perbaikannya. Metode escape_tag menggunakan sub milik Ruby, yang menggantikan kecocokan pertama suatu pola dalam string; sekarang metode itu menggunakan gsub, yang menggantikan setiap kecocokan. Pada kedua versi, penggantinya sama: pembuka yang ditulis sebagai <% menjadi <%%, bentuk ganda yang dirender oleh ERB, mesin templat Ruby, sebagai teks literal alih-alih dievaluasi. Advisory tersebut tidak menyebutkan bidang AI Agent mana yang membawa templat itu; commit tersebut mengidentifikasi filter yang seharusnya membuat templat itu tidak aktif.

A dark HTML card titled 'One line, one letter', kicker 'Zammad fix commit e3b0c8f', subtitle 'lib/erb_sanitizer.rb, method escape_tag, authored 7 July 2026 and committed 3 August 2026 - one day before disclosure'. Two code panels: BEFORE, in amber, shows a red minus beside tag.sub with the opener arguments and the note 'Replaces the first opener only'; AFTER, in cyan, shows a green plus beside tag.gsub and the note 'Replaces every opener'. A second panel headed 'WHY ONE LETTER MATTERED' shows the payload, a literal opener followed by an evaluating tag, arrowed to the same string with the first opener doubled, and explains that the inner tag is never touched. A third row headed 'REGRESSION SPEC, SAME COMMIT' shows the two nested payloads the added tests cover, with the note 'Both must render as literal text, not evaluate'. A footer names commit e3b0c8df91ad2108c8305be23e8fe6f73fb9718d and says the card was rendered by OrcaRouter with no vendor logos. The OrcaRouter logo is composited in the bottom-right corner.

Dengan sub, hanya pembuka pertama dalam string yang dinetralkan. Payload yang menempatkan pembuka kedua tepat setelah pembuka pertama lolos dari filter: <%<%= 1 + 1 %> menjadi <%%<%= 1 + 1 %>, di mana ERB mengeluarkan pembuka di awal sebagai teks lalu mengevaluasi tag di dalamnya. Spesifikasi regresi yang ditambahkan dalam commit yang sama menyebut trik ini secara terang-terangan — "with a nested opener smuggled inside a single tag (escape-all-openers bypass)" — dan menegaskan bahwa baik <%<%= 1 + 1 %> maupun <%<%<%= 1 + 1 %> yang bersarang ganda harus dirender sebagai teks literal. Spesifikasi itu adalah penjelasan publik paling jelas tentang bagaimana filter tersebut diakali, karena advisory itu sendiri tidak memberikan penjelasan apa pun.

Bentuk bug ini bersifat generik, bukan keunikan Zammad: escaper yang berhenti setelah kecocokan pertama dapat dikalahkan oleh input apa pun yang membawa salinan kedua yang bersarang dari urutan yang dihapusnya. Pesan commit menyebut perubahan tersebut sebagai pemeliharaan, yang merupakan cara patch pengerasan satu karakter biasanya beredar — dan itulah sebabnya advisory, bukan diff, harus membawa peringatan itu.

Tujuh minggu dari advisory hingga NVD

NVD menerbitkan catatannya untuk CVE-2026-84462 pada 25 September 2026, tujuh minggu setelah advisory, dan terakhir mengubahnya pada 28 September. Catatan tersebut ditandai "Deferred", yang berarti lembaga itu belum menerbitkan analisisnya sendiri, dan blok metriknya mengatribusikan skor 8.6 kepada security-advisories@github.com sebagai metrik sekunder — penilaian GitHub sebagai otoritas penomoran CVE, bukan penilaian independen NVD. Catatan yang sama tidak memuat konfigurasi CPE sama sekali, sehingga tidak memetakan kerentanan tersebut ke pengenal produk yang berversi.

Kedua detail itu penting bagi siapa pun yang memantau perangkat lunak self-hosted melalui feed, bukan melalui catatan rilis. Perbaikan itu tersedia untuk publik dan dapat ditindaklanjuti pada 4 Agustus; catatan yang dapat dibaca mesin tiba pada 25 September; dan bahkan saat itu, catatan tersebut datang tanpa pengenal produk yang menjadi dasar pencocokan pemindai berbasis CPE. Selama tujuh minggu, keterangan otoritatif tentang cacat tersebut adalah advisory vendor dan catatan rilis vendor.

A dark HTML timeline card titled 'From commit to CVE record', kicker 'Zammad 7.1.2 - CVE-2026-84462', subtitle 'Five dated points, taken from the fix commit, the GitHub advisory, the Zammad release note and the NVD API'. Five rows: 7 July 2026, fix authored in commit e3b0c8f with the message 'Maintenance: Improve ERB sanitizer'; 3 August 2026, fix committed one day before disclosure; 4 August 2026, GitHub advisory GHSA-gp3x-9xm8-rcj6 published and Zammad 7.1.2 shipped the same day with 18 security fixes; 25 September 2026, NVD publishes CVE-2026-84462 with status Deferred and no CPE configuration, 52 days after disclosure; 29 October 2026, FIRST EPSS read at 0.28 percent probability in 30 days, 20th percentile. An amber rule below reads 'The advisory and the CVE record describe the same flaw. The first was actionable on 4 August; the second arrived as a machine-readable record 52 days later.' A footer credits GitHub, Zammad, NVD and FIRST, and says the card was rendered by OrcaRouter. The OrcaRouter logo is composited in the bottom-right corner.

Apa yang sudah mapan, dan apa yang belum

Terkonfirmasi: advisory, versi yang telah ditambal, skor CVSS, dan perubahan kode semuanya berasal dari Zammad dan dari basis data advisory GitHub, serta satu sama lain saling sesuai. Catatan NVD mereproduksi deskripsi dari otoritas penomoran tanpa menambahkan analisisnya sendiri. Atas dasar itu, arsip memberi nilai kepercayaan entri A, dengan insiden tersebut tidak diperdebatkan.

Belum dipastikan, atau belum tercatat: tidak ada bukti konsep dalam advisory dan tidak ada laporan eksploitasi di alam liar. EPSS FIRST memberi CVE-2026-84462 probabilitas eksploitasi 0,28 persen dalam tiga puluh hari ke depan, persentil ke-20, dalam skor yang diterbitkan pada 29 Oktober 2026. Arsip tidak mencatat kerugian nyata, dan mencatat entri tersebut pada tingkat keparahan sedang — di bawah band High milik advisory itu sendiri. Itu adalah instrumen terpisah yang menjawab pertanyaan berbeda, apa yang dapat diakibatkan celah tersebut versus apa yang diketahui telah terjadi, dan tulisan ini melaporkan keduanya alih-alih menyelaraskannya.

Konfirmasi independen sangat minim. Pencarian atas liputan CVE ini menghasilkan basis data kerentanan yang menerbitkan ulang teks otoritas penomoran, ditambah catatan rilis Zammad sendiri; tidak ada media berita yang tampaknya melaporkan kerentanan ini secara independen. Itu adalah temuan tentang catatan tersebut, bukan kritik terhadapnya: eksekusi kode jarak jauh pada helpdesk yang memerlukan akun administrator bukanlah jenis peristiwa yang memicu liputan pers, dan tidak adanya laporan independen itu sendiri merupakan bagian dari apa yang didokumentasikan oleh catatan tersebut.

Siapa yang bisa memicunya, dan apa yang berubah

Catatan rilis Zammad 7.1.2, bertanggal 4 Agustus 2026, mencantumkan delapan belas kerentanan yang ditambal pada versi tersebut dan menempatkan bypass templat AI Agent di urutan pertama. Bagi pelanggan hosted, catatan itu menyatakan, "Tidak ada tindakan yang diperlukan. Instans Anda telah ditambal dan diamankan oleh tim kami." Bagi instalasi self-hosted, pernyataannya lebih tegas: "Kami sangat menyarankan untuk segera meningkatkan ke versi terbaru Zammad guna memastikan sistem Anda terlindungi." Saran tersebut tidak menawarkan solusi alternatif, dan catatan itu tidak memuat mitigasi apa pun selain peningkatan versi.

A dark HTML card titled 'Who can pull the trigger', kicker 'CVE-2026-84462 - preconditions', subtitle 'From the GitHub advisory and the Zammad 7.1.2 release note; the score and exploitation figure are labelled separately'. Left column headed 'THE ATTACKER MUST' lists three conditions: hold administrator rights inside Zammad, specifically permission to create or edit AI Agents; reach the agent configuration over the network; supply no interaction from any other user. Right column headed 'THE PAYLOAD THEN' lists three consequences: runs on the server that hosts Zammad, not in a browser; fires the next time the agent processes a ticket; can read, modify or destroy all data on that server, according to the advisory. A statistics strip reads 8.6 CVSS 4.0 High, PR:H high privileges required, UI:N no user interaction, C:H I:H A:H all three impacts high, and 0.28 percent EPSS on 29 October 2026. Three flags below read Affected: Zammad up to and including 7.1.1; Fixed: 7.1.2, released 4 August 2026; Stated remedy: upgrade, no workaround published. A closing panel notes that the advisory publishes no proof of concept and that the regression spec in the fix commit is the clearest public description of the bypass. A footer says hosted instances were already patched and self-hosted installations must reach 7.1.2. The OrcaRouter logo is composited in the bottom-right corner.

Persyaratan hak akses ini perlu ditinjau lebih cermat daripada yang diberikan vektor. PR:H berarti penyerang memerlukan akses yang signifikan sebelum celah ini dapat berguna, dan dalam kasus ini akses tersebut adalah izin admin.ai_agent yang menurut dokumentasi Zammad diperlukan untuk dapat bekerja dengan AI Agents sama sekali. Di sebuah helpdesk, pemegang izin itu sering kali merupakan pimpinan tim layanan yang menyetel pengkategorisasi, pemberi tag, dan pengekstrak teks — belum tentu orang yang mengelola server. Frasa dalam advisory itu sendiri, "seorang administrator dengan izin untuk membuat atau mengedit AI Agents," lebih sempit daripada "siapa pun" dan lebih luas daripada "root." Jika peningkatan versi tidak dapat segera dilakukan, mempersempit siapa yang memegang izin tersebut mengurangi kumpulan orang yang dapat menjangkau jalur kode itu; itu adalah inferensi dari vektor dan dokumentasi, bukan remediasi yang diterbitkan vendor.

Tidak ada dokumen utama yang menempatkan model bahasa di jalur eksploitasi. Perintah tersebut berjalan di dalam proses Ruby Zammad saat konfigurasi agen dirender; tidak ada yang dalam advisory, commit, atau catatan rilis yang menjelaskan bahwa model menghasilkan payload. Fitur AI Agent menyediakan bidang yang dapat ditulis administrator dan diproses templat, dan AI adalah permukaannya, bukan mekanismenya. Itulah pola yang ditunjuk catatan: definisi agen — instruksinya, templat, dan filternya — adalah konfigurasi yang dapat dieksekusi, diedit oleh orang yang pekerjaannya adalah dukungan, bukan tinjauan keamanan.

Solusi Zammad proporsional dan membosankan: satu perubahan metode, dua tes regresi, dan kenaikan versi yang menutup tujuh belas celah lain bersama celah ini. Bagian yang layak dibawa ke depan adalah model eksposurnya. Helpdesk yang memungkinkan seorang support lead menentukan agen juga memungkinkan support lead tersebut menulis sesuatu yang akan dieksekusi server, dan satu-satunya yang berdiri di antara keduanya adalah filter yang harus benar tentang setiap salinan bersarang dari sintaks yang dihapusnya.