Apa yang terjadi
ToolJet sebelum 3.20.1780-lts mengekspos endpoint POST /api/data-sources/decrypt yang mendekripsi dan mengembalikan kredensial yang disimpan dalam plaintext ke pemanggil terautentikasi apa pun, tanpa memverifikasi bahwa pemanggil memiliki izin untuk mengakses credential_id yang direferensikan. Penyerang dengan akun ToolJet apa pun dapat menghitung dan mengekstrak semua kunci API yang disimpan, kata sandi database, dan kredensial layanan yang digunakan di seluruh semua sumber data agen AI.
Mengapa penting
ToolJet menyimpan kredensial untuk semua sumber data yang terhubung ke alur kerja agen AI — database, API, layanan cloud, kunci penyedia AI. Dekripsi kredensial plaintext tanpa pembatasan secara efektif memberikan pengguna terautentikasi apa pun kunci master dump dari seluruh toko rahasia platform, mengaktifkan kompromi penuh semua infrastruktur AI hilir dan sumber data.
Vektor serangan
Pengguna terautentikasi apa pun dapat memanggil endpoint POST /api/data-sources/decrypt dengan credential_id arbitrer dan menerima nilai yang didekripsi plaintext dari kredensial tersebut. Tidak ada pemeriksaan otorisasi yang mengkonfirmasi pemanggil memiliki atau memiliki akses ke kredensial yang direferensikan. Ini memungkinkan enumerasi sistematis dan ekstraksi semua rahasia yang disimpan.
Sistem yang terdampak
ToolJet < 3.20.1780-lts
Mitigasi
Tingkatkan ke ToolJet 3.20.1780-lts. Advisory: https://github.com/ToolJet/ToolJet/security/advisories/GHSA-x7qj-hfg8-p4cw