Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Palimpsest — CVE-2026-74945 · Divulgazione di heap non inizializzato tramite un font web appositamente creato (sec-high) | Kitploit
Strumenti/GitHubGitHub/defineid/palimpsest
Generazione di PayloadAnalisi delle VulnerabilitàExploitSicurezza Web
GitHubdefineid/palimpsest

Palimpsest

CVE-2026-74945 · Divulgazione di heap non inizializzato tramite un font web appositamente creato (sec-high)

Vedi Repository
3 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Palimpsest

CVE-2026-74945 · Divulgazione di heap non inizializzato tramite un font web manipolato

Gravità di sicurezza: alta. CWE 908 e CWE 200. Corretto in Firefox 154. Bugzilla 2057808. Raggiungibile da una normale pagina web tramite @font-face.

Riepilogo

Firefox igienizza i font web tramite OTS prima dell'uso. Tre difetti si allineano così che un font manipolato restituisca alla pagina heap di processo non inizializzato. Una singola chiamata measureText lo legge circa due byte alla volta su una finestra di 64 KB.

Causa principale

Lo stream di output OTS cresce con moz_xrealloc, che non azzera mai la memoria. Il suo Seek accetta qualsiasi posizione fino alla dimensione dell'allocazione e non riempie mai di zeri il vuoto. forget dimensiona il buffer all'offset più alto raggiunto. Qualsiasi vuoto tra l'ultima scrittura e un Seek in avanti viene quindi consegnato al chiamante insieme a vecchio heap.

Una sottotabella cmap in formato 14 con un nonDefaultUVSOffset grande fa avanzare il serializzatore con Seek e lascia il vuoto all'interno del font emesso. Una sottotabella compagna in formato 4 con uno id_range_offset dispari sull'ultimo segmento viene emessa così com'è. Il controllo dei limiti della ricerca dei glifi usa il resto dell'intera cmap piuttosto che la sottotabella. Un salto nella regione della sottotabella adiacente passa.

MapCharToGlyphFormat4 finisce sul segmento manipolato e restituisce un id di glifo letto dal vuoto. Il suo avanzamento hmtx è direttamente misurabile da canvas.

Il flusso

Vuoto non inizializzato fatto trapelare tramite measureText

Riproduzione

root@kitploit:~
pip install fonttools brotli
python3 make_poc_font.py        # builds poc.woff
# serve this folder and open poc.html

poc.html stampa la larghezza di avanzamento di U+FFFF a ogni lettura. Ogni valore traccia un id di glifo letto dal vuoto. Per vedere byte non inizializzati diversi da zero, usa una build MSan oppure una build mozjemalloc con riempimento di spazzatura. Il problema interessa Windows tramite DWrite e macOS tramite CoreText. OTS viene eseguito in-process e non è in sandbox.

Impatto

Una divulgazione controllabile e ripetibile via web di heap di processo non inizializzato. Può rivelare puntatori o segreti.

Correzione

Due modifiche. Una qualsiasi delle due spezza la catena. Azzera l'intervallo appena allocato nello stream di output OTS. Controlla la lunghezza della sottotabella in formato 4 così che il controllo dei limiti non possa usare il resto della cmap. Firefox ha implementato entrambe.

Crediti

Abdulaziz Alasaiqah · https://azoz.my/writeups.html

Scarica lo strumento