Skip to content

feat: bypass extension_hijack_detected + Trusted Types CSP - #64

Merged
crisng95 merged 1 commit into
crisng95:mainfrom
soigia21:main
Sep 25, 2026
Merged

crisng95 merged 1 commit into
crisng95:mainfrom
soigia21:main

Conversation

@soigia21

Copy link
Copy Markdown

Changes

Extension (v0.5.2)

  • hijack_bypass.js (new): capture pristine grecaptcha.enterprise.execute before Flow's x2a trap replaces it with extension_hijack_detected action
  • injected.js: 3-level bypass (Pristine → Object.assign neuter → Legacy widget)
  • manifest.json: inject all MAIN world scripts via manifest content_scripts to bypass Trusted Types CSP
  • content.js: removed createElement('script') injection, keep message bridge only
  • background.js: RPC label mapping for side panel (Gen Video, Upload Image, etc)

Agent

  • flow_client.py: distinguish [HIJACK] errors (30s cooldown) from abuse blocks (120s)
  • processor.py: [HIJACK] errors don't burn retry counts
  • flow.py: POST /api/flow/clear-hijack endpoint for manual cooldown reset

Tested

  • ✅ Image upload via batch_rpc
  • ✅ Video generation (omni_flash, 8s, 720p)
  • ✅ Trusted Types CSP bypass confirmed
  • ✅ Side panel shows friendly RPC labels

Extension v0.5.2:
- hijack_bypass.js: capture pristine grecaptcha.enterprise.execute before
  Flow's x2a trap replaces it with extension_hijack_detected action
- injected.js: 3-level bypass (pristine → Object.assign neuter → legacy)
- manifest.json: inject all MAIN world scripts via manifest content_scripts
  to bypass Trusted Types CSP (require-trusted-types-for 'script')
- content.js: removed createElement('script') injection, keep message bridge
- background.js: RPC label mapping for side panel (Gen Video, Upload Image, etc)

Agent:
- flow_client.py: distinguish [HIJACK] errors (30s cooldown) from abuse blocks (120s)
- processor.py: [HIJACK] errors don't burn retry counts
- flow.py: POST /api/flow/clear-hijack endpoint for manual cooldown reset
@crisng95
crisng95 merged commit cd9f156 into crisng95:main Sep 25, 2026
PeerapolSelanon added a commit to PeerapolSelanon/flowkit that referenced this pull request Sep 28, 2026
Brings in project-session leases + real Flow project creation, the
generation guard that stops retrying PUBLIC_ERROR_UNUSUAL_ACTIVITY,
Omni payload sync, and direct multipart image uploads.

Deliberately stops before crisng95#62 (1eae10b) and crisng95#64 (083fed7): both exist
to evade Flow's detection of extension-minted reCAPTCHA tokens.

fk-doctor keeps our 1080p-upscale wording for UNSUPPORTED_ON_BATCH_API.
CLAUDE.md updated: POST /api/projects creates Flow projects again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants