Luke Pulverenti 10 лет назад
Родитель
Сommit
dca5101e46
1 измененных файлов с 11 добавлено и 1 удалено
  1. 11 1
      MediaBrowser.WebDashboard/Api/PackageCreator.cs

+ 11 - 1
MediaBrowser.WebDashboard/Api/PackageCreator.cs

@@ -102,7 +102,17 @@ namespace MediaBrowser.WebDashboard.Api
         /// <returns>System.String.</returns>
         /// <returns>System.String.</returns>
         private string GetDashboardResourcePath(string virtualPath)
         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>
         /// <summary>