Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
detect_CVE-2026-86950 — Uma ferramenta em Python para detectar arquivos PDF que exploram a CVE-2026-86950 | Kitploit
Ferramentas/GitHubGitHub/decalage2/detect_cve-2026-86950
Análise EstáticaScanners de VulnerabilidadesAnálise de VulnerabilidadesExploraçãoAnálise de MalwarePapers e Pesquisa
GitHubdecalage2/detect_cve-2026-86950

detect_CVE-2026-86950

Uma ferramenta em Python para detectar arquivos PDF que exploram a CVE-2026-86950

Ver Repositório
62há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Detector de exploit PDF CVE-2026-86950

Para mais contexto sobre este projeto e a CVE-2026-86950, consulte https://decalage.info/CVE-2026-86950/

Aviso legal: a maior parte deste readme e do código de detecção foi escrita com a ajuda de agentes de codificação de IA. A ferramenta foi testada com sucesso em milhares de arquivos PDF legítimos e na prova de conceito disponível publicada aqui. No entanto, esta ferramenta é nova e o algoritmo de detecção é bastante complexo, portanto use-a com cautela.

detect_cve_2026_86950.py examina estaticamente arquivos PDF em busca de fontes incorporadas criadas para explorar a CVE-2026-86950 ("The Great Glyph Grift"), uma gravação fora dos limites (out-of-bounds write) no rasterizador de glifos com anti-aliasing do Apple CoreGraphics (corrigida no iOS / macOS 26.7.1).

Ele nunca renderiza a fonte nem executa qualquer código de exploit — ele analisa o PDF e o programa de fonte incorporado e procura a assinatura estrutural do ataque.

A vulnerabilidade (por que a detecção funciona)

O CoreGraphics converte uma coordenada de dispositivo em ponto flutuante em um inteiro de ponto fixo 16.12 com aproximadamente:

int32_t aa_double_to_fixed(double px) { return (int32_t)(0.5 + 4096.0 * px); }

Quando 4096 * px excede o intervalo de int32, a conversão é comportamento indefinido, e dois locais de chamada (aa_moveto vs. aa_lineto) divergem — um satura, o outro trunca. Essa divergência corrompe o cálculo da caixa delimitadora do glifo em aa_add_edges, de modo que o buffer de cobertura em aa_cache_render é alocado com tamanho insuficiente e o rasterizador escreve fora dos limites. O patch 26.7.1 adiciona clamping explícito para ±0x3FFFF001.

A prova de conceito pública constrói uma fonte TrueType maliciosa que força uma coordenada superdimensionada desse tipo:

  • uma cadeia profunda de glifos compostos, cada um escalando o anterior em ~2× (escala F2Dot14 próxima do seu máximo de ~1,99994);
  • um glifo folha minúsculo com um contorno degenerado de 2 pontos em uma coordenada grande;
  • assim, o contorno real do glifo superior atinge ~16 milhões de unidades de fonte (~1000× o quadrado em) enquanto a caixa delimitadora armazenada do glifo permanece minúscula;
  • em um tamanho de texto grande (/Tf 1024), 4096 × device_coord estoura int32.

O que o detector verifica

  1. Extrai cada programa de fonte de contorno embutido com pikepdf — TrueType (/FontFile2) e CFF / OpenType (/FontFile3).
  2. Analisa cada fonte com fontTools e mede a extensão real das coordenadas de cada glifo:
    • TrueType: resolve recursivamente os componentes compostos (assim, uma cadeia de escalonamento aninhada é seguida até sua extensão real);
    • CFF / Type2: desenha cada charstring através de uma caneta de limites de controle (assim, coordenadas acumuladas ao longo de muitos operadores relativos são medidas).
  3. Sinaliza uma fonte quando qualquer uma destas condições se aplica:
    • o contorno real de um glifo se estende muito além do quadrado em (nenhum glifo legítimo faz isso — limite de 10× em, quase certo acima de 100× em);
    • a extensão real ofusca a própria caixa delimitadora declarada do glifo (a "mentira" da caixa delimitadora da qual o exploit depende);
    • (somente TrueType) aninhamento composto profundo combinado com componentes de escalonamento crescente (>1) — a cadeia de amplificação de coordenadas que o PoC público usa.
  4. Combina a coordenada de pior caso com os tamanhos de texto usados nos fluxos de conteúdo da página (/Tf, Tm) e verifica se 4096 × device_coord realmente excede INT32_MAX — ou seja, se o estouro de ponto fixo é alcançável.

Veredictos: exploit (estouro alcançável), suspicious (geometria superdimensionada mas sem estouro no tamanho observado), clean.

Instalação e execução

# with uv (recommended)
uv venv
uv pip install -r requirements.txt

# or any environment with pikepdf + fonttools
python3 detect_cve_2026_86950.py suspicious.pdf
python3 detect_cve_2026_86950.py -v *.pdf      # per-font details
python3 detect_cve_2026_86950.py --json f.pdf  # machine-readable

Código de saída: 0 limpo, 1 exploit/suspeito encontrado, 2 erro.

Limitações

  • A causa raiz da CVE é a conversão de ponto fixo no rasterizador de caminho compartilhado aa_* do CoreGraphics, que renderiza tanto contornos TrueType glyf quanto CFF/Type2. O PoC público amplifica coordenadas com glifos compostos TrueType; uma fonte CFF pode atingir coordenadas superdimensionadas diretamente (por exemplo, acumulando operadores relativos), portanto tanto /FontFile2 quanto /FontFile3 são analisados. A heurística de cadeia composta é específica de TrueType; para CFF, o sinal é a verificação de coordenada superdimensionada / bounding-box mentirosa.
  • A varredura de tamanho de texto (/Tf, Tm) dos fluxos de conteúdo é de melhor esforço; ela não avalia completamente o estado gráfico do PDF / CTM. Quando nenhum tamanho é encontrado, um padrão conservador de 1024 é assumido para a verificação de overflow. Os sinais de geometria superdimensionada intrínsecos à fonte não dependem disso.
  • Este é um detector estrutural heurístico, não um renderizador em sandbox: ele se destina a capturar o padrão de exploit conhecido e fontes obviamente malformadas, não a provar que um arquivo é seguro.
Baixar ferramenta