Safeguard
Vulnerability Analysis•

CVE-2025-40618: Critical SQL Injection in Bookgy

Critical SQL injection in the Bookgy receipt page (IDRESERVA). INCIBE says the vendor fixed it in October 2024. Confirm your build with the vendor.

Safeguard Security Team
4 min read

CVE-2025-40618 is a critical SQL injection flaw in Bookgy, with a CVSS score of 9.8. INCIBE says the vendor fixed it in October 2024. 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: Bookgy, an online booking and management application. INCIBE lists the affected resource as Bookgy with no specific versioning.
  • Fixed version: INCIBE says the Bookgy team fixed these vulnerabilities in October 2024 and that they are no longer exploitable today.
  • 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-04-29.

The flaw sits in the IDRESERVA parameter of the file /bkg_imprimir_comprobante.php, the page that prints a booking receipt. A crafted HTTP request could let an attacker retrieve, create, update and delete data in the database.

INCIBE coordinated five Bookgy CVEs together (CVE-2025-40615 to CVE-2025-40619). This post covers only CVE-2025-40618, the SQL injection in the receipt page. Its sibling CVE-2025-40617 is the same class of bug in a different file.

How to check if you're exposed

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:

  1. Find the version or build number your organisation runs.
  2. Compare it with the fixed version in the advisory.
  3. 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

  1. Identify every copy of Bookgy you run, including test and forgotten ones.
  2. Because the advisory says the fix shipped in October 2024, ask Bookgy to confirm in writing which build you run and when it was updated. The advisory does not give a version number, so do not assume one.
  3. 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.
  4. Record the outcome, including the date, the version you ended on and who confirmed it, so a later audit has something to read.
  5. 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 Bookgy?

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.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

We email you a link to confirm, and only then add you to the list. Unsubscribe in one click. Privacy

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.