Server side cross-site scripting In twisted
Description
Twisted vulnerable to NameVirtualHost Host header injection
When the host header does not match a configured host, twisted.web.vhost.NameVirtualHost will return a NoResource resource which renders the Host header unescaped into the 404 response allowing HTML and script injection.
Example configuration:
from twisted.web.server import Site from twisted.web.vhost import NameVirtualHost from twisted.internet import reactor resource = NameVirtualHost() site = Site(resource) reactor.listenTCP(8080, site) reactor.run()...
Output:
❯ curl -H"Host:<h1>HELLO THERE</h1>" http://localhost:8080/ <html> <head><title>404 - No Such Resource</title></head> <body> <h1>No Such Resource</h1> <p>host b'<h1>hello there</h1>' not in vhost map</p> </body>...
This vulnerability was introduced in f49041bb67792506d85aeda9cf6157e92f8048f4 and first appeared in the 0.9.4 release.
Mitigation
Update Impact
Minimal update. May introduce new vulnerabilities or breaking changes.
Ecosystem | Package | Affected version | Patched versions |
|---|---|---|---|
pypi | 22.10.0rc1 | ||
debian 11 | 20.3.0-7+deb11u2 | ||
debian 12 | 22.4.0-4 | ||
debian 13 | 22.4.0-4 | ||
debian 14 | 22.4.0-4 | ||
rpm rhel6 | - | - | |
rpm rhel6 | - | - | |
rpm rhel6 | - | - | |
rpm rhel6 | - | - | |
rpm rhel6 | - | - |
1-10 of 18
10
Aliases
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
References
1. 2. 3.