GitHub Advisoryadvisory · PyPI

GHSA-vg46-2rrj-3647 Twisted vulnerable to NameVirtualHost Host header injection

MEDIUM Published 2022-10-26 Modified 2025-11-04 Official page ↗
Aliases
CVE-2022-39348
Ecosystem
PyPI
Packages
Twisted
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Weaknesses
CWE-79, CWE-80
Reviewed
2022-10-26

Affected packages

• PyPI Twisted: >= 0.9.4, < 22.10.0rc1 → fixed in 22.10.0rc1

Description

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: ```python 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:HELLO THERE" http://localhost:8080/ 404 - No Such Resource No Such Resource host b'hello there' not in vhost map ``` This vulnerability was introduced in f49041bb67792506d85aeda9cf6157e92f8048f4 and first appeared in the 0.9.4 release.

Related

Alias · CVE (1)

  • CVE-2022-39348 Twisted is an event-based framework for internet applications. vulnerability

Weakness · CWE (2)

  • CWE-79 Improper Neutralization of Input During Web Page Generation weakness
  • CWE-80 Improper Neutralization of Script-Related HTML Tags in a Web Page weakness

References