A Leader in the 2026 Gartner® Magic Quadrant™ for Endpoint Protection. Six years running.Six years. Gartner® Magic Quadrant™ Leader.Find Out Why
Experiencing a Breach?Blog
Get StartedContact Us
SentinelOne
  • Platform
    Platform Overview
    • Singularity Platform
      Welcome to Integrated Enterprise Security
    • AI for Security
      Leading the Way in AI-Powered Security Solutions
    • Securing AI
      Accelerate AI Adoption with Secure AI Tools, Apps, and Agents.
    • How It Works
      The Singularity XDR Difference
    • Singularity Marketplace
      One-Click Integrations to Unlock the Power of XDR
    • Pricing & Packaging
      Comparisons and Guidance at a Glance
    Data & AI
    • Purple AI
      Accelerate SecOps with Generative AI
    • Singularity Hyperautomation
      Easily Automate Security Processes
    • AI-SIEM
      The AI SIEM for the Autonomous SOC
    • AI Data Pipelines
      Security Data Pipeline for AI SIEM and Data Optimization
    • Singularity Data Lake
      AI-Powered, Unified Data Lake
    • Singularity Data Lake for Log Analytics
      Seamlessly Ingest Data from On-Prem, Cloud or Hybrid Environments
    Endpoint Security
    • Singularity Endpoint
      Autonomous Prevention, Detection, and Response
    • Singularity XDR
      Native & Open Protection, Detection, and Response
    • Singularity RemoteOps Forensics
      Orchestrate Forensics at Scale
    • Singularity Threat Intelligence
      Comprehensive Adversary Intelligence
    • Singularity Vulnerability Management
      Application & OS Vulnerability Management
    • Singularity Identity
      Identity Threat Detection and Response
    Cloud Security
    • Singularity Cloud Security
      Block Attacks with an AI-Powered CNAPP
    • Singularity Cloud Native Security
      Secure Cloud and Development Resources
    • Singularity Cloud Workload Security
      Real-Time Cloud Workload Protection Platform
    • Singularity Cloud Data Security
      AI-Powered Threat Detection for Cloud Storage
    • Singularity Cloud Security Posture Management
      Detect and Remediate Cloud Misconfigurations
    Securing AI
    • Prompt Security
      Secure AI Tools Across Your Enterprise
  • Why SentinelOne?
    Why SentinelOne?
    • Why SentinelOne?
      Cybersecurity Built for What’s Next
    • Our Customers
      Trusted by the World’s Leading Enterprises
    • Industry Recognition
      Tested and Proven by the Experts
    • About Us
      The Industry Leader in Autonomous Cybersecurity
    Compare SentinelOne
    • Arctic Wolf
    • Broadcom
    • CrowdStrike
    • Cybereason
    • Microsoft
    • Palo Alto Networks
    • Sophos
    • Splunk
    • Trellix
    • Trend Micro
    • Wiz
    Verticals
    • Energy
    • Federal Government
    • Finance
    • Healthcare
    • Higher Education
    • K-12 Education
    • Manufacturing
    • Retail
    • State and Local Government
  • Services
    Managed Services
    • Managed Services Overview
      Wayfinder Threat Detection & Response
    • Threat Hunting
      World-Class Expertise and Threat Intelligence
    • Managed Detection & Response
      24/7/365 Expert MDR Across Your Entire Environment
    • Incident Readiness & Response
      DFIR, Breach Readiness, & Compromise Assessments
    Support, Deployment, & Health
    • Technical Account Management
      Customer Success with Personalized Service
    • SentinelOne GO
      Guided Onboarding & Deployment Advisory
    • SentinelOne University
      Live and On-Demand Training
    • Services Overview
      Comprehensive Solutions for Seamless Security Operations
    • SentinelOne Community
      Community Login
  • Partners
    Our Network
    • MSSP Partners
      Succeed Faster with SentinelOne
    • Singularity Marketplace
      Extend the Power of S1 Technology
    • Cyber Risk Partners
      Enlist Pro Response and Advisory Teams
    • Technology Alliances
      Integrated, Enterprise-Scale Solutions
    • SentinelOne for AWS
      Hosted in AWS Regions Around the World
    • Channel Partners
      Deliver the Right Solutions, Together
    • SentinelOne for Google Cloud
      Unified, Autonomous Security Giving Defenders the Advantage at Global Scale
    • Partner Locator
      Your Go-to Source for Our Top Partners in Your Region
    Partner Portal→
  • Resources
    Resource Center
    • Case Studies
    • Data Sheets
    • eBooks
    • Reports
    • Videos
    • Webinars
    • Whitepapers
    • Events
    View All Resources→
    Blog
    • Feature Spotlight
    • For CISO/CIO
    • From the Front Lines
    • Identity
    • Cloud
    • macOS
    • SentinelOne Blog
    Blog→
    Tech Resources
    • SentinelLABS
    • Ransomware Anthology
    • Cybersecurity 101
  • About
    About SentinelOne
    • About SentinelOne
      The Industry Leader in Cybersecurity
    • Investor Relations
      Financial Information & Events
    • SentinelLABS
      Threat Research for the Modern Threat Hunter
    • Careers
      The Latest Job Opportunities
    • Press & News
      Company Announcements
    • Cybersecurity Blog
      The Latest Cybersecurity Threats, News, & More
    • FAQ
      Get Answers to Our Most Frequently Asked Questions
    • DataSet
      The Live Data Platform
    • S Foundation
      Securing a Safer Future for All
    • S Ventures
      Investing in the Next Generation of Security, Data and AI
  • Pricing
