`UForm` e `UAuthForm` renderizar um elemento ` ' do lado do servidor sem `método` e nenhum atributo `ação`, dependendo de um manipulador hidratado `@submit.prevent` para interceptar a submissão. Se um usuário enviar o formulário antes da hidratação do Vue ter ligado o handler (autofill mais Enter em uma rede lenta, pacote JS bloqueado por falha CSP ou CDN, etc.), o navegador executa o padrão nativo: um `GET` para a URL atual com cada campo nomeado, incluindo ` `, serializado na cadeia de consulta. ` src/ runtime/components/Form.vue` (em torno do elemento ` ` do modelo) emite. ```vue 'componente: é="parentBus? 'div': 'form''::id="formId" ref="formRef":class="ui({ classe: [uiProp?.base, props.class] })" @submit.prevent="onSubmitWrapper" > ```` Nenhum método, nenhuma ação. `@ submit. prevent` é a única coisa que impede a submissão nativa, e só existe após a hidratação. `UAuthForm` compõe `UForm` e herda a mesma forma. A instantânea SSR de `UAuthForm` (`test/components/__snapshots__/AuthForm.spec.ts.snap`) mostra o marcador renderizado, com ` ` dentro de um ` ` que não tem `método`.

### Prova de conceito. Relatório do @ nimonian: 1. Crie um aplicativo Nuxt mínimo com um `UAuthForm`. 2. Construir para produção e visita em um navegador com rede em rotttling 4 G ou mais lento. 3. Digite credenciais. 4. Enviar (ou deixar preencher automaticamente + Ingressar fogo antes da hidratação). O URL se torna `/ login?email=...&password=...`. Reproduzible deterministically em Playwright, ativando submeter imediatamente em `load'.

Qualquer aplicativo usando `UAuthForm` (ou `UForm` com campos em forma de credencial) conforme documentado. A senha do texto claro aterrissa em: - a barra de endereços, - `window.history`, - o cabeçalho `Referer` de cada subrecurso de origem igual que foi obtido do URL resultante, - os registros de acesso de qualquer proxy inverso, CDN ou WAF que registra solicita URLs. O padrão é o ` ` renderizado para `método="post"`, de modo que o retalho pré- hidratação se apresenta como POST em vez de GET. O `@ submit. prevent` da Vue ainda intercepta o caso hidratado; o atributo só importa na janela de corrida. Os aplicativos que desejam explicitamente submissão GET nativo podem optar de volta passando `método="get"`.

Relato pelo @nimonian. Originalmente arquivado como ` GHSA- 92 g 7 - 2 fpq-hmq 8 ` contra ` nuxt/ nuxt`; movido aqui porque o código afetado vive em `@ nuxt/ ui`. Registro de aconselhamento: GHSA- gj 2 h- 2 fpw- fhv 9. Não há nenhum identificador adicional listado. Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 02 T 20: 16: 12.000 Z e lista a sua última modificação como 2026 - 08 - 04 T 21: 55: 59.000 Z.

Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 4: CVSS: 4.0 /AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/África do Sul:N. Software afetado e informações de versão: pacote npm @nuxt/ui — ECOSISTEM: introduzido 0, corrigido 4.8.1. Classificação e evidência: identificadores de fraqueza CWE- 200, CWE- 598. O registro contém 4 suporte de referências nestes tipos: WEB, PACKAGE.