### Resumo Se as opções `--write-link`, `--write-url-link` ou `--write-desktop-link` forem usadas com o yt- dlp, ele pode produzir saída que pode levar à execução de código remoto a jusante. Um atacante pode criar uma carga útil maliciosa de metadados para alcançar injeção arbitrária de comando nos arquivos de atalho `.url` e `.desktop` escritos pelo yt- dlp. Isto permite que comandos de shell maliciosos ou executáveis remotos maliciosos sejam executados no sistema do usuário se o usuário executar os arquivos gerados `.url` ou `.desktop`. ### Detalhes As opções `--write-link`, `-write-url-link` e `--write-desktop-link` do yt- dlp são as seguintes: o resultado esperado das opções `--write-desktop-link` é escrever um arquivo de atalho que aponta para a URL da página web para o conteúdo baixado pelo yt- dlp. A opção `--write-url- link` escreve um arquivo de atalho `.url` para o Windows, a opção `-write-desktop- link` escreve um arquivo de atalho `.desktop` para o Linux, e a opção `--write-link` pode escrevê- lo um arquivo `.url` ou um arquivo `.desktop` dependendo da plataforma do usuário. Existem dois cenários conhecidos onde um atacante remoto poderia servir uma carga útil maliciosa de metadados para explorar a validação/sanificização inadequada do yt- dlp de sua saída de atalho e alcançar execução arbitrária de código se o usuário mais tarde abrir esses arquivos.
Cenário 1: `file://` injeção de URI no Windows `.url` atalho. Se um usuário do yt- dlp passar a opção `-write-link` ou `-write-url-link` para gerar um arquivo do Windows `.url`, a URL escrita no arquivo de atalho é obtida a partir dos metadados da mídia baixada-- especificamente, seu valor `webpage_url`. Este valor é comumente uma versão normalizada do URL de entrada passado para o yt- dlp pelo usuário, mas em alguns casos ele pode ser extraído de entrada web não confiável. A validação deste valor `webpage_url` é realizada se for de volta para o yt- dlp como URL de entrada (por exemplo, através da opção `-- load-info- json`), mas não é realizada validação antes de ser saída para um arquivo de atalho `.url`. Esta falta de validação é explorável por um atacante remoto que fabrica uma carga útil maliciosa de metadados de modo que o valor resultante `webpage_url` seja um `file://` URI. Um URI de arquivo malicioso pode apontar para um executável remoto, por exemplo `file://example.org/pwned.exe`. Se um usuário do Windows clicar duplomente num arquivo `.url` que aponta para este `webpage_url`, o Windows executará o executável remoto malicioso no sistema do usuário. Cenário 2: Injeção de comando Shell no atalho Linux `.desktop`. O formato de arquivo Linux `.desktop` é mais versátil do que o formato de arquivo Windows `.url`. Ele é definido pela especificação de arquivo "desktop.org" e suporta vários tipos de atalhos: um tipo `Link` para URLs, um tipo `Directory` para pastas do sistema de arquivos e um tipo `Application` para programas ou comandos shell. yt- dlp outputs um arquivo de entrada de área de trabalho do tipo `Link`, usando o modelo abaixo:.
```` desktop [Ingresso em Desktop] Encoding=UTF- 8 Nome=%(nome do arquivo)s Tipo=Link URL=%(url)s Icon=text-html ```` As teclas sob o grupo `[Desktop Entry]` são separadas por novas linhas, e o tipo de entrada de área de trabalho é definido pelo valor pareado com a tecla `Tipo`. Se um usuário do yt- dlp passar a opção `-write-link` ou `-write-desktop-link` para gerar um arquivo de entrada de área de trabalho, além do valor `webpage_url` há um valor `filename` que é escrito no arquivo de atalho. Por padrão, o yt- dlp irá desinfectar o valor `filename`: esta desinfectação inclui a substituição de linhas novas por espaços e remover outros caracteres de controle. No entanto, a opção `---sem-ficheiros de janelas` foi modificada na versão yt- dlp 2024.12.23 para desativar esta sanidade de nome de arquivo padrão quando usada.
Se o usuário passar `--write-link` ou `--write-desktop-link` juntamente com `--- windows- filenames` para o yt- dlp, um valor `filename' não sanitizado pode ser escrito no arquivo de entrada da área de trabalho resultante. Um atacante remoto pode explorar esta falta de desinfectação criando uma carga útil maliciosa de metadados de tal forma que o valor resultante ` nome de arquivo` contenha caracteres de linha nova, que podem ser usados para injetar grupos arbitrários, chaves e valores na saída de entrada da área de trabalho. Fazendo isso permite que o atacante mude o 'Tipo' da entrada de área de trabalho para 'Aplicação' e alcance a injeção do comando shell. Por exemplo, um site controlado pelo atacante pode servir uma página web com estes dados JSON-LD maliciosamente criados: ```html { "@contexto": " "@type": "VideoObject", "nome":"Stream\nType=Application\nExec=sh -c & quot;touch /tmp/pwned"\n\n[novogrupo]\nName=endtitle", "contentUrl": " 4 " } ```.
Então, um usuário do yt- dlp poderá tentar baixar o conteúdo legítimo do vídeo da página executando o seguinte comando: ``` Bash yt- dlp --write-desktop-link --no- windows- filenames " 123 " ```. O que resultaria em um arquivo de entrada de área de trabalho contendo um comando malicioso shell:.
```` desktop [Ingresso em Desktop] Encoding=UTF- 8 Nome=Tipo de estreia=Exec=sh -c "toque /tmp/pwned" [novo grupo] Nome=título final [ 123 ] Tipo=Link URL=%(url)s Icon=text-html ```. Se um usuário em um ambiente de área de trabalho Linux executar o arquivo `.desktop` gerado, o comando shell malicioso seria executado no sistema do usuário. (No exemplo acima, um arquivo `/tmp/pwned` seria criado no sistema de arquivos do usuário.)
### Versão de patches yt-dlp 2026.07.04 corrige este problema validando o esquema de URL antes de qualquer arquivo de atalho ser escrito, e desinfectando corretamente todos os valores de entrada da área de trabalho escritos no arquivo `.desktop` gerado usando as opções `--write-desktop- link` ou `--write-link`. (Mais notadamente: os caracteres de nova linha são substituídos pela sequência de escape correta para a especificação de entrada da área de trabalho freedesktop.org.) ### Arrancamentos Recomenda-se atualizar o yt-dlp para a versão 2026.07.04 O mais rápido possível.
Os usuários que não são capazes de atualizar devem evitar usar qualquer uma das opções `--write-link`, `--write-url-link` ou `--write-desktop-link`. Registro de aconselhamento: GHSA- 6 v 4 J- 43 gg- vj 32. Identificadores relacionados: CVE- 2026 - 55404.
Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 24 T 20: 35: 25.000 Z e lista a sua última modificação como 2026 - 07 - 24 T 20: 35: 26.000 Z. Severidade: ALTAMENTE. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H.
Software afetado e informações de versão: pacote PyPI yt- dlp — ECOSISTEM: introduzido 0, corrigido 2026.7.4. Classificação e evidência: identificadores de fraqueza CWE- 74. O registro contém 7 suporte de referências nestes tipos: WEB, AVISO, EMBALAGAMENTO.