mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
Merge pull request #2801 from mRemoteNG/fix/aikido-security-sast--7464275-6ovw
[Aikido] AI Fix for Path traversal attack possible
This commit is contained in:
@@ -16,6 +16,10 @@ namespace mRemoteNG.Themes
|
||||
/// <param name="baseTheme"></param>
|
||||
public static void SaveToXmlFile(ThemeInfo themeToSave, ThemeInfo baseTheme)
|
||||
{
|
||||
if (baseTheme.URI == null || baseTheme.URI.Contains("../") || baseTheme.URI.Contains(@"..\"))
|
||||
throw new ArgumentException("Invalid file path");
|
||||
if (themeToSave.Name == null || themeToSave.Name.Contains("../") || themeToSave.Name.Contains(@"..\"))
|
||||
throw new ArgumentException("Invalid file path");
|
||||
string oldURI = baseTheme.URI;
|
||||
string directoryName = Path.GetDirectoryName(oldURI);
|
||||
string toSaveURI = directoryName + Path.DirectorySeparatorChar + themeToSave.Name + ".vstheme";
|
||||
@@ -34,6 +38,8 @@ namespace mRemoteNG.Themes
|
||||
/// <param name="themeToUpdate"></param>
|
||||
public static void UpdateThemeXMLValues(ThemeInfo themeToUpdate)
|
||||
{
|
||||
if (themeToUpdate.URI == null || themeToUpdate.URI.Contains("../") || themeToUpdate.URI.Contains(@"..\"))
|
||||
throw new ArgumentException("Invalid file path");
|
||||
byte[] bytesIn = File.ReadAllBytes(themeToUpdate.URI);
|
||||
MremoteNGPaletteManipulator manipulator = new(bytesIn, themeToUpdate.ExtendedPalette);
|
||||
byte[] bytesOut = manipulator.mergePalette(themeToUpdate.ExtendedPalette);
|
||||
@@ -48,6 +54,8 @@ namespace mRemoteNG.Themes
|
||||
/// <returns></returns>
|
||||
public static ThemeInfo LoadFromXmlFile(string filename, ThemeInfo defaultTheme = null)
|
||||
{
|
||||
if (filename == null || filename.Contains("../") || filename.Contains(@"..\"))
|
||||
throw new ArgumentException("Invalid file path");
|
||||
byte[] bytes = File.ReadAllBytes(filename);
|
||||
//Load the dockpanel part
|
||||
MremoteNGThemeBase themeBaseLoad = new(bytes);
|
||||
|
||||
Reference in New Issue
Block a user