CAIN-42 CAIN Studio
25CAIN-42 Top 25 › BROKER › 2026-11-02 upgrade

2026-11-02 upgrade

We attacked our own credential system and found that "single use" and "only narrows" were not true through delegation, and that some paths could be read differently by the server behind it.

#FindingBeforeAfter
F1single use defeated by attenuation: attenuate(parent) with no change mints a fresh credential for the identical action; parent + 3 clones = 4 uses4 of 4 acceptedparent accepted, 3 clones refused (replayed): parent and children share one use (root_jti)
F2approval bypass: a person-approved DELETE /invoices/INV-9 could be narrowed to DELETE /invoices/INV-9/lines with any body, and the parent stayed usableacceptedrefused (attenuation_widens); an approved credential can only be repeated exactly, once
F3any credential could be narrowed to any deeper path, e.g. /orders/A-1 -> /orders/A-1/x, with any bodyacceptedonly a collection credential (path ends in '/', no body, no approval) narrows to one bodiless member
F4paths servers interpret differently were minted: '/orders/..;/admin' (Tomcat reads '..;' as '..'), '%252e' double encoding, full-width dots, ';' path parameters, CR/LF and tabALLOWDENY at mint, refused at verify, and refused by the downloadable verifier

Fixed in the engine and in the downloadable verifier. 12 new tests; all BROKER, APPROVAL and GOVERNOR tests pass. The live demo serves the fix (checked 15:31Z: a delegated child of a used credential is refused, 403).

FIRME AI CORPORATION · CAIN-42 is a Byzantine trust fabric. Numbers marked "our own check" were run by us, not by an independent party. Nothing on these pages is a certification.