
Desreferência de Ponteiro Nulo no MuPDF , Primeiro CVE descoberto por mim
Desreferência de Ponteiro Nulo na Função de Renderização EPUB do MuPDF 1.26.4
Referência CVE - CVE-2025-55780
Versões Afetadas : 1.26.7 e anteriores são afetadas
Encontrado e testado em : 1.26.4
Pontuação de Gravidade CVSSv3 : 7.5 ( Alta )
Corrigido no commit : https://cgit.ghostscript.com/cgi-bin/cgit.cgi/mupdf.git/commit/?id=bdd5d241748807378a78a622388e0312332513c5
Bugzilla : https://bugs.ghostscript.com/show_bug.cgi?id=708720
Localização da Falha :-
(1a44.55c0): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
mupdf!break_word_for_overflow_wrap+0x243:
00007ff7`6dbf2a23 8b00 mov eax,dword ptr [rax] ds:00000000`00000000=????????
Correção :- Corrigir desreferência de NULL no layout HTML.
Se tivermos um único nó de fluxo que seja grande demais para caber na largura disponível, e estivermos usando o estilo CSS "overflow-wrap:break-word", então tentamos quebrar o nó de fluxo em pedaços menores para que ele possa ser quebrado adequadamente.
Fazemos isso percorrendo o texto do nó de fluxo para dividi-lo em clusters; queremos quebrar no nível de cluster em vez de nível de caractere para evitar problemas com formação de caracteres.
Para texto da direita para a esquerda, os clusters vêm na ordem oposta à esperada e a lógica existente falha.
Isso pode levar o código de divisão a não dividir nada, o que por sua vez pode levar a node->next ser NULL, e nós tentarmos desreferenciar NULL.
A correção é dividir de forma diferente para texto da direita para a esquerda.
Durante a investigação, um problema adicional foi identificado: a forma como estávamos chamando o harfbuzz significava que ele não agrupava os clusters como esperávamos.
Assim, estendemos o código aqui para que nosso 'string_walker' possa chamar o harfbuzz no modo de cluster 'grapheme' em vez do nó de cluster 'character'.
Usando isso, então atualizamos o código para percorrer os fragmentos retornados da string, quebrando o código na posição correta para o espaço necessário, tomando cuidado para lidar corretamente com texto l2r e r2l.
https://nvd.nist.gov/vuln/detail/CVE-2025-55780
https://www.tenable.com/cve/CVE-2025-55780
https://ubuntu.com/security/CVE-2025-55780
https://cvefeed.io/vuln/detail/CVE-2025-55780
https://osv.dev/vulnerability/UBUNTU-CVE-2025-55780
https://cve.akaoma.com/cve-2025-55780
https://vulners.com/cve/CVE-2025-55780
https://bugzilla.redhat.com/show_bug.cgi?id=2397702
https://github.com/advisories/GHSA-756h-grq9-2jvh
https://www.tenable.com/plugins/nessus/266050
https://security-tracker.debian.org/tracker/CVE-2025-55780
https://access.redhat.com/security/cve/cve-2025-55780
https://www.wiz.io/vulnerability-database/cve/cve-2025-55780
https://security.snyk.io/vuln/SNYK-UNMANAGED-MUPDF-13058631
https://feedly.com/cve/CVE-2025-55780
https://vulners.com/cve/CVE-2025-55780
https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-55780&sortby=bydate