ASP.NET Core 5-RC1 HTTP Header Injection
Posted on 23 December 2016
############################################################# # # COMPASS SECURITY ADVISORY # http://www.csnc.ch/en/downloads/advisories.html # ############################################################# # # Product: ASP.NET Core # Vendor: Microsoft https://www.microsoft.com # CSNC ID: CSNC-2016-006 # Subject: HTTP Header Injection # Risk: Medium # Effect: HTTP Header manipulation # Author: Reto Schadler (advisories@compass-security.com) # Date: 21.12.2016 # ############################################################# Introduction: ------------- ASP.NET Core is a open-source and cross-platform framework for building modern cloud based internet connected applications, such as web apps, IoT apps and mobile backends. ASP.NET Core apps can run on .NET Core or on the full .NET Framework. It was architected to provide an optimized development framework for apps that are deployed to the cloud or run on-premises. It consists of modular components with minimal overhead, so you retain flexibility while constructing your solutions. [1] Carriage return and line feed characters are not filtered from the URL. This allows to manipulate the HTTP Header, and overwrite redirection URLs and manipulate cookies with a HTTP header injection are possible. Affected: --------- - ASP.NET 5-RC1 Technical Description: ---------------------- Inject carriage return and line feed into the URL, which allows to overwrite a new redirection location: /Account/Login?ReturnUrl=%2FAccount%0D%0ALocation%3A%20http%3A%2F%2Fwww.csnc.ch It's also possible to write or overwrite a cookie: /Account%0D%0ASet-Cookie:%20CompassCookie=HelloWorld1 Workaround / Fix: ----------------- Fixed with 1.0.0-RC2 of ASP.NET Core Timeline: --------- Vendor Status: Fixed with 1.0.0-RC2 of ASP.NET Core. Vendor Notified: 12.04.2016 Vendor Response: 21.04.2016 patch on github -> 1.0.0-RC2 Patch available: RC2 ASP.NET Core [2] References: ----------- [1]: https://github.com/aspnet/home [2]: https://github.com/aspnet/KestrelHttpServer/commit/c1e5640a656ddfe6d478cb54a30002de41c25180