Address bar spoofing vectors · iOS 18 · iPhone 15
Trigger navigation at the exact moment Safari exits fullscreen video. The UI transition creates a brief window where the address bar may display a stale/incorrect URL.
When Safari exits fullscreen on iOS, there's a UI animation that transitions from the fullscreen player back to the browser chrome. During this transition, history.replaceState() or location.replace() is called. The hypothesis: Safari may update its address bar from the history state after the visual transition completes, creating a window where the bar shows the injected URL while the page content is from the original origin.
Chain rapid navigation events to create a race condition in Safari's address bar update cycle. Multiple vectors tested here.
Open a popup, navigate it rapidly, inject state before close.
Chrome had a UI spoofing bug in FileSystemAccess API. Safari's implementation of the same API may have a different variant — specifically around the file picker dialog display and the URL bar state while the dialog is open.
Classic file input trigger with URL injection during the "choose file" dialog lifecycle.
Safari iOS has unique gesture surfaces not present in Chrome. These are manual — tap the button, then immediately perform the gesture described.
Tap "Arm", then immediately swipe right from the left edge of the screen (Safari back gesture).
Tap "Arm", then immediately pull down to trigger pull-to-refresh on the page.
Open Web Share sheet, inject state, then dismiss. Check URL bar on return.
All test events across vectors. Copy this for your report.
If any vector shows a discrepancy, fill this in for Apple's report.