BUSINESS LOGIC · OFFBOARDING

Akses Sudah Dicabut,
tetapi Token Turunannya Masih Aktif.

Ketika delegasi sementara dapat menciptakan credential persisten, tombol revoke belum tentu mengakhiri seluruh lineage akses.

9 menit bacaFinding tervalidasiIntermediate
Responsible disclosure

Kasus berasal dari pengujian terotorisasi menggunakan akun dan objek disposable milik peneliti. Seluruh identitas dan artefak sensitif dianonimkan.

Offboarding sering dinilai dari satu indikator: akun sumber tidak bisa masuk lagi. Namun akses dapat memiliki keturunan—API token, service credential, session, atau integration key yang dibuat saat delegasi masih aktif.

Invariant lifecycle

Ketika owner mencabut delegasi sementara, seluruh capability yang hanya ada karena delegasi tersebut harus ikut mati atau memerlukan persetujuan persisten yang eksplisit.
Owner
pemilik akun dan objek uji
Principal
aktor dengan delegasi sementara
Descendant
token Restricted yang dibuat principal
Transition
ACTIVE → REVOKED
Authority proof
owner authoritative readback

Eksperimen lifecycle

Saat delegasi aktif, principal dapat melakukan operasi pada scope A dan ditolak pada scope pembanding B. Principal lalu membuat descendant credential melalui alur normal. Owner mencabut delegasi. Credential sumber segera menghasilkan penolakan—negative control penting yang membuktikan revoke memang diproses.

Namun descendant token masih diterima. Token tersebut mengubah marker non-sensitif pada objek milik peneliti. Owner membaca ulang objek melalui sesi terpisah dan memperoleh marker yang sama. Ini adalah authoritative readback, bukan kesimpulan dari HTTP 200.

EVIDENCE CHAINdelegation ACTIVE → source ALLOWED
descendant credential created → SUCCESS
comparison scope → DENIED
owner revokes delegation → SUCCESS
source credential → DENIED
descendant mutation → SUCCESS
authoritative readback → MARKER MATCH

Akar masalah

Sistem melacak validity setiap credential, tetapi tidak mempertahankan lineage kewenangan. Descendant diperlakukan sebagai objek mandiri setelah diterbitkan, meskipun hak membuatnya berasal dari akses sementara.

Dampak bisnis

  • Offboarding memberikan rasa aman palsu.
  • Mantan operator dapat mempertahankan akses dalam scope yang diwariskan.
  • Incident response harus menemukan dan mencabut token satu per satu.
  • Audit log tanpa parent-child relationship menyulitkan containment.

Counterevidence dan batas klaim

Token tetap Restricted dan scope pembanding tetap ditolak. Tidak ada akses admin, cross-tenant, payment, atau resource berbayar. Bukti minimum hanya mutasi field non-sensitif milik peneliti.

Remediasi

  • Simpan parent principal dan authorization source untuk setiap credential.
  • Tambahkan permission terpisah untuk membuat credential persisten.
  • Cascade-revoke seluruh descendant saat delegasi berakhir.
  • Tampilkan daftar descendant pada dialog offboarding.
  • Retest source, descendant, session lama, dan transport API alternatif.

Keputusan

OBSERVEDSource credential mati setelah revoke.
HYPOTHESISDescendant tidak terikat lifecycle parent.
AUTHORITYOwner melihat perubahan setelah revoke.
DECISIONBOUNDARY_CROSSED.

Cleanup memulihkan marker, menghapus descendant token, memverifikasi token menjadi ditolak, dan mengembalikan inventory ke baseline.