{"id":"CVE-2025-46653","aliases":["DEBIAN-CVE-2025-46653","EUVD-2025-12478","GHSA-75v8-2h7p-7m2m","ROOT-APP-NPM-CVE-2025-46653","UBUNTU-CVE-2025-46653"],"status":"published","title":"Formidable relies on hexoid to prevent guessing of filenames for untrusted executable content","description":"Formidable (aka node-formidable) 2.1.0 through 3.x before 3.5.3 relies on hexoid to prevent guessing of filenames for untrusted executable content; however, hexoid is documented as not \"cryptographically secure.\" (Also, there is a scenario in which only the last two characters of a hexoid string need to be guessed, but this is not often relevant.) NOTE: this does not imply that, in a typical use case, attackers will be able to exploit any hexoid behavior to upload and execute their own content.","severity":{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00446,"percentile":0.39087,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-338"],"published":"2025-04-26T00:00:00Z","modified":"2026-10-28T02:30:48Z","fixes":[{"ecosystem":"npm","package":"formidable","fixed_in":["3.5.3","2.1.3"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:14","package":"node-formidable","fixed_in":["3.5.4+~cs11.10.5-1"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"formidable","fixed_in":["2.1.2-aikido.2","2.1.2-aikido.3"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/formidable","fixed_in":["2.1.2-root.io.1","2.1.2-root.io.2","2.1.2-root.io.3"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.1.1-canary.20211030"},{"fixed":"3.5.3"}]}]},{"source":"ghsa","ecosystem":"npm","package":"formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.1.0"},{"fixed":"2.1.3"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"node-formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.2.5+20221017git493ec88+~cs4.0.9-1","3.5.3+~cs11.10.5-1","3.5.4+~cs11.10.5-1","3.5.4+~cs11.10.5-2"]},{"source":"osv","ecosystem":"Debian:13","package":"node-formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.2.5+20221017git493ec88+~cs4.0.9-1","3.5.3+~cs11.10.5-1","3.5.4+~cs11.10.5-1","3.5.4+~cs11.10.5-2"]},{"source":"osv","ecosystem":"Debian:14","package":"node-formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.5.4+~cs11.10.5-1"}]}],"versions":["3.2.5+20221017git493ec88+~cs4.0.9-1","3.5.3+~cs11.10.5-1"]},{"source":"osv","ecosystem":"npm","package":"formidable","ranges":[{"type":"SEMVER","events":[{"introduced":"3.1.1-canary.20211030"},{"fixed":"3.5.3"}]}]},{"source":"osv","ecosystem":"npm","package":"formidable","ranges":[{"type":"SEMVER","events":[{"introduced":"2.1.0"},{"fixed":"2.1.3"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.2-aikido.2"},{"fixed":"2.1.2-aikido.3"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.2-root.io.1"},{"fixed":"2.1.2-root.io.2"},{"fixed":"2.1.2-root.io.3"}]}]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"node-formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.0.13-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"node-formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.0.13-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"node-formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.1-3"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"node-formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.1+20200129git8231ea6-1","1.2.1+20200129git8231ea6-2","3.2.1+20220105git2815e91+~cs4.0.6-4"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"node-formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.2.5+20221017git493ec88+~cs4.0.9-1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"node-formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.2.5+20221017git493ec88+~cs4.0.9-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"node-formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.2.5+20221017git493ec88+~cs4.0.9-1","3.5.4+~cs11.10.5-1","3.5.4+~cs11.10.5-2"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"node-formidable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.2.5+20221017git493ec88+~cs4.0.9-1"]}],"products":[{"vendor":"node-formidable","product":"formidable"}],"references":[{"url":"https://github.com/zast-ai/vulnerability-reports/blob/main/formidable/file_upload/report.md","tags":["exploit","Exploit","Third Party Advisory","web","report"]},{"url":"https://github.com/node-formidable/formidable/blob/d0fbec13edc8add54a1afb9ce1a8d3db803f8d47/CHANGELOG.md?plain=1#L10","tags":["Product","web","report"]},{"url":"https://github.com/node-formidable/formidable/commit/022c2c5577dfe14d2947f10909d81b03b6070bf5","tags":["Patch","fix","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-46653","tags":["advisory"]},{"url":"https://github.com/node-formidable/formidable/commit/37a3e89fca1ed68ec674a539f13aafd62221ddaa","tags":["web"]},{"url":"https://www.npmjs.com/package/formidable/v/2.1.3","tags":["web"]},{"url":"https://www.npmjs.com/package/formidable/v/3.5.3","tags":["web"]},{"url":"https://github.com/advisories/GHSA-75v8-2h7p-7m2m"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/46xxx/CVE-2025-46653.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2025-46653","tags":["advisory"]},{"url":"https://github.com/node-formidable/formidable","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2025-46653","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2025-46653","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2025-46653","description":"Formidable (aka node-formidable) 2.1.0 through 3.x before 3.5.3 relies on hexoid to prevent guessing of filenames for untrusted executable content; however, hexoid is documented as not \"cryptographically secure.\" (Also, there is a scenario in which only the last two characters of a hexoid string need to be guessed, but this is not often relevant.) NOTE: this does not imply that, in a typical use case, attackers will be able to exploit any hexoid behavior to upload and execute their own content.","status":"published","published":"2025-04-26T00:00:00Z","modified":"2025-04-29T15:22:37.44Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low","assessor":"cna"}],"cwes":["CWE-338"],"updated_at":"2026-11-02T14:32:36.706507Z"}],"euvd":[{"id":"EUVD-2025-12478","description":"Formidable (aka node-formidable) 2.1.0 through 3.x before 3.5.3 relies on hexoid to prevent guessing of filenames for untrusted executable content; however, hexoid is documented as not \"cryptographically secure.\" (Also, there is a scenario in which only the last two characters of a hexoid string need to be guessed, but this is not often relevant.) NOTE: this does not imply that, in a typical use case, attackers will be able to exploit any hexoid behavior to upload and execute their own content.","status":"published","published":"2025-04-26T00:00:00Z","modified":"2025-04-29T15:22:37Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-02T20:52:00.449871Z"}],"ghsa":[{"id":"GHSA-75v8-2h7p-7m2m","title":"Formidable relies on hexoid to prevent guessing of filenames for untrusted executable content","description":"Formidable (aka node-formidable) 2.x before 2.1.3 and 3.x before 3.5.3 relies on hexoid to prevent guessing of filenames for untrusted executable content; however, hexoid is documented as not \"cryptographically secure.\" (Also, there is a scenario in which only the last two characters of a hexoid string need to be guessed, but this is not often relevant.) NOTE: this does not imply that, in a typical use case, attackers will be able to exploit any hexoid behavior to upload and execute their own content.","status":"published","published":"2025-04-26T21:31:26Z","modified":"2025-05-27T18:49:22Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-338"],"updated_at":"2026-11-02T14:38:44.991725Z"}],"nvd":[{"id":"CVE-2025-46653","description":"Formidable (aka node-formidable) 2.1.0 through 3.x before 3.5.3 relies on hexoid to prevent guessing of filenames for untrusted executable content; however, hexoid is documented as not \"cryptographically secure.\" (Also, there is a scenario in which only the last two characters of a hexoid string need to be guessed, but this is not often relevant.) NOTE: this does not imply that, in a typical use case, attackers will be able to exploit any hexoid behavior to upload and execute their own content.","status":"published","published":"2025-04-26T21:15:14.403Z","modified":"2026-06-17T09:26:46.733Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low","assessor":"secondary"},{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low","assessor":"primary"}],"cwes":["CWE-338"],"updated_at":"2026-11-02T14:11:02.570368Z"}],"osv":[{"id":"CVE-2025-46653","description":"Formidable (aka node-formidable) 2.1.0 through 3.x before 3.5.3 relies on hexoid to prevent guessing of filenames for untrusted executable content; however, hexoid is documented as not \"cryptographically secure.\" (Also, there is a scenario in which only the last two characters of a hexoid string need to be guessed, but this is not often relevant.) NOTE: this does not imply that, in a typical use case, attackers will be able to exploit any hexoid behavior to upload and execute their own content.","status":"published","published":"2025-04-26T00:00:00Z","modified":"2026-10-28T02:30:48.851510398Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-338"],"updated_at":"2026-11-02T15:44:49.707645Z"},{"id":"DEBIAN-CVE-2025-46653","description":"Formidable (aka node-formidable) 2.1.0 through 3.x before 3.5.3 relies on hexoid to prevent guessing of filenames for untrusted executable content; however, hexoid is documented as not \"cryptographically secure.\" (Also, there is a scenario in which only the last two characters of a hexoid string need to be guessed, but this is not often relevant.) NOTE: this does not imply that, in a typical use case, attackers will be able to exploit any hexoid behavior to upload and execute their own content.","status":"published","published":"2025-04-26T21:15:14.403Z","modified":"2026-09-01T20:05:52.894385541Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-02T15:45:47.378563Z"},{"id":"GHSA-75v8-2h7p-7m2m","title":"Formidable relies on hexoid to prevent guessing of filenames for untrusted executable content","description":"Formidable (aka node-formidable) 2.x before 2.1.3 and 3.x before 3.5.3 relies on hexoid to prevent guessing of filenames for untrusted executable content; however, hexoid is documented as not \"cryptographically secure.\" (Also, there is a scenario in which only the last two characters of a hexoid string need to be guessed, but this is not often relevant.) NOTE: this does not imply that, in a typical use case, attackers will be able to exploit any hexoid behavior to upload and execute their own content.","status":"published","published":"2025-04-26T21:31:26Z","modified":"2026-09-10T03:50:57.155224061Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-338"],"updated_at":"2026-11-02T15:46:40.657155Z"},{"id":"UBUNTU-CVE-2025-46653","description":"Formidable (aka node-formidable) 2.1.0 through 3.x before 3.5.3 relies on hexoid to prevent guessing of filenames for untrusted executable content; however, hexoid is documented as not \"cryptographically secure.\" (Also, there is a scenario in which only the last two characters of a hexoid string need to be guessed, but this is not often relevant.) NOTE: this does not imply that, in a typical use case, attackers will be able to exploit any hexoid behavior to upload and execute their own content.","status":"published","published":"2025-04-26T21:15:00Z","modified":"2026-10-27T04:15:23.62687531Z","cvss":[{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"},{"version":"3.1","score":3.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-02T16:55:50.31802Z"},{"id":"ROOT-APP-NPM-CVE-2025-46653","title":"CVE-2025-46653 in formidable - Patched by Root","description":"Root has patched CVE-2025-46653 in the formidable package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-08-07T07:11:47Z","modified":"2026-08-07T08:45:17.969944634Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
