Skip to content

Commit cf06740

Browse files
committed
(#3603) Don't allow trace logging when no elevated
Prior to this change, trace level logging was available to everyone. However, due to the sensitive nature of some of the output, the decision has been taken to restrict trace logging to only elevated sessions. When an attempt is made to use trace logging in a non-elevated session, a warning will be shown, and no trace logging will be shown. In addition, if the -r option is in play, the warning about no trace logging will go to the log file, but won't be displayed.
1 parent 3fa34f8 commit cf06740

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

src/chocolatey.console/Program.cs

+17-1
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,23 @@ private static void Main(string[] args)
142142
var traceAppenderName = "{0}LoggingColoredConsoleAppender".format_with(ChocolateyLoggers.Trace.to_string());
143143
Log4NetAppenderConfiguration.set_logging_level_debug_when_debug(config.Debug, verboseAppenderName, traceAppenderName);
144144
Log4NetAppenderConfiguration.set_verbose_logger_when_verbose(config.Verbose, config.Debug, verboseAppenderName);
145-
Log4NetAppenderConfiguration.set_trace_logger_when_trace(config.Trace, traceAppenderName);
145+
146+
if (config.Information.IsProcessElevated)
147+
{
148+
Log4NetAppenderConfiguration.set_trace_logger_when_trace(config.Trace, traceAppenderName);
149+
}
150+
else
151+
{
152+
var logger = ChocolateyLoggers.Normal;
153+
154+
if (!config.RegularOutput)
155+
{
156+
logger = ChocolateyLoggers.LogFileOnly;
157+
}
158+
159+
"chocolatey".Log().Warn(logger, "Usage of the --trace option is only allowed when running from an elevated session.");
160+
}
161+
146162
"chocolatey".Log().Debug(() => "{0} is running on {1} v {2}".format_with(ApplicationParameters.Name, config.Information.PlatformType, config.Information.PlatformVersion.to_string()));
147163
//"chocolatey".Log().Debug(() => "Command Line: {0}".format_with(Environment.CommandLine));
148164

src/chocolatey/GetChocolatey.cs

+16-1
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,22 @@ private T ensure_original_configuration<T>(IList<string> args, Func<ChocolateyCo
446446
var traceAppenderName = "{0}LoggingColoredConsoleAppender".format_with(ChocolateyLoggers.Trace.to_string());
447447
Log4NetAppenderConfiguration.set_logging_level_debug_when_debug(configuration.Debug, verboseAppenderName, traceAppenderName);
448448
Log4NetAppenderConfiguration.set_verbose_logger_when_verbose(configuration.Verbose, configuration.Debug, verboseAppenderName);
449-
Log4NetAppenderConfiguration.set_trace_logger_when_trace(configuration.Trace, traceAppenderName);
449+
450+
if (configuration.Information.IsProcessElevated)
451+
{
452+
Log4NetAppenderConfiguration.set_trace_logger_when_trace(configuration.Trace, traceAppenderName);
453+
}
454+
else
455+
{
456+
var logger = ChocolateyLoggers.Normal;
457+
458+
if (!configuration.RegularOutput)
459+
{
460+
logger = ChocolateyLoggers.LogFileOnly;
461+
}
462+
463+
"chocolatey".Log().Warn(logger, "Usage of the --trace option is only allowed when running from an elevated session.");
464+
}
450465
}
451466
finally
452467
{

0 commit comments

Comments
 (0)