
A vulnerabilidade CVE-2026-3102 permite que metadados manipulados cheguem a uma chamada de sistema no macOS quando o ExifTool copia tags para FileCreateDate.
| Componente | ExifTool em ambientes macOS, com fluxo vulnerável na função SetMacOSTags ao manipular MDItemFSCreationDate e o alias interno FileCreateDate. |
| Vetor | Imagem com metadados maliciosos, uso de -n para aceitar dados brutos e cópia de uma tag de origem, como DateTimeOriginal, para FileCreateDate via -tagsFromFile. |
| Impacto | Execução arbitrária de comandos shell com os privilégios do usuário que executa o ExifTool, porque o valor de data chega sem sanitização ao caminho que invoca /usr/bin/setfile. |
| Prioridade | Atualizar para ExifTool 13.50 ou posterior e revisar scripts, aplicações de processamento em lote e softwares de terceiros que embutem versões antigas da ferramenta. |
| Versões | ExifTool 13.49 é descrito como vulnerável; a correção foi incorporada na versão 13.50. |
| Artefatos | CVE-2026-3102, SetMacOSTags, $val, FileCreateDate, MDItemFSCreationDate, DateTimeOriginal, -n, -tagsFromFile, /usr/bin/setfile. |
A vulnerabilidade CVE-2026-3102 afeta o ExifTool em fluxos executados no macOS e permite transformar metadados de uma imagem em entrada para execução de comandos shell. O ponto crítico está no processamento de atributos de data de criação de arquivo. Quando a ferramenta trabalha com MDItemFSCreationDate, atributo do Spotlight mapeado internamente para FileCreateDate, o conteúdo textual da tag corrente é colocado na variável $val. Em determinadas condições, esse valor é repassado para SetMacOSTags sem a mesma proteção aplicada a outros parâmetros. O problema não está em uma imagem executar código por si só, mas no fato de uma cadeia específica de manipulação de metadados levar conteúdo controlado pelo atacante até uma chamada de sistema no macOS.
O impacto confirmado é execução arbitrária de comandos no contexto do usuário que roda o ExifTool. Esse detalhe é relevante para equipes de segurança porque a ferramenta costuma aparecer em automações de mídia, processamento de fotografias, inventário de ativos digitais, fluxos jornalísticos, pipelines de enriquecimento de arquivos e aplicações que extraem ou normalizam metadados em lote. Se uma dessas rotinas processar imagens não confiáveis e usar o caminho vulnerável de cópia de tags para FileCreateDate, o arquivo passa a ser suficiente para acionar a falha. O material analisado também descreve riscos posteriores, como implantação de trojans, exfiltração de dados e estabelecimento de presença para movimentação lateral, mas esses efeitos dependem do comando injetado, dos privilégios do processo e dos controles de rede e endpoint disponíveis no ambiente.
A falha decorre de sanitização inconsistente antes de uma chamada perigosa. No caminho analisado, o nome do arquivo recebe escape antes de alcançar o sink baseado em system(), mas o valor de data em $val não recebe tratamento equivalente. Como esse valor é usado na construção do comando associado a SetMacOSTags, um atacante consegue inserir aspas simples no conteúdo da tag para quebrar a estrutura esperada do comando e introduzir comandos shell adicionais. A execução ocorre quando o ExifTool invoca o utilitário /usr/bin/setfile no macOS, e a interpretação pelo shell transforma o metadado malformado em parte executável da linha de comando. O resultado é uma condição clássica de injeção de comando por concatenação de string, com a particularidade de estar escondida em metadados de imagem.
O contexto descreve uma pré-condição importante: gravar diretamente um payload de data inválido em FileCreateDate não basta, porque o filtro interno PrintConvInv rejeita formatos de data e hora que não atendem à validação esperada. A exploração contorna essa barreira com a opção -n, que força o aceite de dados brutos em formato legível por máquina e evita a conversão que bloquearia o valor malformado. Ainda assim, o caminho vulnerável só é acionado durante uma operação de cópia, não em uma escrita direta simples. A sequência técnica, portanto, envolve estacionar o payload em uma tag de origem não restrita, como DateTimeOriginal, e depois usar -tagsFromFile para copiar o conteúdo contaminado para FileCreateDate. Essa passagem é o ponto em que o dado não sanitizado alcança SetMacOSTags e segue para a chamada de sistema.
A superfície de risco concentra-se em macOS, porque o caminho vulnerável depende do tratamento de tags específico do sistema e da chamada ao utilitário /usr/bin/setfile. Ambientes que usam ExifTool manualmente continuam expostos se operadores processarem imagens recebidas de terceiros com a versão vulnerável e com comandos que acionem a cópia para FileCreateDate. O risco aumenta em automações, pois scripts em lote normalmente operam sobre grandes volumes de arquivos e podem executar com permissões de contas de serviço, usuários de estáções de trabalho ou identidades usadas por aplicações de gerenciamento de ativos. A presença de ExifTool como dependência embutida em software de terceiros também precisa ser considerada, já que a ferramenta pode existir sem aparecer como pacote instalado diretamente pelo administrador.
A versão 13.49 é descrita como vulnerável por usar concatenação frágil para montar comandos de sistema. A versão 13.50 corrige a arquitetura da chamada ao introduzir um wrapper System() e trocar a execução baseada em string concatenada por uma lista segura de argumentos. Essa mudança é mais importante do que apenas adicionar escape pontual, porque remove a interpretação shell do conteúdo controlado e reduz a dependência de rotinas manuais de sanitização. Para defesa, a pergunta operacional não é apenas se há usuários abrindo imagens, mas onde metadados de arquivos não confiáveis são reescritos, copiados, normalizados ou sincronizados em macOS com ExifTool antigo.
- Estáções macOS que executam
ExifTool13.49 em rotinas de leitura, escrita ou cópia de metadados. - Pipelines de processamento de fotos, acervos digitais, fluxos jornalísticos e aplicações de asset management que manipulam arquivos enviados por terceiros.
- Softwares de terceiros que incorporam versões antigas do
ExifToole chamam a ferramenta sem expor claramente essa dependência ao inventário de pacotes. - Comandos que combinam
-n, uma tag de origem comoDateTimeOriginale cópia paraFileCreateDatepor meio de-tagsFromFile.
A investigação deve partir de dois eixos: presença de versões vulneráveis e evidência de execução anômala a partir de fluxos de metadados. Em endpoints macOS, procure execuções de ExifTool seguidas por chamadas a /usr/bin/setfile, especialmente quando a linha de comando inclui -tagsFromFile, -n, FileCreateDate ou tags de data copiadas entre arquivos. O contexto não fornece IoCs de infraestrutura, hashes ou domínios maliciosos, então a detecção não deve depender de indicadores estáticos inexistentes. O foco deve ser comportamento: metadados de imagem servindo como origem de valores incomuns, processos filhos inesperados e comandos shell acionados no mesmo encadeamento operacional de processamento de arquivo.
Em ambientes corporativos, a telemetria útil inclui histórico de comandos, eventos de criação de processo, logs de EDR, registros de automações que invocam ExifTool, trilhas de CI/CD ou filas de processamento que recebem imagens externas. A busca também deve cobrir diretórios temporários, caches de aplicações de mídia e pastas usadas por ferramentas de ingestão de arquivos. Uma pista forte é a combinação de metadados de data fora do padrão com execução de comandos logo após a normalização de imagem. Como o ataque depende do conteúdo de tags, análises forenses devem preservar a imagem original e os metadados antes que ferramentas de limpeza ou reprocessamento removam evidências da sequência usada para acionar FileCreateDate.
- Execuções de
ExifToolcom-ne-tagsFromFileem hosts macOS. - Chamadas a
/usr/bin/setfileoriginadas de scripts ou aplicações que processam imagens recebidas de fontes externas. - Uso de
FileCreateDate,MDItemFSCreationDateouDateTimeOriginalem comandos de cópia de metadados. - Processos filhos inesperados ou comandos shell iniciados no contexto do usuário que executa rotinas de metadados.
- Versões locais ou embutidas de
ExifToolanteriores à 13.50 em aplicações de processamento de mídia.
A primeira ação defensiva é atualizar ExifTool para a versão 13.50 ou posterior em todos os pontos de execução conhecidos. A correção substitui a montagem de comando por string por uma chamada em forma de lista de argumentos através de System(), o que elimina a interpretação shell que permitia a injeção por aspas simples. Depois da atualização do binário principal, é necessário verificar aplicações que tragam cópias próprias da ferramenta, porque elas podem continuar usando a versão 13.49 mesmo quando o pacote do sistema já foi corrigido. Scripts de automação devem registrar explicitamente a versão executada em produção e falhar de forma controlada quando encontrarem uma versão antiga.
A contenção operacional deve tratar imagens não confiáveis como entrada ativa para processamento, não apenas como conteúdo passivo. Ambientes que recebem arquivos de terceiros devem isolar a normalização de metadados em máquinas virtuais, contêineres ou zonas com armazenamento e rede restritos, de acordo com as capacidades do macOS e da arquitetura local. Também é recomendável revisar comandos que usam -n e -tagsFromFile, pois essa combinação aparece no fluxo necessário para contornar a validação de data e acionar a cópia para FileCreateDate. Para BYOD, a exigência prática é impedir que dispositivos sem proteção de endpoint e sem controle de versão de ferramentas acessem redes corporativas onde imagens de trabalho e automações internas são processadas.
- Atualizar instalações conhecidas para
ExifTool13.50 ou posterior. - Inventariar cópias embutidas de
ExifToolem softwares de terceiros e aplicações internas. - Revisar scripts que copiam metadados para
FileCreateDate, principalmente quando usam-ne-tagsFromFile. - Executar processamento de arquivos não confiáveis em ambientes isolados, com acesso limitado a rede e armazenamento.
- Adicionar telemetria para criação de processos em torno de
ExifToole/usr/bin/setfileem estáções macOS. - Validar a mitigação com testes controlados que confirmem a versão corrigida e a ausência de interpretação shell no caminho de cópia de tags.
0 Comentários