utf8To16() 为解码 100 MB 的粘贴内容分配了约 3.4 GB 内存,导致浏览器崩溃
作者: gpaugam-mvg创建于 2026年9月18日更新于 2026年9月18日
标签code qualityjavascript
CryptTool.utf8To16() (js/privatebin.js:1007, unchanged in master) 解码解压后的粘贴内容如下:
decodeURIComponent(message.split('').map(c => '%' + hex(c)).join(''))对于 78 MB 的附件,输入为 104,000,113 个字符。这会生成一个包含 1 个字符的 104M 元素数组,然后是一个新分配的 3 个字符的 104M 元素数组,然后是一个 312M 个字符的字符串。
内容来源: PrivateBin/PrivateBin