Commit 03fb6d6
fix(tbtc/signer): apply session lifecycle and quarantine gates on interactive open
The interactive path accepted an open after only the signing-policy
firewall check, so on a session start_sign_round would refuse it could
still emit a share - bypassing the established lifecycle/quarantine
gates (review finding). InteractiveSessionOpen now enforces, before
installing any interactive state, the same gates the coarse path does:
- emergency_rekey_event on an existing session -> LifecyclePolicyRejected
(emergency_rekey_required),
- a terminally finalized session -> SessionFinalized,
- an auto-quarantined member_identifier (absent a DAO allowlist
override) -> QuarantinePolicyRejected, reusing
enforce_not_quarantined_identifiers so the allowlist override is
honored identically.
The quarantine check targets this node's own member_identifier - the
member it is about to produce a share for - rather than the whole
included set, since under t-of-included a quarantined included member
simply will not be among the responsive subset.
Tests: an emergency-rekey session and a finalized session both refuse
interactive open; a quarantined member is rejected and a DAO allowlist
override restores signing. Full suite 261 passed / 1 ignored, clippy
-D warnings clean, chaos suite green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent fb6f33d commit 03fb6d6
2 files changed
Lines changed: 175 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
110 | 148 | | |
111 | 149 | | |
112 | 150 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12454 | 12454 | | |
12455 | 12455 | | |
12456 | 12456 | | |
| 12457 | + | |
| 12458 | + | |
| 12459 | + | |
| 12460 | + | |
| 12461 | + | |
| 12462 | + | |
| 12463 | + | |
| 12464 | + | |
| 12465 | + | |
| 12466 | + | |
| 12467 | + | |
| 12468 | + | |
| 12469 | + | |
| 12470 | + | |
| 12471 | + | |
| 12472 | + | |
| 12473 | + | |
| 12474 | + | |
| 12475 | + | |
| 12476 | + | |
| 12477 | + | |
| 12478 | + | |
| 12479 | + | |
| 12480 | + | |
| 12481 | + | |
| 12482 | + | |
| 12483 | + | |
| 12484 | + | |
| 12485 | + | |
| 12486 | + | |
| 12487 | + | |
| 12488 | + | |
| 12489 | + | |
| 12490 | + | |
| 12491 | + | |
| 12492 | + | |
| 12493 | + | |
| 12494 | + | |
| 12495 | + | |
| 12496 | + | |
| 12497 | + | |
| 12498 | + | |
| 12499 | + | |
| 12500 | + | |
| 12501 | + | |
| 12502 | + | |
| 12503 | + | |
| 12504 | + | |
| 12505 | + | |
| 12506 | + | |
| 12507 | + | |
| 12508 | + | |
| 12509 | + | |
| 12510 | + | |
| 12511 | + | |
| 12512 | + | |
| 12513 | + | |
| 12514 | + | |
| 12515 | + | |
| 12516 | + | |
| 12517 | + | |
| 12518 | + | |
| 12519 | + | |
| 12520 | + | |
| 12521 | + | |
| 12522 | + | |
| 12523 | + | |
| 12524 | + | |
| 12525 | + | |
| 12526 | + | |
| 12527 | + | |
| 12528 | + | |
| 12529 | + | |
| 12530 | + | |
| 12531 | + | |
| 12532 | + | |
| 12533 | + | |
| 12534 | + | |
| 12535 | + | |
| 12536 | + | |
| 12537 | + | |
| 12538 | + | |
| 12539 | + | |
| 12540 | + | |
| 12541 | + | |
| 12542 | + | |
| 12543 | + | |
| 12544 | + | |
| 12545 | + | |
| 12546 | + | |
| 12547 | + | |
| 12548 | + | |
| 12549 | + | |
| 12550 | + | |
| 12551 | + | |
| 12552 | + | |
| 12553 | + | |
| 12554 | + | |
| 12555 | + | |
| 12556 | + | |
| 12557 | + | |
| 12558 | + | |
| 12559 | + | |
| 12560 | + | |
| 12561 | + | |
| 12562 | + | |
| 12563 | + | |
| 12564 | + | |
| 12565 | + | |
| 12566 | + | |
| 12567 | + | |
| 12568 | + | |
| 12569 | + | |
| 12570 | + | |
| 12571 | + | |
| 12572 | + | |
| 12573 | + | |
| 12574 | + | |
| 12575 | + | |
| 12576 | + | |
| 12577 | + | |
| 12578 | + | |
| 12579 | + | |
| 12580 | + | |
| 12581 | + | |
| 12582 | + | |
| 12583 | + | |
| 12584 | + | |
| 12585 | + | |
| 12586 | + | |
| 12587 | + | |
| 12588 | + | |
| 12589 | + | |
| 12590 | + | |
| 12591 | + | |
| 12592 | + | |
| 12593 | + | |
0 commit comments