CVE-2023-36474: Interactsh server settings make users vulnerable to Subdomain Takeover
A domain configured with interactsh server was vulnerable to subdomain takeover for specfic subdomain, i.e app, Interactsh server before < 1.0.0 used to create cname entries for app pointing to projectdiscovery.github.io as default which intended to used for hosting interactsh web client using GitHub pages. It turns out to be a security issue with a self-hosted interactsh server in which the user may not have configured a web client but still have a cname entry pointing to GitHub pages, making them vulnerable to subdomain takeover.
This issue was initially reported to us as a subdomain takeover for one of our domains that runs interactsh server by Melih at security@projectdiscovery.io, and after conducting an internal investigation, we determined that it was an issue with the default config of interactsh server affecting all the server running self-hosted instance of interactsh, as a result - cname entry has been removed in the latest release.
Impact This allows one to host / run arbitrary client side code (XSS) in a user's browser when browsing the vulnerable subdomain, for more details on the impact, please read this detailed blogpost from Detectify. Patches Update to Interactsh server v1.0.0 with go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-server@latest
References https://github.com/projectdiscovery/interactsh/issues/136
For more information If you have any questions or comments about this advisory: Email us at security@projectdiscovery.io
Other sources
Interactsh is an open-source tool for detecting out-of-band interactions. Domains configured with interactsh server prior to version 1.0.0 were vulnerable to subdomain takeover for a specific subdomain, i.e app. Interactsh server used to create cname entries for app pointing to projectdiscovery.github.io as default, which intended to used for hosting interactsh web client using GitHub pages. This is a security issue with a self-hosted interactsh server in which the user may not have configured a web client but still have a CNAME entry pointing to GitHub pages, making them vulnerable to subdomain takeover. This allows a threat actor to host / run arbitrary client side code (cross-site scripting) in a user's browser when browsing the vulnerable subdomain. Version 1.0.0 fixes this issue by making CNAME optional, rather than default.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/github.com/projectdiscovery/interactshto a version that resolves this vulnerability.Fixed in 1.0.0 - Upgrade
Upgrade
github.com/projectdiscovery/interactsh/cmd/interactsh-serverto a version that resolves this vulnerability.Fixed in v1.0.0 - Compensating control
If you use a self-hosted Interactsh server and you do not require the GitHub Pages web client, ensure you do not configure/retain a CNAME that points your specific subdomain (e.g., app.) to projectdiscovery.github.io (GitHub Pages), since earlier Interactsh server versions (< 1.0.0) created this CNAME by default for the web client.
Event History
Frequently Asked Questions
What is the severity of CVE-2023-36474?
CVE-2023-36474 is considered a critical vulnerability due to its potential for subdomain takeover.
How do I fix CVE-2023-36474?
To fix CVE-2023-36474, upgrade Interactsh server to version 1.0.0 or later.
What version of Interactsh is affected by CVE-2023-36474?
CVE-2023-36474 affects Interactsh server versions before 1.0.0.
What type of vulnerability is CVE-2023-36474?
CVE-2023-36474 is a subdomain takeover vulnerability that could be exploited when a specific subdomain is configured.
Which subdomain is specifically vulnerable in CVE-2023-36474?
The subdomain specifically vulnerable in CVE-2023-36474 is 'app'.