Overview
About vulnerability
Applications that build a Content-Disposition header value from untrusted input
may be vulnerable to HTTP response splitting when the input is a malicious file name.
Specifically, an application can be vulnerable in either of the following cases:
- The application sets a response’s
Content-Dispositionheader from untrusted input, and the underlying HTTP connector does not itself reject malicious characters in header values. The servlet and reactive connectors supported by Spring Framework (Tomcat, Reactor Netty, Jetty, Undertow) already reject such characters, so this case applies only to non-default or legacy connectors. - The application uses untrusted input to set the
Content-Dispositionof a part when building an outbound multipart request body. This case is independent of the underlying connector.
When either condition is met, an attacker who controls content disposition values can break the HTTP header, or corrupt the framing of an outbound multipart body.
Details
- Affected product:
- Apache CXF , Apache Log4j , Apache Struts , Apache Tapestry , Apache Tomcat , Eclipse Jetty , Spring , activemq , amqp-10-jms-spring-boot , artemis , azure-spring-data-cosmos , camel , castor , cocoon , crash , cypher-dsl , glassfish-hk2 , gora , grails-core , grails-data-mapping , grails-gsp , grails-plugin-converters , java-sdk , jersey , karaf , micronaut-spring , pulsar , rest-assured , tika
- Affected packages:
- Spring Cloud @ 3.1.9 (+11667 more)