CVE-2025-7579 Overview
CVE-2025-7579 affects the chinese-poetry project version 0.1, an open-source Chinese poetry database. The vulnerability resides in rank/server.js and stems from inefficient regular expression complexity [CWE-400]. An attacker can send crafted input remotely to trigger excessive backtracking, leading to CPU resource exhaustion. The exploit details have been publicly disclosed through VulDB and the project's GitHub issue tracker.
Critical Impact
Remote attackers can degrade service availability by submitting inputs that cause catastrophic regex backtracking on the server.
Affected Products
- chinese-poetry 0.1
- File affected: rank/server.js
- Weakness class: Uncontrolled Resource Consumption (ReDoS)
Discovery Timeline
- 2025-07-14 - CVE-2025-7579 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-7579
Vulnerability Analysis
The issue is a Regular Expression Denial of Service (ReDoS) flaw in the rank/server.js component of the chinese-poetry project. A regular expression used to process incoming request data contains patterns that exhibit exponential or polynomial time complexity when matched against specifically crafted input. Attackers exploit this by supplying strings that force the regex engine into catastrophic backtracking, monopolizing CPU cycles on the Node.js server. Because Node.js runs on a single-threaded event loop, a single slow regex evaluation blocks all concurrent request processing.
Root Cause
The root cause is an inefficient regular expression pattern classified under [CWE-400]. Patterns containing nested quantifiers or overlapping alternations produce combinatorial backtracking when matching non-matching input. The chinese-poetry maintainers did not apply input length limits or a linear-time regex engine, allowing untrusted input to reach the vulnerable matcher directly.
Attack Vector
Exploitation requires only network access to the vulnerable service and low-privilege interaction. An unauthenticated remote attacker submits an HTTP request containing a payload engineered to trigger worst-case regex behavior. The public disclosure on the project's GitHub Issue #396 and VulDB #316277 provides sufficient detail for reproduction. No authentication bypass or code execution occurs, but availability is impacted for the duration of each malicious request.
No verified public exploit code is available. Refer to the VulDB submission for reported technical details.
Detection Methods for CVE-2025-7579
Indicators of Compromise
- Sustained high CPU utilization on the Node.js process hosting rank/server.js without corresponding legitimate traffic volume.
- HTTP requests to rank/server.js endpoints containing unusually long, repetitive, or malformed input strings.
- Elevated request latency or event-loop lag warnings in Node.js application logs.
Detection Strategies
- Monitor process-level CPU consumption for the Node.js runtime and alert on sustained spikes.
- Instrument the application with event-loop lag monitoring to detect blocking operations.
- Deploy a Web Application Firewall (WAF) rule that inspects request bodies and query parameters for known ReDoS payload patterns and excessive length.
Monitoring Recommendations
- Log all requests reaching rank/server.js with timing metrics and flag requests exceeding a defined execution threshold.
- Track EPSS trend data (current score 0.333%) to reprioritize as exploit likelihood evolves.
- Correlate WAF events with backend performance telemetry to identify targeted probing.
How to Mitigate CVE-2025-7579
Immediate Actions Required
- Restrict public exposure of the rank/server.js endpoint until the vulnerable regex is remediated.
- Enforce strict input length and character-set validation before values reach any regular expression matcher.
- Place the service behind a WAF or reverse proxy configured with per-request timeout enforcement.
Patch Information
No official patch was referenced in the NVD entry or the linked GitHub Issue #396 at time of publication. Operators should track the upstream repository for a fix and, in the interim, replace the vulnerable regex with a linear-time equivalent or a bounded parser.
Workarounds
- Rewrite the offending regular expression to eliminate nested quantifiers and ambiguous alternation.
- Impose a hard timeout on regex evaluation using libraries such as re2 (Google RE2) that guarantee linear-time matching.
- Rate-limit requests to the affected endpoint per source IP to reduce the impact of repeated exploitation attempts.
- Cap request body and query parameter length at values well below any threshold that produces measurable regex slowdown.
Refer to the VulDB CTI record for additional technical context.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

