Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to keeper.sh instance
-
DeliverySubmit malicious ICS/CalDAV URL with attacker-controlled hostname
-
ExploitSSRF guard resolves hostname to public IP (validation passes)
-
ExecutionAttacker flips DNS to private/metadata IP before socket open
-
PersistCalendar module connects to internal address (e.g., 169.254.169.254)
-
ImpactExfiltrate cloud credentials or internal service data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires: (1) a valid authenticated account on the keeper.sh instance (PR:L) with permission to configure ICS subscription or CalDAV server URLs; (2) control over authoritative DNS for the hostname supplied in the calendar URL, enabling the attacker to manipulate TTL and response timing to achieve rebinding; (3) the target keeper.sh instance must be making outbound HTTP requests to attacker-controlled domains - this is the default behavior of ICS/CalDAV subscriptions. Exploitation is limited by: high attack complexity due to DNS rebinding timing requirements; the fact that BLOCK_PRIVATE_RESOLUTION=true (if set) blocks the attack entirely; self-hosted deployments with strict egress firewall rules preventing outbound connections to RFC 1918/169.254.x.x ranges are not exploitable via the network path. Cloud-hosted deployments without IMDSv2 hop-count enforcement face the highest realistic risk. |
| Impact | The CVSS 4.0 base score of 2.3 reflects the constrained real-world exploitability accurately. Attack Complexity is High (AC:H) because successful exploitation requires the attacker to control authoritative DNS for the target hostname - a non-trivial prerequisite that limits opportunistic mass exploitation. Authentication is required (PR:L), restricting the attack surface to users with valid calendar accounts who can configure ICS or CalDAV subscription URLs. The confidentiality impact is bounded at Low for both the vulnerable system (VC:L) and subsequent systems (SC:L), meaning the attacker can probe and potentially read data from internal endpoints such as cloud IMDS, but cannot write or cause availability disruption. No KEV listing and no identified public exploit code further lower urgency. The primary real-world risk is credential or token harvesting from cloud metadata services (e.g., AWS IMDSv1 without hop-limit hardening) in cloud-hosted deployments. Self-hosted instances on isolated networks face reduced risk. This is a genuine SSRF flaw but a niche product with limited deployment scale, high attack complexity, and a narrow confidentiality-only impact - treat as medium internal priority rather than emergency. |
| Exploit ScenarioDerived | An authenticated keeper.sh user configures a malicious ICS subscription URL pointing to a domain they control. Their DNS server returns a public routable IP during the SSRF guard's validation phase, causing validation to pass, then immediately switches the DNS response to 169.254.169.254 (AWS instance metadata) for the actual HTTP connection, allowing the calendar module to fetch and return cloud credential metadata to the attacker. No public exploit code has been identified, but the technique is a well-understood DNS rebinding pattern requiring only DNS authority over the target domain. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 19, 2026
DNS rebinding in keeper.sh's calendar module (versions prior to 2.18.14) allows authenticated attackers to bypass the SSRF guard and route outbound HTTP connections to private network addresses, including cloud instance metadata endpoints such as 169.254.169.254. The flaw arises from a two-phase design: the guard resolves a hostname's IP addresses, asserts they are public, then discards those resolved addresses before independently re-resolving the hostname at socket-open time - an attacker controlling authoritative DNS can serve a public IP during validation and swap it to a private IP for the subsequent connection. No public exploit code has been identified at time of analysis, and a vendor-released patch is available in version 2.18.14.
RemediationAI
Upgrade keeper.sh to version 2.18.14 or later, which incorporates the fix from commit aea1cf537b850509e802b388f38cf1482cb6291b. The patch is available at https://github.com/ridafkih/keeper.sh/commit/aea1cf537b850509e802b388f38cf1482cb6291b and the security advisory is at https://github.com/ridafkih/keeper.sh/security/advisories/GHSA-mxxg-qffg-j3p6. For operators who cannot immediately upgrade, set the BLOCK_PRIVATE_RESOLUTION environment variable to true on the api, cron, and worker services - this variable is now documented in the updated README and defaulted to true in the reference compose.yaml. Note that BLOCK_PRIVATE_RESOLUTION defaults to false in the shipped configuration for backward compatibility with self-hosted CalDAV/ICS servers running on private addresses; enabling it will break calendar integrations that point to local network hosts unless those hosts are added to PRIVATE_RESOLUTION_WHITELIST. Additionally, hardening cloud IMDS access (e.g., enforcing IMDSv2 with hop-count 1 on AWS) limits the blast radius if the SSRF is exploited before patching.
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
keeper.sh (CPE: cpe:2.3:a:ridafkih:keeper.sh:*:*:*:*:*:*:*:*) is a self-hostable calendar application whose calendar module supports CalDAV and ICS subscription integrations that make outbound HTTP requests to user-supplied URLs. CWE-918 (Server-Side Request Forgery) is the root cause class: the guard in packages/calendar/src/utils/safe-fetch.ts called resolveAllAddresses() to validate that a hostname did not point to a private/reserved range, but the validated addresses were not pinned to the subsequent fetch call. The underlying OS or Node.js resolver performed an independent DNS lookup when the socket was opened, creating a classic TOCTOU (time-of-check/time-of-use) window exploitable via DNS rebinding. The fix introduces IP pinning: addresses are resolved once, validated, and then embedded directly into the URL used for the actual HTTP connection via a new buildPinnedConnection/pinnedUrl mechanism, closing the rebinding window. A new BLOCK_PRIVATE_RESOLUTION environment variable (defaulting to false for backward compatibility with self-hosted CalDAV setups) now explicitly controls this guard.
Know when Keeper Sh 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
CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N
Network vector with high complexity for DNS rebinding; authenticated attacker required; scope changes to internal systems with limited confidentiality read impact only.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
keeper.sh's calendar module version prior to 2.18.14 contains a server-side request forgery (SSRF) guard bypass vulnerability that allows authenticated attackers to reach private network addresses by exploiting a DNS rebinding attack against the two-phase URL validation and connection flow. The SSRF guard validates a hostname's resolved IP addresses but discards them before the actual HTTP connection is opened, allowing an attacker who controls authoritative DNS to return a public address during validation and a private address during the subsequent independent socket-level DNS resolution, causing the guard to pass while the outbound connection reaches internal infrastructure such as cloud instance metadata endpoints.
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
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
EUVD-2026-62585
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB