mirror of
https://github.com/usestrix/strix.git
synced 2026-11-14 09:01:25 +00:00
fix(skills): strengthen DoubleClickjacking validation
This commit is contained in:
parent
aae7c97461
commit
37b8ee1bd4
2 changed files with 3 additions and 1 deletions
|
|
@ -63,6 +63,7 @@ Structure agents by function:
|
|||
- Its task must cover both iframe and cross-window/DoubleClickjacking paths; framing protections close only iframe coverage.
|
||||
- A workflow crossing origins or ports remains eligible when every involved origin is an explicit scan target. Same-origin policy blocks DOM reads, not top-level navigation, popups, opener relationships, focus changes, or window closing; cross-origin separation alone does not close UI-redressing coverage.
|
||||
- Never expand authorization from a link alone. If a required origin is not an explicit target, leave the path `needs_follow_up` and do not claim clickjacking or the related workflow is cleared; scope expansion must come from scan configuration.
|
||||
- Before accepting `no_issue_found` or `ruled_out` for cross-window UI redressing, reject closure evidence that cites popup-as-tab behavior, ignored geometry, unavailable OS-level input, or only a manual control click; keep the exact two-click path `needs_follow_up`. A successfully executed protected consent, approval, or grant must be impact-calibrated, not dismissed because it is idempotent, pre-seeded, or issues no immediate token or data.
|
||||
|
||||
**Exploitation and Validation**
|
||||
- Proof-of-concept development
|
||||
|
|
|
|||
|
|
@ -49,7 +49,8 @@ Draw the context graph. Security checks on `event.origin`, `event.source`, or a
|
|||
- Do not treat a different origin or port as protection against UI redressing. Same-origin policy blocks DOM access, not top-level navigation, `window.open()`, opener relationships, focus changes, or window closing. Test only explicitly authorized targets; if a required origin is outside scope, keep the path `needs_follow_up` and do not claim the vulnerability class is cleared.
|
||||
- For framed cases, prove the overlay and sensitive click. For DoubleClickjacking, use two real browser clicks and trace click 1 → window/focus/navigation/positioning change → click 2 → sensitive control. Never substitute scripted `.click()` calls.
|
||||
- Reproduce in the victim state required by the workflow—authenticated when necessary—with realistic user activation and stable geometry; capture window bounds and timing.
|
||||
- Verify a repeatable sensitive server-side state change with a recording or deterministic event trace and a negative control. If the sequence cannot be tested, record `needs_follow_up`, not `ruled_out`; unstable coordinates or no second-click impact are false positives.
|
||||
- **Evidence-limited closure:** Verify a repeatable sensitive server-side state change with a recording or deterministic event trace and a negative control. If the exact sequence cannot be tested, record `needs_follow_up`, not `ruled_out` or `no_issue_found`. Popup-as-tab behavior, ignored geometry, unavailable OS-level input, or a manual control click are not counterevidence. Close the path only when a named mitigation blocks it, or when geometry is honored and both physical clicks are delivered without a sensitive action.
|
||||
- **Impact floor:** Successful execution of a protected consent, approval, or grant is an integrity impact even when idempotent, pre-seeded, or followed by no immediate token or data access. Use downstream capability to calibrate severity, not erase the demonstrated protected action.
|
||||
|
||||
### Client-Side Path Traversal
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue