[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ASP.NET Core 5-RC1 HTTP Header Injection



#############################################################
#
# 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 Schädler (advisories@xxxxxxxxxxxxxxxxxxxx)
# 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