
A DNS rebinding attack framework.
Recent updates:
NEW (2025-11-25): Chrome release 142 added Local Network Access (LNA), which prevents DNS rebinding attack techniques implemented in Singularity. Singularity of Origin's LNA-from-Non-Secure-Contexts branch implements support for Trial for Local Network Access from Non-Secure Contexts. This temporarily allows access to resources on local networks from non-secure contexts, thus letting you experiment with DNS rebinding attacks a bit longer (until May 18, 2026) when using Chrome.
NEW (2025-05-19): Our demo site, rebind.it, has been upgraded to support IPv6 (commit 3c5ee9a). This is a breaking change for manual queries (outside of Singularity Manager UI) because the DNS query format has been modified. Please refer to How to Create Manual DNS Requests to Singularity of Origin for detailed instructions. Additionally, we periodically add new attack payloads; be sure to check them out.
(2023-04-27) Check out our blog post documenting the state of DNS rebinding for April 2023. We describe Local Network Access, a new draft W3C specification currently implemented in some browsers that aims to prevent DNS rebinding, and show two ways to bypass these restrictions. We also discuss the effects of WebRTC IP address leak mitigation, and DNS Bit 0x20 on DNS rebinding attacks.
(2020-03-30) New blog post investigating the impact of DoH on DNS rebinding attacks. TL;DR: DoH (DNS over HTTPS) has no effect on rebinding attacks and protections advertised by providers can be bypassed.
Check out our DEF CON 27 video and BSidesLV presentation at State of DNS Rebinding: Attack & Prevention Techniques and the Singularity of Origin.
Singularity of Origin is a tool to perform DNS rebinding attacks.
It includes the necessary components to rebind the IP address of the attack server DNS name to the target machine's IP address and to serve attack payloads to exploit vulnerable software on the target machine.
It also ships with sample payloads to exploit several vulnerable software versions, from the simple capture of a home page to performing remote code execution. It aims at providing a framework to facilitate the exploitation of software vulnerable to DNS rebinding attacks and to raise awareness on how they work and how to protect from them.
Detailed documentation is on the wiki pages.



Setting up Singularity requires a DNS domain name where you can edit your own DNS records for your domain and a Linux server to run it. Please see the setup singularity wiki page for detailed instructions.
The documentation is on the wiki pages. Here are a few pointers to start:
A test instance is available for demo purposes at http://rebind.it:8080/manager.html.
Singularity has been tested to work with the following browsers in optimal conditions in under 3 seconds:
| Browser | Operating System | Time to Exploit | Rebinding Strategy | Fetch Interval | Target Specification |
|---|---|---|---|---|---|
Multiple answers (fast) | |||||
Multiple answers (fast) | |||||
| Firefox | Windows 10 | ~3s | Multiple answers (fast) | 1s | 127.0.0.1 |
| Chromium | Ubuntu | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Firefox | Ubuntu | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Chrome | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Firefox | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Safari | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
Singularity supports the following attack payloads:
simple-fetch-get.js): This sample payload
makes a GET request to the root directory ('/') and shows the server response
using the fetch API.
The goal of this payload is to function as example request to make additional
contributions as easy as possible.exposed-chrome-devtools.js): This payload
demonstrates a remote code execution (RCE) vulnerability in Microsoft VS Code fixed in version 1.19.3.
This payload can be adapted to exploit any software that exposes Chrome Dev Tools on localhost.etcd.js): This payload retrieves the keys and values from
the etcd key-value store.