Get StartedContact Us
CVE Vulnerability Database
Vulnerability Database/CVE-2025-46653

CVE-2025-46653: Node-formidable Formidable RCE Vulnerability

CVE-2025-46653 is a remote code execution flaw in Node-formidable Formidable affecting versions 2.1.0 through 3.5.2 due to weak filename randomization. This article covers technical details, affected versions, and mitigations.

Published: May 26, 2026

CVE-2025-46653 Overview

CVE-2025-46653 affects node-formidable (Formidable), a widely used Node.js multipart form parser. Versions 2.1.0 through 3.x before 3.5.3 rely on the hexoid library to generate filenames for uploaded content. The hexoid package is documented as not cryptographically secure, which means generated identifiers can be predicted under certain conditions. An attacker who can guess the filename of untrusted executable content placed in an upload directory may be able to access it. The maintainers note a scenario in which only the last two characters of a hexoid string need to be guessed, although this is rarely relevant in production deployments. The advisory clarifies that typical applications do not allow attackers to upload and execute their own content through this behavior.

Critical Impact

Predictable filename generation through a non-cryptographic random source [CWE-338] may permit limited information disclosure of uploaded files in Formidable-based applications.

Affected Products

  • node-formidable Formidable 2.1.0 through 2.x (Node.js)
  • node-formidable Formidable 3.x prior to 3.5.3 (Node.js)
  • Applications embedding vulnerable Formidable versions for multipart upload handling

Discovery Timeline

  • 2025-04-26 - CVE-2025-46653 published to NVD
  • 2026-05-13 - Last updated in NVD database

Technical Details for CVE-2025-46653

Vulnerability Analysis

Formidable parses multipart form data and persists uploaded files using filenames produced by the hexoid library. The library generates pseudo-random hexadecimal identifiers but explicitly disclaims cryptographic strength. When applications expose the upload directory or otherwise let attackers infer parts of a generated filename, an attacker may predict the remaining characters and access the stored file. The maintainers describe a corner case in which only the last two characters of a hexoid string must be guessed, reducing the search space to a small set of attempts. This weakness maps to [CWE-338] Use of Cryptographically Weak Pseudo-Random Number Generator. Real-world exploitation depends on application behavior, including how upload paths are exposed and whether uploaded content is executable.

Root Cause

The root cause is the use of hexoid(25) to mint filenames for untrusted content. hexoid is optimized for speed rather than unpredictability and does not draw from a cryptographically secure entropy source. Applications that treat the generated filename as a security boundary inherit that weakness.

Attack Vector

An attacker submits or anticipates uploads through a Formidable-backed endpoint, then attempts to retrieve the resulting file by guessing its filename. The attack requires network access, low privileges, and high attack complexity, since the attacker must reason about the random output and the application must expose the upload location.

javascript
// Patch in src/Formidable.js (commit 022c2c5577dfe14d2947f10909d81b03b6070bf5)
// Replaces hexoid with @paralleldrive/cuid2 for stronger, fingerprint-bound IDs

import { init as cuid2init } from '@paralleldrive/cuid2';
import dezalgo from 'dezalgo';
import { EventEmitter } from 'node:events';
import fsPromises from 'node:fs/promises';
import os from 'node:os';
import path from 'node:path';
import { StringDecoder } from 'node:string_decoder';
import once from 'once';
import FormidableError, * as errors from './FormidableError.js';
import PersistentFile from './PersistentFile.js';
import VolatileFile from './VolatileFile.js';
import DummyParser from './parsers/Dummy.js';
import MultipartParser from './parsers/Multipart.js';
import { json, multipart, octetstream, querystring } from './plugins/index.js';

const CUID2_FINGERPRINT = `${process.env.NODE_ENV}-${os.platform()}-${os.hostname()}-${os.machine()}`;
const createId = cuid2init({ length: 25, fingerprint: CUID2_FINGERPRINT.toLowerCase() });

