AUTHORIZATION · CREDENTIAL BOUNDARY

Token Dibatasi ke Satu Akun,
tetapi Credential Global Tetap Terbuka.

Studi kasus tentang pembatasan token yang bekerja pada resource bisnis, tetapi tidak diterapkan konsisten pada credential tingkat akun.

9 menit bacaFinding tervalidasiIntermediate
Responsible disclosure

Kasus berasal dari pengujian terotorisasi. Identitas target, endpoint, akun, token, secret, dan artefak sensitif dianonimkan.

Label Restricted menciptakan janji keamanan: integrasi hanya boleh bekerja pada akun bisnis yang dipilih. Baseline membuktikan janji itu nyata—resource dalam scope diterima, sedangkan resource pembanding ditolak.

Invariant yang diuji

Token yang dibatasi ke satu akun bisnis tidak boleh membaca, menampilkan ulang, membuat, atau mencabut credential tingkat akun tanpa izin terpisah.
Aktor
Integrasi dengan token Restricted
Scope
Satu akun bisnis milik peneliti
Objek sensitif
credential tingkat akun
Operasi
read, reveal, revoke
Boundary
scope bisnis versus authority global

Baseline dan kontrol pembanding

Token berhasil mengakses resource di scope A. Request identik untuk scope B ditolak. Tanpa token dan dengan token salah juga ditolak. Ini membantah penjelasan bahwa endpoint bersifat publik atau token sebenarnya Global.

Boundary crossing

Token yang sama kemudian digunakan pada credential management tingkat akun. Server mengembalikan metadata dan secret autentikasi terpisah. Exact-secret control berhasil melakukan autentikasi read-only; perubahan satu karakter menghasilkan penolakan. Dengan demikian nilai tersebut bukan string dekoratif.

Untuk membuktikan kontrol write tanpa merusak layanan, satu credential disposable milik owner dicabut. Inventory owner mengonfirmasi credential tersebut hilang, sedangkan objek lain tidak berubah.

EVIDENCE CHAINscope A → ALLOWED
scope pembanding B → DENIED
tanpa token / token salah → DENIED
credential tingkat akun → DISCLOSED
exact secret → AUTHENTICATED
one-character mutation → DENIED
revoke credential disposable → CONFIRMED BY OWNER

Mengapa ini business logic?

Setiap komponen bekerja sesuai fungsi lokalnya. Token parser valid, scope bisnis valid, dan credential API valid. Kerentanan muncul karena dua model kewenangan tidak disatukan pada trust decision terakhir.

Dampak terverifikasi

  • Pengungkapan credential autentikasi terpisah.
  • Kemampuan mencabut credential milik owner.
  • Pembatasan scope tidak melindungi operasi credential tingkat akun.

Batas klaim

Tidak ada akses lintas tenant, objek pihak ketiga, downtime, penghapusan massal, atau kerugian finansial. Dampak dibatasi pada akun dan credential disposable milik peneliti.

Remediasi

  • Tolak token Restricted pada credential management global secara default.
  • Pisahkan permission metadata, reveal, create, rotate, revoke, dan delete.
  • Jangan tampilkan ulang secret lama.
  • Uji semua endpoint lama dan baru dengan matriks scope yang sama.

Keputusan

OBSERVEDScope bisnis diterapkan pada resource pembanding.
HYPOTHESISCredential API tidak mewarisi batas tersebut.
AUTHORITYSecret valid dan state owner berubah.
DECISIONBOUNDARY_CROSSED.

Cleanup mengembalikan inventory ke baseline dan seluruh credential sementara dinonaktifkan.