CVE-2025-40657 is a critical SQL injection flaw in DM Corporative CMS, with a CVSS score of 9.8. INCIBE says versions before 2025.01 are affected and 2025.01 fixes it. Treat any instance reachable from untrusted networks as exposed until you have confirmed the fix, and review your logs for unexpected requests.
What's affected
- Product: DM Corporative CMS by Dmacroweb, a content management system. INCIBE lists versions prior to 2025.01 as affected.
- Fixed version: INCIBE says the Dmacroweb team fixed these vulnerabilities in version 2025.01.
- Severity: Critical, CVSS 9.8 (vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).
- Weakness: CWE-89.
- Published: 2025-06-10.
The vulnerable input is the codform parameter in /modules/forms/collectform.asp. The record says an attacker could retrieve, create, update and delete data in the database through it.
INCIBE advisory INCIBE-2025-0305 lists nine DM Corporative CMS CVEs. CVE-2025-40654 to CVE-2025-40657 are the four critical SQL injection flaws. The remaining five are medium severity access control and information disclosure issues.
How to check if you're exposed
This is classic ASP code, so a source search is a reasonable first pass if you have the files:
grep -rniE "request(\.querystring|\.form)?\(" --include=*.asp . | grep -i "select\|insert\|update\|delete"
The command lists lines where request input and SQL keywords share a line. Read each hit and look for values added directly to query text. It is a starting point, not proof of safety.
The advisory does not give a command for reading the installed version, and this is a vendor-supplied product, so the useful check is administrative:
- Find the version or build number your organisation runs.
- Compare it with the fixed version in the advisory.
- If you cannot read the build number yourself, ask the vendor to confirm in writing.
You can also run your dependency manifests and container images through the free in-browser scan to see which known CVEs affect the packages you ship. It will not find a flaw inside a vendor appliance or an unmanaged install, so keep an inventory of those too.
What to do now
- Identify every copy of DM Corporative CMS you run, including test and forgotten ones.
- Check that the installed CMS is version 2025.01 or later.
- Until that is done, remove public access where you can. Put the application behind a VPN, a network allow list or a web application firewall rule, and watch the access and database logs for unusual requests to the endpoint named above.
- Record the outcome, including the date, the version you ended on and who confirmed it, so a later audit has something to read.
- Add the product to your continuous monitoring so a future CVE against it reaches you without a manual search.
Why it matters
SQL injection happens when an application builds a database query by gluing user input into the query text. The database cannot tell where the developer's command ends and the visitor's data begins, so a crafted value can change what the query does. The class is catalogued as CWE-89 (SQL injection).
The usual fix is a parameterized query, where the SQL text and the values travel separately. Input validation helps as a second layer, but it is not a substitute. Because this flaw needs no login and no click from a victim, anything that can reach the page over the network is in range.
The record's KEV flag is false, so CISA does not list it as known to be exploited, and nothing in the sources here says it is being exploited in the wild.
Quick check
What does the score of 9.8 mean for DM Corporative CMS?
The vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H reads as network reachable, low complexity, no privileges and no user interaction. The impact ratings are confidentiality high, integrity high, availability high. Use it to rank the work, then confirm exposure for your own deployment.
Is escaping the parameter enough to fix this?
Escaping is fragile and easy to get wrong in one place out of many. Parameterized queries are the reliable fix because the value is never treated as SQL. If you maintain the code, change the query itself rather than patching the symptom.
Sources
Last reviewed: 18 October 2026.