October 9, 2026
Exposed docker-compose.yml
1. Ringkasan Eksekutif (Executive Summary / TL;DR)

By Mencari si dia
3 min read
- 1 Exposed docker-compose.yml di Portal Pemerintah Kota [REDACTED]: Kebocoran Kredensial Database dan Konfigurasi Internal
- 2 1. Ringkasan Eksekutif (Executive Summary / TL;DR)
- 3 2. Pendahuluan (Introduction)
- 4 3. Detail Kerentanan (Vulnerability Details)
- 5 4. Langkah Reproduksi (Steps to Reproduce / PoC)
Exposed docker-compose.yml di Portal Pemerintah Kota [REDACTED]: Kebocoran Kredensial Database dan Konfigurasi Internal
1. Ringkasan Eksekutif (Executive Summary / TL;DR)
- Jenis Kerentanan: Sensitive Information Disclosure (Exposed Configuration File)
- Vektor: Akses langsung ke file
docker-compose.ymldi web root - Dampak: Kebocoran kredensial database (MySQL root password, user, password) dalam bentuk plaintext, serta konfigurasi port internal dan arsitektur service.
- Status: Silent Fixed (Diperbaiki tanpa konfirmasi/balasan dari pihak terkait)
- Severity: High
2. Pendahuluan (Introduction)
Halo, saya Primandito Adi Setiya, seorang bug hunter. Pada 13 November 2025, saya sedang melakukan reconnaissance dan vulnerability testing pada portal layanan publik milik Pemerintah Kota [REDACTED].
Saat melakukan fuzzing direktori, saya menemukan sebuah file konfigurasi Docker (docker-compose.yml) yang dapat diakses secara publik. File ini biasanya digunakan untuk mendefinisikan dan menjalankan aplikasi multi-container. Karena terekspos, berbagai konfigurasi internal dan kredensial sensitif menjadi bocor.
Artikel ini akan membahas bagaimana saya menemukannya, apa saja yang terekspos, hingga dampak dari kerentanan ini.
3. Detail Kerentanan (Vulnerability Details)
Aplikasi pada target tidak memblokir akses ke file docker-compose.yml yang terletak di direktori web root. Akibatnya, ketika penyerang mengakses URL https://redacted.redactedkota.go.id/docker-compose.yml, web server mengembalikan file tersebut secara utuh. File ini berisi definisi service, port yang dipetakan, volume, dan yang paling sensitif adalah variabel lingkungan (environment variables) yang menyimpan kredensial database dalam bentuk plaintext.
4. Langkah Reproduksi (Steps to Reproduce / PoC)
Berikut adalah langkah-langkah untuk mereproduksi kerentanan ini:
Step 1: Akses File docker-compose.yml
Buka browser dan akses path file tersebut pada target:
https://redacted.redactedkota.go.id/docker-compose.yml
Browser akan secara otomatis mengunduh file tersebut karena bertipe YAML.
Step 2: Analisis Konfigurasi
File berhasil diunduh. Buka file tersebut menggunakan text editor. Terlihat berbagai konfigurasi sensitif, termasuk service frontend, backend, dan mysql.
Step 3: Ekstraksi Kredensial Database
Pada bagian service mysql, terdapat environment variables yang membocorkan kredensial. Meskipun saya sudah menyensor nilainya di screenshot, secara struktur terlihat field-field berikut terekspos:
environment:
- MYSQL_ROOT_PASSWORD=[REDACTED]
- MYSQL_DATABASE=[REDACTED]
- MYSQL_USER=[REDACTED]
- MYSQL_PASSWORD=[REDACTED]environment:
- MYSQL_ROOT_PASSWORD=[REDACTED]
- MYSQL_DATABASE=[REDACTED]
- MYSQL_USER=[REDACTED]
- MYSQL_PASSWORD=[REDACTED]
Step 4: Verifikasi Perbaikan (Post-Fix)
Setelah dilaporkan, pihak terkait tampaknya melakukan perbaikan secara diam-diam. Saat ini, akses ke file docker-compose.yml sudah diblokir. Verifikasi dilakukan pada 6 Oktober 2026.
5. Dampak (Impact)
Kebocoran file docker-compose.yml ini memberikan informasi sensitif yang dapat dimanfaatkan penyerang untuk:
- Akses Database Langsung: Kredensial
MYSQL_ROOT_PASSWORD,MYSQL_USER, danMYSQL_PASSWORDyang terekspos dapat digunakan untuk terhubung langsung ke database. Jika database terekspos ke publik atau dapat diakses melalui tunneling, penyerang dapat membaca, memodifikasi, atau menghapus data. - Pemetaan Infrastruktur Internal: Terlihatnya konfigurasi port internal (
20080:80,21080:80) dan nama service (frontend,backend,mysql) membantu penyerang memetakan arsitektur aplikasi dan mencari celah lain di dalam jaringan internal. - Penyalahgunaan Kredensial: Kredensial yang bocor berpotensi digunakan kembali (credential reuse) pada layanan lain yang terkait.
6. Rekomendasi Perbaikan (Remediation)
Untuk mencegah kerentanan ini terulang, ada tiga langkah krusial yang harus dilakukan:
- Blokir Akses ke File Konfigurasi: Tambahkan aturan pada web server (Apache/Nginx) untuk menolak akses ke file
docker-compose.ymldan file sensitif lainnya (seperti.env,.git, dll). - Rotasi Kredensial: Karena kredensial database sudah terekspos, segera ganti (rotate) semua password yang ada di file tersebut.
- Pindahkan File Konfigurasi: Jangan pernah menyimpan file konfigurasi di dalam direktori web root. Simpan di luar direktori yang dapat diakses publik.
7. Timeline (Kronologi)
- 13 November 2025: Menemukan kerentanan dan melakukan verifikasi PoC.
- 13 November 2025: Melaporkan kerentanan ke pihak terkait.
- Akhir 2025: Pihak terkait melakukan perbaikan secara diam-diam (silent fix). Akses ke file sudah diblokir.
- 9 Oktober 2026: Melakukan pengecekan ulang (verifikasi) dan memastikan celah sudah tertutup. Writeup dipublikasikan sebagai dokumentasi portofolio.
8. Penutup & About Me
Kerentanan ini menjadi pengingat bahwa kesalahan konfigurasi sekecil apa pun (seperti lupa memblokir file konfigurasi) bisa berdampak besar pada keamanan informasi. Meskipun laporan ini tidak mendapatkan balasan resmi dan diperbaiki secara diam-diam (silent fix), saya tetap mengapresiasi upaya pihak terkait yang telah menutup celah ini.
Bagi para bug hunter, silent fix adalah hal yang lumrah. Yang terpenting adalah kerentanan sudah tidak bisa dieksploitasi lagi. Dokumentasi seperti ini tetap penting untuk portofolio kita, sebagai bukti nyata kontribusi kita dalam menjaga keamanan siber. Happy hunting!