Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as connection-creating user
-
DeliveryCreate/test connection to attacker-controlled hostname
-
ExploitServe public IP to validateOutboundUrl
-
ExecutionReturn private IP to request-promise fetch
-
PersistServer connects to internal/metadata endpoint
-
ImpactExfiltrate internal service or credential data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication DNS-independent verification
|
| Exploitation Conditions | Requires an authenticated Chartbrew account with permission to create or test API/data-source connections, AND attacker control over DNS resolution for the target hostname so that validateOutboundUrl() (in server/modules/safeRequest.js) resolves a public address while request-promise's separate resolution returns a private one. The TOCTOU/rebinding race must be won between the two independent DNS lookups. It is limited to versions prior to 5.2.2 and is config-independent (no non-default feature toggle needed), but the dual requirement of credentialed access plus DNS control materially constrains real-world exploitation. No user interaction by a victim is needed. |
| Impact | Moderate, gated risk that is correctly rated rather than inflated. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N, 6.3 MEDIUM) is internally consistent with the described mechanism: DNS rebinding is a network-reachable but timing-dependent race (AC:H), it requires an authenticated user able to create/test API connections (PR:L), and success reaches internal-only services beyond the app's trust boundary (S:C, C:H, no integrity/availability impact). No EPSS score, no CISA KEV listing, and no public POC were provided; per input signals this is 'no public exploit identified at time of analysis.' The two key gating factors - a valid application account with connection-creation privileges AND the ability to control DNS responses for a target hostname (win the validate-vs-connect race) - meaningfully lower real-world likelihood versus an unauthenticated SSRF. Confidentiality impact is genuinely high because the classic payoff is cloud metadata (IMDS) credential theft or reaching localhost/internal admin services. Net: a real issue worth patching for anyone exposing Chartbrew connection features to semi-trusted users, but not an emergency mass-exploitation candidate. No conflicting signals were found between the CVSS vector and the description; both point to authenticated, network-origin, config-independent behavior. |
| Exploit ScenarioDerived | An authenticated Chartbrew user with permission to create or test an API data-source connection points it at a hostname on a DNS server they control, which answers with a public IP the first time (passing validateOutboundUrl) and a private IP such as 169.254.169.254 or 127.0.0.1 on the second, actual request. Chartbrew then fetches from the internal address, returning cloud metadata, localhost admin endpoints, or other internal service responses to the attacker. No public exploit code is identified, though the vendor's regression test in the patch demonstrates the exact rebinding technique. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 21, 2026
Outbound request validation bypass via DNS rebinding in Chartbrew before 5.2.2 allows an authenticated user who can create or test API/data-source connections, and who controls DNS for the target hostname, to make the server reach internal services, localhost resources, or cloud metadata endpoints. The server validates the hostname with validateOutboundUrl() but the actual connection is performed by request-promise using an independent DNS lookup, so a public address can be returned during validation and a private address during the request. No public exploit identified at time of analysis; exploitation requires a credentialed account and attacker-controlled DNS plus winning the race between the two lookups, so real-world risk is moderate rather than high.
RemediationAI
Vendor-released patch: 5.2.2 - upgrade Chartbrew to version 5.2.2 (release tag v5.2.2) or later, which applies commit d38d745fe9e45563be8c33e4c7a17788ee6f13a3 pinning the validated addresses to the connection resolver and forbidding caller-supplied lookup overrides; the advisory is at https://github.com/chartbrew/chartbrew/security/advisories/GHSA-9537-vm84-j26f. If upgrading immediately is not possible, restrict account permissions so only trusted administrators can create or test API/data-source connections, since the attack requires an authenticated user with that capability plus control of DNS for the target hostname, and restrict user-supplied connection hostnames to a vetted allowlist; these are incomplete compensating controls because they depend on trusting the privileged user and on allowlist hygiene, and they do not fix the underlying race. Additionally, enforce strict outbound network egress controls from the Chartbrew host to block private address ranges and cloud metadata endpoints (for example 169.254.169.254), accepting that this may break intentionally configured internal data sources and that egress rules must be kept complete to cover all RFC1918 and link-local space. Disable or tightly scope any instance whose data sources are exclusively external, but note this reduces intended functionality rather than removing the vulnerability.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Chartbrew is a Node.js web application that connects to databases and APIs; its outbound request path routes through server/modules/safeRequest.js, which calls validateOutboundUrl() to resolve and vet a target hostname against server/modules/outboundTargetPolicy.js before issuing the request via request-promise. Because the validation uses one DNS resolution and the underlying HTTP client performs a separate lookup when it actually connects, the hostname's address can change between the two steps - a classic time-of-check/time-of-use (TOCTOU) DNS rebinding weakness, recorded here under CWE-350 (reliance on a DNS resolution for a security-critical decision without binding it to the connection). The fix in commit d38d745fe9e45563be8c33e4c7a17788ee6f13a3 introduces a pinned lookup (createPinnedLookup) that restricts resolution to the exact hostname and the addresses captured during validation, and also adds "lookup" to the disallowed option keys in sanitizeOutboundRequestOptions.js so callers cannot override the pinned resolver. The CPE cpe:2.3:a:chartbrew:chartbrew:*:*:*:*:*:*:*:* with a wildcard version confirms that all Chartbrew releases prior to the fixed version are affected.
Know when Chartbrew gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
AC:H for the validate-vs-connect DNS rebinding race, PR:L for the required authenticated connection-creator role, S:C/C:H as SSRF reaches internal/metadata services yielding sensitive data, I/A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. Prior to 5.2.2, Chartbrew's server/modules/safeRequest.js calls validateOutboundUrl() to resolve and validate a target hostname, but request-promise performs a separate DNS resolution for the actual connection. An authenticated user who can create or test API connections and controls the target DNS name can return a public address during validation and a private address during the request, bypassing the protections implemented by server/modules/outboundTargetPolicy.js. This DNS rebinding condition can expose internal services, localhost resources, or cloud metadata endpoints. This issue is fixed in version 5.2.2.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
SQL injection in Chartbrew before 4.8.3. PoC available.
Remote code execution in Chartbrew prior to version 4.8.1 allows authenticated attackers to execute arbitrary code throu
Chartbrew versions up to 4.8.4 is affected by missing authentication for critical function (CVSS 7.5).
Remote code execution in Chartbrew versions prior to 4.8.1 allows authenticated attackers with high privileges to execut
Chartbrew versions before 4.8.1 fail to validate chart ownership during modification operations, allowing authenticated
Chartbrew versions prior to 4.8.4 allow authenticated users to upload arbitrary files by bypassing file type validation,
Authenticated users in Chartbrew 4.9.0 can modify or delete dashboard sharing policies across projects they don't own du
Horizontal privilege escalation in Chartbrew 4.9.0 allows authenticated low-privilege team members to access datasets, d
SQL injection in Chartbrew versions prior to 5.2.3 allows an unauthenticated remote attacker to break out of an intended
Server-Side Request Forgery in Chartbrew versions prior to 4.8.5 allows authenticated users to create API data connectio
Cross-tenant authorization bypass in Chartbrew versions prior to 4.9.0 allows authenticated attackers to exfiltrate sens
Unauthenticated remote attackers can access and refresh private chart data in Chartbrew 4.9.0 via an exposed API endpoin
EUVD-2026-84211
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB