T05 · Unauthorized Access and Privilege Escalation
- Location
browser-snippets.md:89- Finding
Overbroad Collection of Visible Form Values
- Content
View full analysis
{ const els = [...document.querySelectorAll( 'input, select, textarea, button, [role="button"], [role="listbox"], [role="combobox"]' )]; return els.filter(el => el.offsetParent !== null).map(el => ({ tag: el.tagName, type: el.type || '', name: el.name || '', id: el.id || '', placeholder: el.placeholder || '', ariaLabel: el.getAttribute('aria-label') || '', value: el.value || '', text: el.textContent?.trim().substring(0, 50) || '', rect: el.getBoundingClientRect().toJSON() })); })() ``` ### Technical Analysis The form-discovery helper queries every visible `input`, `select`, and `textarea` on the page and returns each element's current `value`. Control discovery only requires metadata such as element type, label, name, and position; collecting values violates data-minimization and least-privilege principles. The query does not exclude password fields, payment-related controls, authentication values, personal information, anti-CSRF values exposed in visible controls, or unrelated fields introduced by OpenTable or embedded content. Returned values can enter browser-tool output, agent context, or diagnostic logs. This behavior also weakens the privacy assurances in `SKILL.md`, which state that card details are never read or logged. ### Attack Path 1. The authenticated booking page contains a visible input or textarea holding sensitive or unrelated information. 2. The accessibility snapshot does not expose a required control. 3. The agent invokes the documented “Discover Form Fields” snippet. 4. The snippet reads the `value` of every visible matching element. 5. Sensitive values are serialized and returned through the browser tool, making them available to the agent and potentially to to ...[truncated 444 chars]- Remediation
View remediation
