Skip to content

[Safety] Production typed-confirmation gate is absent on the Advanced → Data Push route #48

Description

@Exotic209093

Severity

High — the flagship production safeguard can be bypassed by taking a different route to the same screen.

What happens

The advanced/push route renders DataPushScreen without the context prop, so props.context?.environment is undefined and pushConfirmationPhrase returns null for insert/update/upsert. A production-org write from that screen gets the plain one-click ConfirmModal instead of the typed INSERT N Account phrase — the exact same push from the Import route would be gated. Production warning banners also never render there.

Evidence

  • src/ui/app/AppRoot.tsx:468-478 (no context prop)
  • src/ui/utils/pushGuards.ts:25

Suggested fix

Pass context={context ?? undefined} to the advanced/push DataPushScreen exactly as the import route does; add a regression test asserting the typed gate on both routes.

Environment

Commit 74cf21b (main), WaveLink 0.6.0. Found in the 2026-08-31 adversarial audit (code-verified).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions