7.5 CVE-2025-67779

 

It was found that the fix addressing CVE-2025-55184 in React Server Components was incomplete and does not prevent a denial of service attack in a specific case. React Server Components versions 19.0.2, 19.1.3 and 19.2.2 are affected, allowing unsafe deserialization of payloads from HTTP requests to Server Function endpoints. This can cause an infinite loop that hangs the server process and may prevent future HTTP requests from being served.
https://nvd.nist.gov/vuln/detail/CVE-2025-67779

Categories

CWE-502 : Deserialization of Untrusted Data
The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid. Marshaling and unmarshaling are effectively synonyms for serialization and deserialization, respectively. In Python, the "pickle" functionality is used to perform serialization and deserialization. Some PHP application researchers use this term when attacking unsafe use of the unserialize() function; but it is also used for CWE-915. Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.) If available, use the signing/sealing features of the programming language to assure that deserialized data has not been tainted. For example, a hash-based message authentication code (HMAC) could be used to ensure that data has not been modified. When deserializing data, populate a new object rather than just deserializing. The result is that the data flows through safe input validation and that the functions are safe. Explicitly define a final object() to prevent deserialization. Avoid having unnecessary types or gadgets (a sequence of instances and method invocations that can self-execute during the deserialization process, often found in libraries) available that can be leveraged for malicious ends. This limits the potential for unintended or unauthorized types and gadgets to be leveraged by the attacker. Add only acceptable classes to an allowlist. Note: new gadgets are constantly being discovered, so this alone is not a sufficient mitigation. Employ cryptography of the data or code for protection. However, it's important to note that it would still be client-side security. This is risky because if the client is compromised then the security implemented on the client (the cryptography) can be bypassed. Use an application firewall that can detect attacks against this weakness. It can be beneficial in cases in which the code cannot be fixed (because it is controlled by a third party), as an emergency prevention measure while more comprehensive software assurance measures are applied, or to provide defense in depth [REF-1481]. insecure deserialization in platform for managing AI/ML applications and models allows code execution via a crafted pickled object in a model file deserialization of untrusted YAML data in dashboard for data query and visualization of Elasticsearch data PHP object injection in WordPress plugin for AI-based SEO chain: bypass of untrusted deserialization issue (CWE-502) by using an assumed-trusted class (CWE-183) Deserialization issue in commonly-used Java library allows remote execution. Deserialization issue in commonly-used Java library allows remote execution. Use of PHP unserialize function on untrusted input allows attacker to modify application configuration. Use of PHP unserialize function on untrusted input in content management system might allow code execution. Use of PHP unserialize function on untrusted input in content management system allows code execution using a crafted cookie value. Content management system written in PHP allows unserialize of arbitrary objects, possibly allowing code execution. Python script allows local users to execute code via pickled data. Unsafe deserialization using pickle in a Python script. Web browser allows execution of native methods via a crafted string to a JavaScript function that deserializes the string.

