O adaptador `@ astrojs/netlify` converte cada entrada `image. remotePatterns` em uma expressão regular que está escrita para `.netlify/v 1 /config.json` em `images.remote_ images`. Imagem do Netlify CDN usa esses regexes como a lista de permissão que decide quais URLs de imagens remotas ele irá otimizar. ` remotePatternToRegex()` escapa `.` no nome do host, mas interpola o `pathname' literal para o regex ** sem escapar dos metacaracteristas de regex**. Como resultado, a lista de permissões gerada é mais ampla do que o padrão declarado pelo desenvolvedor, e mais ampla do que o ajudante canônico `matchPattern()' do Astro (que compara os caminhos não- wildcards por igualdade exata de string). Este é um residual da mesma classe de erros abordada no CVE- 2026 - 54300 (PR # 17018, commit ` 1310277 d`). Essa correção corrigida semântica comodual e adicionado uma âncora `$`, mas não adiciona metacaracter escapando para os caminhos literais. Em `pacotes/integrações/netlify/src/index.ts`, `remotePatternToRegex()` escapa pontos no nome do hospedeiro. ``` js regexStr += nome do host.replace(/\./g, '\\.'); ```.

mas interpola o caminho sem escapular nos três ramos, por exemplo, o ramo exato: ``` js regexStr += `(\\${pathname})`; ```. Qualquer meta- caractere do regex no caminho literal (`.`, `+`, `?`, `(`, `[`,...)) é, portanto, passado por bruto. Porque `.` corresponde a qualquer caractere (incluindo `/`), um padrão restritivo é alargado silenciosamente. O limite de segurança no Netlify é o próprio regex gerado — o CDN de Imagem do Netlify o força diretamente e o tempo de execução do Astro ` matchPattern()` não está no loop deste caminho, por isso não há camada compensadora que revalide o pedido.

Configure um site SSR com um caminho literal contendo um `.`. ```js // astro.config.mjs image: { remotePatterns: [{ protocol: 'https', nome de máquina: 'cdn.exemplo.com', nome de caminho: '/img/v 1.0 / arquivo ', }], } ``` Execute `astro build` e inspecione `.netlify/ v 1 /config.json` `images.remote_images[ 0 ]`. ``` 0 - 9 ]+)?(\/img/v 1.0 /file([?][^#]*)?$ ``` Testando o regex gerado. - ` 1.0 /file` -> MATCH (pretendeu) - ` 1 X 0 /file` -> MATCH (bypass; the unscaped `.` coincide com qualquer caracter) - ` 1 / 0 /file` -> MATCH (via; `.` também combina `/`, atravessando um segmento de caminho).

O canônico `matchPattern()` (exatamente a igualdade de string no nome do caminho) do Astro rejeita ambos os URLs de bypass. Imagem do Netlify CDN aceita pedidos de otimização de URLs no host permitido que a entrada `remotePatterns` do desenvolvedor foi destinada a excluir. O nome do host permanece ancorado corretamente, por isso a ampliação está confinada à dimensão do nome do caminho num host já permitido. O impacto realista depende de se outras imagens que o desenvolvedor pretendia manter fora de seu CDN existem em caminhos meta- caracter- adjacentes naquele hospedeiro. Isto afeta configurações razoáveis e não permissivas, uma vez que qualquer `pathname` contendo um `.` (extensões de arquivo, segmentos de versão) é afetado. Uma correção irá escapar de todos os metacaracters do regex nas porções literais de cada componente `remotePatterns` antes da interpolação, aplicando apenas semântica documentada do comodinhos do Astro explicitamente. Um corpus de regressão valida os registros de Netlify gerados contra `@ astrojs/internal-helpers` `matchPattern()`.

Evite meta- caracteres regex (nomeadamente `.`) nos valores `image.remotePatterns[].pathname`, ou escore o hospedeiro permitido para que os caminhos não desejados não sejam alcançáveis. Relato pelo @sec-reex como parte de um estudo de medição incompleto (informação responsável). Registro de aconselhamento: GHSA- hp 3 v- mfqw- h 74 c. Identificadores relacionados: CVE- 2026 - 73425.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 20 T 23: 24: 34.000 Z e lista a sua última modificação como 2026 - 08 - 13 T 15: 18: 37.000 Z. Severidade: LOW. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N.

Software afetado e informações de versão: pacote npm @ astrojs/netlify — ECOSISTEM: introduzido 0, corrigido 8.1.2. Classificação e evidência: identificadores de fraqueza CWE- 185. O registro contém 8 suporte de referências nestes tipos: WEB, AVISO, EMBALAGAMENTO.