|
@@ -102,7 +102,17 @@ namespace MediaBrowser.WebDashboard.Api
|
|
|
/// <returns>System.String.</returns>
|
|
|
private string GetDashboardResourcePath(string virtualPath)
|
|
|
{
|
|
|
- return Path.Combine(DashboardUIPath, virtualPath.Replace('/', Path.DirectorySeparatorChar));
|
|
|
+ var rootPath = DashboardUIPath;
|
|
|
+
|
|
|
+ var fullPath = Path.Combine(rootPath, virtualPath.Replace('/', Path.DirectorySeparatorChar));
|
|
|
+
|
|
|
+ // Don't allow file system access outside of the source folder
|
|
|
+ if (!_fileSystem.ContainsSubPath(rootPath, fullPath))
|
|
|
+ {
|
|
|
+ throw new UnauthorizedAccessException();
|
|
|
+ }
|
|
|
+
|
|
|
+ return fullPath;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|