dulwich: Sanitização de assunto de commit em format_patch para evitar path traversal
dulwich.porcelain.format_patch e a CLI format-patch agora sanitizam assuntos de commit para evitar path traversal e injeção de nomes de arquivo. Antes, get_summ
O que mudou
dulwich.porcelain.format_patch e a CLI format-patch agora sanitizam assuntos de commit para evitar path traversal e injeção de nomes de arquivo. Antes, get_summary apenas substituía espaços por traços, permitindo que assuntos maliciosos escrevessem arquivos de patch fora do outdir pretendido. Agora get_summary espelha o format_sanitized_subject do git: apenas [A-Za-z0-9._] são mantidos, sequências de outros caracteres são colapsadas em um único traço, pontos consecutivos colapsam em um único ponto, pontos/traços finais são removidos e o comprimento é limitado.
Quem isso afeta
Usuários de dulwich que chamam porcelain.format_patch ou a CLI format-patch com commits não confiáveis, por exemplo, serviços que executam format-patch em repositórios ou pull requests fornecidos pelo usuário.
O que fazer hoje
Atualize para Dulwich 1.2.5 ou aplique uma das soluções alternativas: use stdout=True e controle o destino, valide o caminho resolvido em relação ao outdir, ou pré-examine os assuntos dos commits em busca de caracteres inseguros.