CWE-400 : Uncontrolled Resource Consumption
The product does not properly control the allocation and maintenance of a limited resource. Certain automated dynamic analysis techniques may be effective in spotting resource exhaustion problems, especially with resources such as processes, memory, and connections. The technique may involve generating a large number of requests to the product within a short time frame. While fuzzing is typically geared toward finding low-level implementation bugs, it can inadvertently find resource exhaustion problems. This can occur when the fuzzer generates a large number of test cases but does not restart the targeted product in between test cases. If an individual test case produces a crash, but it does not do so reliably, then an inability to handle resource exhaustion may be the cause. Design throttling mechanisms into the system architecture. The best protection is to limit the amount of resources that an unauthorized user can cause to be expended. A strong authentication and access control model will help prevent such attacks from occurring in the first place. The login application should be protected against DoS attacks as much as possible. Limiting the database access, perhaps by caching result sets, can help minimize the resources expended. To further limit the potential for a DoS attack, consider tracking the rate of requests received from users and blocking requests that exceed a defined rate threshold. Ensure that protocols have specific limits of scale placed on them. Ensure that all failures in resource allocation place the system into a safe posture. Chain: Python library does not limit the resources used to process images that specify a very large number of bands (CWE-1284), leading to excessive memory consumption (CWE-789) or an integer overflow (CWE-190). Go-based workload orchestrator does not limit resource usage with unauthenticated connections, allowing a DoS by flooding the service Resource exhaustion in distributed OS because of "insufficient" IGMP queue management, as exploited in the wild per CISA KEV. Product allows attackers to cause a crash via a large number of connections. Malformed request triggers uncontrolled recursion, leading to stack exhaustion. Chain: memory leak (CWE-404) leads to resource exhaustion. Driver does not use a maximum width when invoking sscanf style functions, causing stack consumption. Large integer value for a length property in an object causes a large amount of memory allocation. Web application firewall consumes excessive memory when an HTTP request contains a large Content-Length value but no POST data. Product allows exhaustion of file descriptors when processing a large number of TCP packets. Communication product allows memory consumption with a large number of SIP requests, which cause many sessions to be created. TCP implementation allows attackers to consume CPU and prevent new connections using a TCP SYN flood attack. Port scan triggers CPU consumption with processes that attempt to read data from closed sockets. Product allows attackers to cause a denial of service via a large number of directives, each of which opens a separate window. Product allows resource exhaustion via a large number of calls that do not complete a 3-way handshake. Mail server does not properly handle deeply nested multipart MIME messages, leading to stack exhaustion. Chain: anti-virus product encounters a malformed file but returns from a function without closing a file descriptor (CWE-775) leading to file descriptor consumption (CWE-400) and failed scans.

References


 

CPE

cpe start end
Configuration 1
cpe:2.3:a:facebook:react:19.0.2:*:*:*:*:*:*:*
cpe:2.3:a:facebook:react:19.1.3:*:*:*:*:*:*:*
cpe:2.3:a:facebook:react:19.2.2:*:*:*:*:*:*:*
Configuration 2
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* >= 13.3.0 < 14.2.35
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* >= 15.0.0 < 15.0.7
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* >= 15.1.0 < 15.1.11
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* >= 15.2.0 < 15.2.8
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* >= 15.3.0 < 15.3.8
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* >= 15.4.0 < 15.4.10
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* >= 15.5.0 < 15.5.9
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* >= 16.0.0 < 16.0.10
cpe:2.3:a:vercel:next.js:15.6.0:-:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary0:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary1:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary10:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary11:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary12:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary13:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary14:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary15:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary16:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary17:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary18:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary19:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary2:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary20:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary21:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary22:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary23:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary24:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary25:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary26:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary27:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary28:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary29:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary3:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary30:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary31:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary32:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary33:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary34:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary35:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary36:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary37:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary38:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary39:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary4:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary40:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary41:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary42:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary43:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary44:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary45:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary46:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary47:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary48:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary49:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary5:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary50:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary51:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary52:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary53:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary54:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary55:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary56:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary57:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary58:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary59:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary6:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary7:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary8:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary9:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:-:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary0:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary1:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary10:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary11:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary12:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary13:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary14:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary15:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary16:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary17:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary18:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary2:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary3:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary4:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary5:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary6:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary7:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary8:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:16.1.0:canary9:*:*:*:node.js:*:*


REMEDIATION




EXPLOITS


Exploit-db.com

id description date
No known exploits

POC Github

Url
No known exploits

Other Nist (github, ...)

Url
No known exploits


CAPEC


Common Attack Pattern Enumerations and Classifications

id description severity
586 Object Injection
High
147 XML Ping of the Death
Medium
227 Sustained Client Engagement
492 Regular Expression Exponential Blowup


MITRE


Techniques

id description
T1499 Endpoint Denial of Service
© 2022 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation.

Mitigations

id description
M1037 Leverage services provided by Content Delivery Networks (CDN) or providers specializing in DoS mitigations to filter traffic upstream from services. Filter boundary traffic by blocking source addresses sourcing the attack, blocking ports that are being targeted, or blocking protocols being used for transport. To defend against SYN floods, enable SYN Cookies.
© 2022 The MITRE Corporation. Esta obra se reproduce y distribuye con el permiso de The MITRE Corporation.