// threat brief
DBHub HTTP mode DNS rebinding: a malicious web page can run SQL on your database through your browser
- CVSS
- 9.3 CRITICAL
- CISA KEV
- Not listed
- Weakness
- CWE-306 · CWE-346
- Topics
- AI security · Web apps
AI review 2026-09-30 (not human-reviewed)Command tests: none yetReproduced: not yetVerification record ↓
DBHub's HTTP mode had no login and a bypassable origin check, so a malicious web page could use DNS rebinding to run SQL via a victim's browser.
| Who is affected | Users and organizations running @bytebase/dbhub 0.22.4 or earlier (before 0.22.5) in HTTP transport mode (--transport http or the environment variable TRANSPORT=http). The default stdio mode is not affected by this browser-based attack. |
|---|---|
| What happens | If a victim opens an attacker-controlled web page, their machine can reach the DBHub HTTP server, and the attacker controls a hostname they can rebind to that server, the attacker can call DBHub's MCP tools through the victim's browser: reading and listing database contents, and possibly writing to them depending on the tool permissions and database credentials. |
| What to do now | Upgrade to 0.22.5 or later. Affected versions have no setting that blocks this attack; until you can upgrade, use the unaffected stdio mode instead of HTTP mode. |
| Affected versions | 0.22.4 and earlier (the maintainer advisory lists <= 0.22.4 and the CVE record lists < 0.22.5, which is the same range); the advisory tested 0.21.2 |
| Fixed versions | 0.22.5 or later (maintainer advisory and CVE record) |
| CVSS vector | Show full vectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| Timeline |
|
Blue team playbook
Check, fix / mitigate, respond, harden. Matching the affected versions does not mean you were compromised, and a check that finds nothing does not prove you are safe; each item says what it can and cannot show. Tagged steps point to where the attack flow below can be stopped.
- 01Check your version
Any @bytebase/dbhub version below 0.22.5 (that is, 0.22.4 or earlier) falls in the affected range listed in the maintainer advisory and the CVE record.
Read-only checknpm ls @bytebase/dbhub - 02Check whether it runs in HTTP mode
Only HTTP transport mode is affected by this attack path; the default stdio mode is not. Vendor docs say the transport can be set with the --transport flag, the TRANSPORT environment variable or a .env file, so this command looks for both the command-line flag and the process environment variable. Limitations: it only sees the environment of processes you are allowed to read (other users' processes or processes inside containers may not show up), and it cannot read .env files; no output does not mean HTTP mode is off, so also check TRANSPORT in DBHub's .env file, docker compose file or service config. Also check the bind address: the default 0.0.0.0 exposes it on every network interface.
Read-only checkps axeww | grep -i '[d]bhub' | grep -oE -- '--transport[= ]+[a-z]+|TRANSPORT=[a-z]+' - 03Look for unexplained database activity
We found no detection guidance in the sources we reviewed. PlainCVE suggests reviewing query and change logs for the database account DBHub uses, looking for activity that neither you nor your AI tools initiated.
- 01Upgrade to 0.22.5 or later
The maintainer advisory and the CVE record both list 0.22.5 as the fixed version. This command changes your project's dependencies; for a global install use npm install -g, and if you launch with npx, put a version after the package name (for example @bytebase/dbhub@latest).
Changes your environmentnpm install @bytebase/dbhub@latest - 02Confirm the installed version
Lists the @bytebase/dbhub versions installed in the project and globally; confirm they are all 0.22.5 or later. If it is not installed there, npm prints the project (or global) path followed by "└── (empty)" and exits with a non-zero code.
Read-only checknpm ls @bytebase/dbhub; npm ls -g @bytebase/dbhub - 03After upgrading: keep the host allow-list and add token authentication
Affected versions have neither option: --allowed-hosts was added by the fix itself, PR #340 (from 0.22.5), and --auth-token was added by PR #390 and only ships from 1.2.0 (PR #340 says token auth was out of scope and tracked in issue #66). Per vendor docs, the new version allows only loopback and this machine's own hostnames and IPs by default and rejects other Host values with 403; you only need --allowed-hosts to add names used through a reverse proxy or custom domain, and "*" turns the protection off. --auth-token is off by default and must be configured.
- 04Can't upgrade yet: switch to stdio mode
Affected versions have no setting that blocks this attack. The vendor advisory states stdio mode is not affected by this browser attack path, so don't run in HTTP mode until you upgrade. Limiting which networks can reach it is not enough, because DNS rebinding is launched from a victim's own browser inside the trusted network (our analysis).
- 01Rotate database credentials and check data
PlainCVE suggestion: if you find suspicious activity, rotate the database credentials DBHub uses and check whether data was altered. This is a precaution; we found no incident response guidance in the sources we reviewed.
- 01Least-privilege database credentials
The vendor advisory says impact depends on tool permissions and database credentials, and severity may become Critical with production or broadly privileged credentials.
- 02Don't expose local dev tools on every interface
Our analysis: narrowing the bind address reduces who can reach it, but DNS rebinding works through the victim's own browser, so the bind address alone is not enough; you still need the host allow-list (from 0.22.5) and a token (from 1.2.0).
Full remediation steps and notes
- Upgrade:
npm install @bytebase/dbhub@latest(or pin a new version when launching withnpx), and confirm the version is 0.22.5 or later (the fixed version in the maintainer advisory and CVE record). - If you can’t upgrade yet: affected versions have no setting that blocks this attack.
--allowed-hostswas only added by the fix, PR #340, and--auth-tokencame later, added by PR #390 and available from 1.2.0. Until you upgrade, use stdio mode (vendor advisory: not affected by this attack path) instead of HTTP mode. - HTTP mode settings after upgrading (per vendor docs): the new version allows only loopback and this machine’s own hostnames and IPs by default; if you connect through a reverse proxy or custom domain, use
--allowed-hoststo add only the names you actually use, and do not set it to"*", which turns DNS rebinding protection off. Once on 1.2.0 or later, also set--auth-token, which is off by default. - Caveat: binding only to localhost, or only letting trusted networks reach it, is not enough against DNS rebinding, because the attack comes from the victim’s own browser inside that network (our analysis).
Attack flow
Read left to right: this is the order the attack happens in. A blue shield means the step can be stopped; the earlier, the better. Click an icon for details.
Read top to bottom: this is the order the attack happens in. A blue shield means the step can be stopped; the earlier, the better. Tap an icon for details.
- Your system
DBHub runs in HTTP mode with no authentication
When started with --transport http, the /mcp endpoint accepts tool calls without any token or secret. Vendor docs note the default bind address 0.0.0.0 exposes it on every network interface.
Defense: Use the default stdio mode when you don't need HTTP; if you do, upgrade to 1.2.0 or later and set --auth-token (the option only exists from 1.2.0).
- Attacker
Lures the victim to an attacker-controlled web page
The victim's machine must be able to reach the DBHub HTTP server.
- Attacker
Rebinds their own hostname to the DBHub server
This is DNS rebinding: the browser still thinks it is talking to the attacker's site, but the requests now go to DBHub.
Defense: Upgrade to 0.22.5 or later: the new version checks Host against an allow-list and rejects other values with 403; add extra hostnames with --allowed-hosts (never "*").
- Your system
The origin check wrongly treats the request as trusted
Older versions only checked that the Origin and Host headers named the same host, not that the host was on an allow-list; after rebinding, both carry the attacker's hostname, so they match.
Defense: Upgrade to 0.22.5 or later (the fixed version in the maintainer advisory and CVE record). According to fix PR
- Attacker
Calls MCP tools and runs SQL through the victim's browser
No prompt injection or AI model is needed. With the demo config it can read and write the demo SQLite database; with a real database it can read and list, and possibly write, data depending on tool permissions and database credentials.
Defense: Give the database account DBHub uses the least privilege possible, such as read-only.
Who is affected
DBHub, made by Bytebase, is a database MCP server (MCP is a protocol that lets AI assistants call external tools) for Postgres, MySQL, SQL Server, Oracle, MariaDB and SQLite. The npm package is @bytebase/dbhub.
| Condition | Affected? |
|---|---|
0.22.4 or earlier + running in HTTP mode (--transport http or environment variable TRANSPORT=http) | Affected (maintainer advisory, CVE record) |
| 0.22.5 or later | Fixed (maintainer advisory, CVE record) |
| Running in the default stdio mode | Vendor advisory: not affected by this browser attack path |
The maintainer advisory lists the affected range as 0.22.4 and earlier with 0.22.5 as the patched version, matching the CVE record’s “before 0.22.5”; the version the advisory actually tested is 0.21.2.
For the attack to work, the victim must also open an attacker-controlled web page, the victim’s machine must be able to reach the DBHub HTTP server, and the attacker must control a hostname they can re-point at that server. Vendor docs also warn that HTTP mode binds to 0.0.0.0 by default, exposing it on every network interface.
How it works
Two gaps stack up here:
- No authentication (CWE-306). In the tested version, the HTTP-mode
/mcpendpoint accepted tool calls without any token (an access pass), secret or CSRF-style credential. - A weak origin check (CWE-346). The server tried to block browser requests from other websites, but it only confirmed that the hostnames in the
Originheader (which site the request came from) and theHostheader (which host it is addressed to) were the same. It did not check them against an explicit allow-list.
DNS rebinding exploits the second gap: the attacker gets the victim to open their page, then re-points their own domain at the DBHub server. The browser’s requests now carry the attacker’s domain in both Origin and Host, so they match and are treated as trusted. The vendor advisory says a malicious website can reliably call DBHub’s MCP tools from the victim’s browser this way, with no prompt injection and no AI model involved.
Impact: with the demo configuration, the demo SQLite database can be read and written; with a real database, contents can be read and listed, and possibly written, depending on DBHub’s tool permissions and the database credentials. No source claims operating-system code execution (our analysis: the known impact is running SQL and MCP tools through DBHub).
The flawed approach (conceptual illustration, not the original source code):
Show code example(js)
// Only checks that the two headers agree
if (hostname(req.headers.origin) === hostname(req.headers.host)) {
allow(); // after DNS rebinding both are the attacker's domain, so they still match
}A safer approach (conceptual illustration):
Show code example(js)
// Host must be on an explicit allow-list, and a valid token is required
if (allowedHosts.includes(hostname(req.headers.host)) && validToken(req)) {
allow();
} else {
reject(403);
}The actual fix is PR #340, merged on 2026-06-24. According to its commit message, the new version no longer just checks that the two headers match; every request’s Host (and Origin, when present) must be on an explicit host allow-list, which includes loopback addresses by default. The “safer approach” above illustrates the principle; PR #340 says token authentication was out of scope and tracked in issue #66, and it was later added as --auth-token by PR #390, available from 1.2.0.
Timeline
| Date | Event |
|---|---|
| 2026-06-24 03:23 UTC | Fix PR #340 opened in the public repo; its description explains the root cause and lists advisory GHSA-fm8p-53ww-hf6w |
| 2026-06-24 04:04 UTC | Fix PR #340 merged |
| 2026-06-24 04:22 UTC | 0.22.5 published to npm |
| 2026-06-24 04:25 UTC | Maintainer publishes security advisory GHSA-fm8p-53ww-hf6w on GitHub |
| 2026-07-10 | CVE ID reserved |
| 2026-07-31 | PR #390 merged (adds --auth-token, closes issue #66); 1.2.0 published the same day |
| 2026-09-24 17:30 UTC | CVE record published |
| 2026-09-24 | NVD receives the CVE, status “Received” (not yet analysed) |
| 2026-09-24 19:36 UTC | GitHub-reviewed advisory appears in OSV |
| 2026-09-25 | Still not in CISA KEV |
Per the npm registry and GitHub advisory timestamps, the maintainer published the security advisory about 3 minutes after 0.22.5 reached npm; the CVE record was not published until 2026-09-24, three months after the advisory.
Further reading
- Scoring differences: the CNA (GitHub) gives CVSS 4.0 9.3 and GitLab gives CVSS 3.1 9.8, while the vendor advisory recommends High, possibly Critical with production or broadly privileged credentials. TheHackerWire labels it “Info”, which conflicts with every other source. NVD has not analysed it yet.
- User interaction: the CVSS vector says no user interaction (UI:N), yet the advisory’s scenario needs the victim to open an attacker’s page. We think the UI:N rating is debatable.
- PoC disagreement: the vendor advisory includes a reproducible PoC and CISA’s SSVC data marks exploitation as “poc” (also automatable, technical impact “total”); TheHackerWire says no public exploit code is confirmed.
- Exploitation: not in CISA KEV as of 2026-09-25; no source reports exploitation in the wild, and there is no evidence of zero-day use.
- No source says when the vulnerable code was introduced.
- Related weakness types: CWE-306, CWE-346.
Verification Checked item by item against sources by AI under our review rules, all passed; not human-reviewed and not yet reproduced in our lab
| AI review | 2026-09-30 · review rules |
|---|
Verification records describe the environment and the result only, never reproduction steps or code that could attack other people’s systems. See our policy.
Sources
- AdvisoryGHSA-fm8p-53ww-hf6w — DBHub HTTP transport DNS rebinding allows unauthenticated browser-origin SQL execution · Bytebase (GitHub), 2026-06-24 · accessed 2026-09-28
- CVE / NVD / OSVCVE-2026-61742 Record · CVE Program, 2026-09-24 · accessed 2026-09-25
- CVE / NVD / OSVNVD - CVE-2026-61742 · NIST, 2026-09-24 · accessed 2026-09-25
- AdvisoryGitLab Advisory Database: CVE-2026-61742 in @bytebase/dbhub · GitLab · accessed 2026-09-25
- AdvisoryOSV: GHSA-fm8p-53ww-hf6w · OSV, 2026-09-24 · accessed 2026-09-25
- VendorDBHub command-line configuration · Bytebase · accessed 2026-09-28
- Patch / releasePR #340: fix: enforce Host allow-list on HTTP transport to block DNS rebinding · Bytebase (GitHub), 2026-06-24 · accessed 2026-09-28
- Patch / releasePR #390: feat(server): add bearer token auth for HTTP transport · Bytebase (GitHub), 2026-07-31 · accessed 2026-09-28Adds --auth-token; description says Fixes
- VendorDBHub v1.2.0 release notes · Bytebase (GitHub), 2026-07-31 · accessed 2026-09-28Lists PR
- Other@bytebase/dbhub npm registry metadata · npm · accessed 2026-09-28Publish time of each version (time field)
- ResearchCVE-2026-61742: Missing Authentication for Critical Function in bytebase dbhub · OffSeq · accessed 2026-09-25
- NewsCVE-2026-61742 · TheHackerWire · accessed 2026-09-25
Press brief
In one sentence
DBHub, an open-source tool from Bytebase, lets AI assistants reach databases such as Postgres and MySQL through the MCP protocol. Its HTTP mode had no authentication and an origin check that DNS rebinding could bypass, so a user who opened a malicious web page could let an attacker run SQL on their database through their browser, if their machine could reach the DBHub HTTP server and the attacker controlled a hostname they could rebind to it. The maintainer advisory and the CVE record both say version 0.22.5 fixes it; no source reports exploitation in the wild.
Key facts
- Severity (CNA)
- CVSS 4.0 9.3 (Critical) cveawg.mitre.org
- Severity (GitLab)
- CVSS 3.1 9.8 advisories.gitlab.com
- Vendor-recommended severity
- High; possibly Critical with production or privileged credentials github.com
- Fixed version
- 0.22.5 github.com
- Maintainer advisory published
- 2026-06-24 github.com
- CVE published
- 2026-09-24 cveawg.mitre.org
Confirmed
- DBHub's HTTP-mode /mcp endpoint required no authentication, and its origin check only compared Origin and Host for equality, which DNS rebinding bypasses.
- The default stdio mode is not affected by this browser attack path.
- As of 2026-09-25, it is not in CISA's Known Exploited Vulnerabilities catalog.
Unconfirmed / disputed
- Severity varies: CNA 9.3, GitLab 9.8, vendor advisory recommends High, and TheHackerWire labels it Info.
- Sources disagree on a public PoC: the vendor advisory includes one and CISA data marks it "poc"; TheHackerWire says no public exploit is confirmed.
- No source reports exploitation in the wild, and there is no evidence it was exploited as a zero-day.
Quotable line
This flaw doesn't require breaking into a server; it just gets your own browser to knock on your database's door for the attacker.
Images
Download the share image (PNG) · Attack flow diagram (downloadable)
Please credit "PlainCVE" and link to this page. Full citation format is under "How to cite" below. Found a factual error? Report it.
DBHub HTTP mode DNS rebinding: a malicious web page can run SQL on your database through your browser DBHub, an open-source tool from Bytebase, lets AI assistants reach databases such as Postgres and MySQL through the MCP protocol. Its HTTP mode had no authentication and an origin check that DNS rebinding could bypass, so a user who opened a malicious web page could let an attacker run SQL on their database through their browser, if their machine could reach the DBHub HTTP server and the attacker controlled a hostname they could rebind to it. The maintainer advisory and the CVE record both say version 0.22.5 fixes it; no source reports exploitation in the wild. Key facts: - Severity (CNA):CVSS 4.0 9.3 (Critical)(https://cveawg.mitre.org/api/cve/CVE-2026-61742) - Severity (GitLab):CVSS 3.1 9.8(https://advisories.gitlab.com/npm/@bytebase/dbhub/CVE-2026-61742) - Vendor-recommended severity:High; possibly Critical with production or privileged credentials(https://github.com/bytebase/dbhub/security/advisories/GHSA-fm8p-53ww-hf6w) - Fixed version:0.22.5(https://github.com/bytebase/dbhub/security/advisories/GHSA-fm8p-53ww-hf6w) - Maintainer advisory published:2026-06-24(https://github.com/bytebase/dbhub/security/advisories/GHSA-fm8p-53ww-hf6w) - CVE published:2026-09-24(https://cveawg.mitre.org/api/cve/CVE-2026-61742) Confirmed: - DBHub's HTTP-mode /mcp endpoint required no authentication, and its origin check only compared Origin and Host for equality, which DNS rebinding bypasses. - The default stdio mode is not affected by this browser attack path. - As of 2026-09-25, it is not in CISA's Known Exploited Vulnerabilities catalog. Unconfirmed / disputed: - Severity varies: CNA 9.3, GitLab 9.8, vendor advisory recommends High, and TheHackerWire labels it Info. - Sources disagree on a public PoC: the vendor advisory includes one and CISA data marks it "poc"; TheHackerWire says no public exploit is confirmed. - No source reports exploitation in the wild, and there is no evidence it was exploited as a zero-day. 「This flaw doesn't require breaking into a server; it just gets your own browser to knock on your database's door for the attacker.」— PlainCVE https://plaincve.date/en/vulns/cve-2026-61742-dbhub-mcp-dns-rebinding
How to cite this page
This article is CC BY 4.0. Please keep the attribution and link when republishing.
PlainCVE Team (2026). "DBHub HTTP mode DNS rebinding: a malicious web page can run SQL on your database through your browser". PlainCVE. https://plaincve.date/en/vulns/cve-2026-61742-dbhub-mcp-dns-rebinding (accessed YYYY-MM-DD)BibTeX
@misc{cve202661742dbhubmcpdnsrebinding2026,
title = {DBHub HTTP mode DNS rebinding: a malicious web page can run SQL on your database through your browser},
author = {PlainCVE Team},
year = {2026},
howpublished = {PlainCVE},
url = {https://plaincve.date/en/vulns/cve-2026-61742-dbhub-mcp-dns-rebinding},
note = {Updated 2026-09-30}
}