Transmission BitTorrent Client DNS Rebinding Vulnerability
The Transmission BitTorrent Client uses a client/server architecture, the user interface is the client and a daemon runs in the background managing the downloading, seeding, etc. Clients interact with the daemon using JSON RPC requests to a web server listening on port 9091. By default, the daemon will only accept requests from localhost. However, an attack called 'dns rebinding' can be used to bypass this restriction. This attack works by a user visiting a malicious website, which has an iframe to a domain that the attacker controls. The attacker's DNS server responds alternately with 127.0.0.1 and an address they control with a very low TTL. When the browser resolves to the address they control, they serve HTML that waits for the DNS entry to expire, then they XMLHttpRequest to the domain they control and have permission to read and set headers.