You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is an audit task, not a bug report — it produces a scenario list and spins off bugs, it doesn't fix anything itself.
The WebAuthn counter-rollback bypass found in askr-auth (#17 there) existed because tests covered normal state transitions but not the adversarial one the check was specifically meant to catch. This task looks for the core-runtime equivalent: state-mutation entry points where only the "expected" call pattern has ever been tested, not deliberately hostile/unusual ones.
Procedure
Identify every state-mutation entry point in core (state.set(), effect scheduling, resource resolution, component mount/unmount) and construct at least one adversarial sequence per entry point, e.g.:
Purpose
This is an audit task, not a bug report — it produces a scenario list and spins off bugs, it doesn't fix anything itself.
The WebAuthn counter-rollback bypass found in
askr-auth(#17 there) existed because tests covered normal state transitions but not the adversarial one the check was specifically meant to catch. This task looks for the core-runtime equivalent: state-mutation entry points where only the "expected" call pattern has ever been tested, not deliberately hostile/unusual ones.Procedure
Identify every state-mutation entry point in core (
state.set(), effect scheduling, resource resolution, component mount/unmount) and construct at least one adversarial sequence per entry point, e.g.:.set()reentrantly from inside another cell's updater function (see the reentrancy gap noted informally during the prior audit, adjacent to Scheduler.waitForFlush() leaks waiter entries on timeout #332)waitForFlush()for a version that's already been superseded before the call is made (not just "never reached" as in Scheduler.waitForFlush() leaks waiter entries on timeout #332, but "already in the past")Definition of Done
Audit results (2026-08-24)
.set()inside another cell updaterstate.set()tests/jsdom/runtime/hardening-matrix.test.tsxtests/jsdom/runtime/hardening-matrix.test.tsxtests/jsdom/runtime/effect-invariants.test.ts(bounded self-invalidating effect and sibling draining)tests/jsdom/operations/resource-unmount-inert.test.tsx;tests/jsdom/operations/state-resource-probes.test.tsxwaitForFlush()target already passedtests/jsdom/runtime/hardening-matrix.test.tsxtests/jsdom/runtime/hardening-matrix.test.tsx;tests/jsdom/operations/resource-dep-ordering.test.tsxForreconciliationtests/jsdom/regressions/for-swap-local-state-coexistence.test.tsxImplementation: #346. All adversarial sequences pass; no product gap was found.