**Título:** A execução de código Pyodide de mesma origem permite RCE do lado do servidor através de um chat compartilhado Aberto WebUI executa Python (Pyodide) do lado do cliente em um trabalhador web do mesmo origen. Através da API JavaScript do Pyodide (`pyodide.http.pyfetch`, ou o módulo `js` que expõe o `fetch` / `XMLHttpRequest`) executado pelo Python pode emitir pedidos na origem do aplicativo, e esses pedidos carregam o cookie de sessão da vítima. Um usuário de baixa prioridade pode armazenar tal carga útil em uma mensagem de chat, compartilhar o chat, e quando uma vítima a abrir e clicar **Run** a carga útil executa pedidos autentificados do mesmo origen que a vítima. Quando a vítima é um administrador (ou um usuário que segura `workspace.funtions` / `workspace.tools` permissões), a carga útil cria uma Função/ Ferramenta cujo corpo executa o lado do servidor, cedendo **execução de código remoto**.

A ponte `js` do Pyodide dá ao Python no trabalhador o mesmo alcance que o JavaScript inline na origem, e o trabalhador é o mesmo- origin, por isso um pedido credencial para a própria API do aplicativo é autenticado como a vítima. Não é necessário um isqueiro XSS separado: armazenar a carga útil em um chat compartilhado e ter a vítima executada é suficiente. ```python de piodide.http importar pyfetch importar json aguardar pyfetch('/api/v 1 /funções/criar', method='POST', credenciais='include', headers={'Content-Type': 'application/json'}, body=json.dumps({'id': 'x', 'nome': 'x', 'meta': {'descrição': 'x'}, 'content': "importa os; os.system(' ')"})) ```````````````````````````````````````````````````````````````````````````````'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.

Quando a vítima executa o código compartilhado, um usuário autêntico de baixa privilegiação consegue a execução remota de código no servidor (a Função/ Ferramenta criada executa o Python do lado do servidor) se a vítima for um administrador ou tiver permissões `workspace.funtions` / `workspace. tools`. De modo mais geral, o código executado pode emitir qualquer pedido autenticado como vítima. Exige que a vítima clique em Executar e Abrir WebUI configurado para usar o Pyodide. O piodide agora é executado em um iframe em caixa de areia em uma origem opaca por padrão (`sandbox="allow-scripts'', sem `allow-same-origin'). Em uma origem opaca `pyfetch`, `fetch` e `XMLHttpRequest` para o aplicativo tornam- se pedidos de origem cruzada que não possuem cookie de sessão e estão bloqueados pelo CORS, e a ponte `js` opera na janela isolada do iframe sem acesso ao cookie do pai, token, `localStorage` ou DOM. Python completo, JavaScript e extração externa continuam funcionando. A persistência do IDBFS só está disponível por trás do `ENABLE_PYODIDE_FILE_PERSISTENCE=true`, que restaura o trabalhador de origem igual e re- aceita este risco.

Até atualização, desactive a execução de código Pyodide ou defina o motor de Execução de Códigos / Interprete de Códigos para uma opção do lado do servidor. Registro de aconselhamento: GHSA- 4 r 2 p-. 27 MH- 5 m 22. Identificadores relacionados: CVE- 2026 - 59214.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 24 T 16: 54: 40.000 Z e lista a sua última modificação como 2026 - 07 - 24 T 16: 54: 40.000 Z. Severidade: ALTAMENTE. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N.

Informações sobre software e versão afetadas: Pacote PyPI open-webui — ECOSISTEM: introduzido 0, corrigido 0.10.0. Classificação e evidência: identificadores de fraqueza CWE- 79. O registro contém 3 suporte de referências nestes tipos: WEB, AVISO, EMBALAGAMENTO.