KUTIM-CSIRT mengimbau seluruh Perangkat Daerah di lingkungan Pemerintah Kabupaten Kutai Timur yang mengembangkan aplikasi API berbasis bahasa Go dengan templat go-base untuk memeriksa kode dan konfigurasinya serta menindaklanjuti CVE-2026-48031, kerentanan authentication bypass berskor CVSS 9,1 (Critical).
Ikhtisar
go-base (github.com/dhax/go-base) adalah templat awal (boilerplate) untuk membuat RESTful API dengan Go, autentikasi JWT, dan basis data PostgreSQL. CVE-2026-48031 adalah kerentanan Use of Hard-coded Credentials (CWE-798) dengan vektor CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N.
Kunci penandatangan JWT (JWT signing secret) pada templat ini tertanam dengan nilai bawaan yang diketahui publik, tertulis pada berkas contoh dev.env dan dipakai kembali sebagai nilai bawaan di kode aplikasi. Karena kunci ini dapat dibaca siapa pun dari repositori publik, penyerang dapat membuat token JWT palsu (algoritma HS256) yang diterima aplikasi sebagai sah.
Dampak
- Penyerang tanpa akun dapat memalsukan identitas pengguna mana pun, termasuk peran administrator.
- Token palsu membuka akses ke seluruh endpoint API yang dilindungi: membaca data pengguna dan sumber daya terlindungi, serta mengubah data yang dapat dijangkau API (
C:H/I:H). - Penyerang juga dapat memperoleh token baru melalui mekanisme refresh token, sehingga akses bertahan sampai kunci diganti dan token dicabut.
Sistem yang Terdampak
| Produk | Versi Terdampak | Versi Perbaikan |
|---|---|---|
go-base (github.com/dhax/go-base, paket Go) | Semua commit/versi sebelum 0.0.0-20260517152733-cc82b9740fa6 (sebelum 18 Mei 2026) | Commit cc82b9740fa6 atau yang lebih baru |
go-base adalah templat; aplikasi turunan yang disalin dari versi lama membawa nilai bawaan tersebut dan perlu diperiksa sendiri meskipun templat induknya sudah diperbarui.
Detail Teknis
Aplikasi memverifikasi token JWT dengan kunci rahasia simetris (HS256). Pada versi terdampak, kunci itu bernilai bawaan yang sama untuk setiap instalasi dan tertera di repositori publik. Siapa pun yang mengetahuinya dapat menerbitkan token bertanda tangan sah dengan klaim apa pun. Menurut advisory proyek, pemeriksaan bawaan sebelumnya hanya menolak satu nilai tertentu, sehingga kunci lemah lain seperti secret atau string kosong tetap lolos. Rincian teknis yang lebih dalam tidak kami muat karena dapat langsung dimanfaatkan.
Rekomendasi
- Periksa seluruh aplikasi yang dibangun dari go-base, termasuk berkas konfigurasi (
.env,dev.env) dan kode yang memuat nilai bawaan kunci JWT. - Perbarui go-base ke commit
cc82b9740fa6atau yang lebih baru, atau terapkan perubahan setara pada aplikasi turunan. - Ganti kunci penandatangan JWT dengan nilai acak sungguhan sepanjang minimal 32 karakter, disimpan di pengelola rahasia atau variabel lingkungan, bukan di repositori.
- Hapus nilai bawaan yang lemah seperti
random,secret,changeme,change-me,default, atau string kosong. - Setelah kunci diganti, cabut semua token dan sesi yang beredar (termasuk refresh token) agar token palsu tidak tetap berlaku.
- Tinjau log akses API untuk aktivitas administratif yang tidak dikenal atau akses dari akun yang tidak pernah masuk secara sah.
- Laporkan indikasi penyalahgunaan ke KUTIM-CSIRT melalui kanal pelaporan resmi.
Catatan Status Eksploitasi
CVE-2026-48031 belum tercatat di katalog KEV CISA pada saat artikel ini diterbitkan. Meski demikian, karena kunci bawaan terbuka bagi siapa pun yang membaca repositori publik, pemalsuan token tidak memerlukan keahlian khusus. Kerentanan jenis ini sebaiknya ditangani segera.