Apa yang terjadi
Validasi SandboxShellTool AG2 bergantung pada _filter dan contains_shell_operator untuk menolak sintaks shell tertentu, tetapi filter tersebut melewatkan pemisah baris baru/CR dan string yang tidak difilter kemudian dieksekusi melalui sh -c. Ini memungkinkan perintah agen yang dipengaruhi penyerang untuk menambahkan dan menjalankan pernyataan arbitrer. Dengan backend LocalEnvironment default, perintah yang di-inject berjalan sebagai subproses host, memengaruhi kerahasiaan, integritas, dan ketersediaan.
Mengapa penting
Ini adalah kelas sandbox-escape agen: jaminan isolasi alat dikalahkan oleh satu baris baru, mengubah injeksi prompt atau argumen alat yang dipengaruhi penyerang menjadi eksekusi perintah host pada mesin yang menjalankan agen — batas yang diandalkan pembela untuk menahan perilaku agen yang tidak tepercaya.
Vektor serangan
Filter prefiks perintah di ag2/tools/sandbox/filter.py dan adapter/shell.py menghilangkan pemisah baris baru dan carriage-return sementara string mentah yang diterima diteruskan ke sh -c. Penyerang yang dapat memengaruhi argumen panggilan alat (misalnya melalui injeksi prompt tidak langsung atau pesan saluran) menyuntikkan pernyataan shell tambahan yang dieksekusi sebagai subproses host dengan hak istimewa proses agen.
Sistem yang terdampak
ag2 >= 0.13.2, < 1.1.1; autogen >= 0.13.2, <= 0.14.1
Mitigasi
Tingkatkan ke ag2 1.1.1. Advisory: https://github.com/ag2ai/ag2/security/advisories/GHSA-2h4w-29cv-2cmv