
Ricerca e validazione privata per il ripristino del trascinamento file (DnD) in WebKitGTK (follow-up di CVE-2025-13947)
Quaderno di ricerca e CI per ripristinare il drag-and-drop fidato dei file su WebKitGTK e WPE dopo CVE-2025-13947.
CVE-2025-13947 (WSA-2025-0009, GHSA-j77f-3hf7-7rvg) consentiva ai contenuti web di leggere
il contenuto di file locali tramite drag-and-drop su WebKitGTK. La correzione a monte,
bugs.webkit.org 303434, è stata una disattivazione ampia: allowsFileAccess() restituisce
false su tutte le porte non-Cocoa, quindi dataTransfer.files è vuoto per ogni
rilascio, incluso quello di un utente che trascina il proprio file dal file manager su un
target di upload. I browser in stile Epiphany e le UI di upload WebKitGTK embedded
hanno perso la funzionalità. Il bug 320301 è una segnalazione utente finale della stessa regressione.
Separare la fiducia al confine della piattaforma invece di disabilitare la funzionalità. Un
singolo commit sul fork del motore, ramo sirredbeard/WebKit
gtk-dnd-file-access-reenable:
SelectionData::setURIList() non promuove più le righe uri-list a
nomi di file. Le concessioni di file provengono solo dai setter espliciti usati dai
due target di rilascio UIProcess e dalla decodifica IPC.allowsFileAccess() restituisce true solo per trascinamenti di file reali su GTK e WPE.GdkFileList fornito dal portale ha la precedenza su una uri-list parallela,
con lo stesso controllo dell'host URI del file applicato a entrambi i percorsi.file:// e non esportano mai un GdkFileList.file://host/path viene rifiutato a meno che l'host non sia vuoto o localhost.filenames attraversa l'IPC come campo proprio e la copia nel processo web viene
cancellata all'inizio del trascinamento.Le origini di trascinamento create dal web non ottengono contenuti di file. I rilasci da parte
dell'utente di file esterni concedono dataTransfer.files. L'incolla resta disabilitato in attesa di un
audit degli appunti.
Segnalato a monte il 2026-09-03.
2fd5c6cb7ea7, albero bc272e2a5ebe, sul main a monte corrented364838bce86; una nuova esecuzione sull'albero corrente è dovutafindings/findings/upstream-strategy.mdfindings/testing-plan.mdbug_report.md.github/copilot-instructions.mdSingolo commit squashed su main, nessun altro ramo. La macchina di validazione di packaging e GUI
che ha preceduto l'approccio basato solo sul motore è stata rimossa;
findings/ conserva le conclusioni in prosa.