// Removed: const toHexoId = hexoid(25);

Source: GitHub Commit 022c2c5

Detection Methods for CVE-2025-46653

Indicators of Compromise

  • Repeated HTTP GET requests against upload directories with sequentially varying short suffixes on otherwise similar filenames.
  • Web server access logs showing brute-force enumeration patterns against paths managed by Formidable's uploadDir.
  • Presence of Formidable versions between 2.1.0 and 3.5.2 in package-lock.json or npm ls formidable output.

Detection Strategies

  • Inventory Node.js services and dependency manifests for formidable versions matching the vulnerable range.
  • Use Software Composition Analysis (SCA) tools to flag transitive dependencies pulling vulnerable Formidable releases.
  • Inspect application code for routes that serve files directly from Formidable's upload directory without authorization checks.

Monitoring Recommendations

  • Alert on high request rates against static paths that map to Formidable upload locations.
  • Log all file write operations from the Node.js process and correlate with HTTP request IDs to spot scan-and-fetch patterns.
  • Monitor for unexpected executable file types (.js, .php, .sh) being written by application processes handling uploads.

How to Mitigate CVE-2025-46653

Immediate Actions Required

  • Upgrade formidable to version 3.5.3 or later, which replaces hexoid with @paralleldrive/cuid2 for filename generation.
  • Audit all routes that expose Formidable upload directories and add authentication or signed-URL access controls.
  • Ensure uploaded files are stored outside any web-served document root and never executed by the application server.

Patch Information

The maintainers fixed the issue in Formidable 3.5.3 via commit 022c2c5577dfe14d2947f10909d81b03b6070bf5. The patch removes hexoid and initializes a cuid2 generator with a host-derived fingerprint to produce 25-character collision-resistant identifiers. See the GitHub Changelog Entry and the Zast AI Vulnerability Report for additional details.

Workarounds

  • Override Formidable's filename option to generate names using crypto.randomBytes() from Node.js core.
  • Place uploads in a directory that is not directly browsable and require authenticated, server-mediated retrieval.
  • Strip or normalize executable extensions on upload and set restrictive file permissions on the storage directory.
bash
# Configuration example: upgrade Formidable and verify the installed version
npm install formidable@^3.5.3
npm ls formidable

# Override filename generation with a CSPRNG when custom logic is required
cat <<'EOF' > upload.js
import formidable from 'formidable';
import crypto from 'node:crypto';

const form = formidable({
  uploadDir: '/var/app/uploads',
  keepExtensions: false,
  filename: () => crypto.randomBytes(16).toString('hex'),
});
EOF

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

  • Vulnerability Details
  • TypeRCE

  • Vendor/TechFormidable

  • SeverityLOW

  • CVSS Score3.1

  • EPSS Probability0.05%

  • Known ExploitedNo
  • CVSS Vector
  • CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N
  • Impact Assessment
  • ConfidentialityHigh
  • IntegrityNone
  • AvailabilityNone
  • CWE References
  • CWE-338
  • Technical References
  • GitHub Changelog Entry

  • Zast AI Vulnerability Report
  • Vendor Resources
  • GitHub Commit Log
  • Related CVEs
  • CVE-2022-29622: Formidable File Upload RCE Vulnerability
Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.

Try SentinelOne
  • Get Started
  • Get a Demo
  • Product Tour
  • Why SentinelOne
  • Pricing & Packaging
  • FAQ
  • Contact
  • Contact Us
  • Customer Support
  • SentinelOne Status
  • Language
  • Platform
  • Singularity Platform
  • Singularity Endpoint
  • Singularity Cloud
  • Singularity AI-SIEM
  • Singularity Identity
  • Singularity Marketplace
  • Purple AI
  • Services
  • Wayfinder TDR
  • SentinelOne GO
  • Technical Account Management
  • Support Services
  • Verticals
  • Energy
  • Federal Government
  • Finance
  • Healthcare
  • Higher Education
  • K-12 Education
  • Manufacturing
  • Retail
  • State and Local Government
  • Cybersecurity for SMB
  • Resources
  • Blog
  • Labs
  • Case Studies
  • Videos
  • Product Tours
  • Events
  • Cybersecurity 101
  • eBooks
  • Webinars
  • Whitepapers
  • Press
  • News
  • Ransomware Anthology
  • Company
  • About Us
  • Our Customers
  • Careers
  • Partners
  • Legal & Compliance
  • Security & Compliance
  • Investor Relations
  • S Foundation
  • S Ventures

©2026 SentinelOne, All Rights Reserved.

Privacy Notice Terms of Use

English