Eccenux opened a new issue, #3526:
URL: https://github.com/apache/logging-log4j2/issues/3526

   ## Description
   
   Seems like a star character ("*") is expanded into a directory listing. 
Might be a security I guess, but I don't think so. It's definitely an annoyance.
   
   ## Configuration
   
   **Version:** 2.24.3
   [INFO] +- org.apache.logging.log4j:log4j-slf4j2-impl:jar:2.24.3:compile
   [INFO] |  +- (org.apache.logging.log4j:log4j-api:jar:2.24.3:compile - 
omitted for duplicate)
   [INFO] |  +- org.slf4j:slf4j-api:jar:2.0.16:compile
   [INFO] |  \- (org.apache.logging.log4j:log4j-core:jar:2.24.3:runtime - 
omitted for duplicate)
   
   **Operating system:** Ubuntu 22.04.4 LTS
   (also happens on different test sever with later Ubuntu 22.04)
   (on Windows11 it seems fine)
   
   **JDK:** Adoptium JDK: OpenJDK Runtime Environment Temurin-17.0.6+10 (build 
17.0.6+10)
   (same on later Adoptium build: 17.0.11+9)
   
   ## Logs
   
   Expected log
   ```
   2025-03-10 15:50:56.0374 INFO : 
com.e.cor.privateservice.HiddenEntryScheduler Initialized cron for index-sync: \
   12 34 22 \
   * * * (nux)
   ```
   
   Actual log contains directory listing:
   ```
   2025-03-10 12:46:09.0969 INFO : 
com.e.cor.privateservice.HiddenEntryScheduler Initialized cron for index-sync: \
   12 34 22 \
   bin BUILDING.txt conf CONTRIBUTING.md ... \
   bin BUILDING.txt conf CONTRIBUTING.md ... \
   bin BUILDING.txt conf CONTRIBUTING.md ... (nux)
   ```
   This varies from server to server, but might be a `/root/` listing (on some 
test VMs) or tomcat directory listing (as in the example above).
   
   ## Reproduction
   A minimized code (from actual service code):
   ```java
   package com.example.core.privateservice;
   
   import javax.annotation.PostConstruct;
   import org.springframework.stereotype.Component;
   import org.springframework.beans.factory.annotation.Value;
   import org.slf4j.Logger;
   import org.slf4j.LoggerFactory;
   
   @Component
   public class HiddenEntryScheduler {
        private static final Logger LOG = 
LoggerFactory.getLogger(HiddenEntryScheduler.class);
   
        // daily (late evening)
        //@Value("${cron.hiddenentry.sync.cron:Rand60 Rand60 22 * * *}")
        @Value("${cron.hiddenentry.sync.cron:12 34 22 * * *}")
        private String cronExpression;
   
        @PostConstruct
        private void initialize() {
                String tenant = "nux";
                String dynamicCronExpression;
                dynamicCronExpression = cronExpression;
                LOG.info("Initialized cron for index-sync: {} ({})", 
dynamicCronExpression, tenant);
        }
   }
   ```
   
   Actual code is not much larger. Normally "Rand60" seen in the comment is 
dynamically replaced with a random number between 0-60.
   
   But effectively that should simply be:
   ```java
        private static final Logger LOG = 
LoggerFactory.getLogger(HiddenEntryScheduler.class);
        @PostConstruct
        private void initialize() {
                LOG.info("Initialized cron for index-sync: 12 34 22 * * * 
(nux)");
        }
   ```
   
   ## Additional notes
   
   I did try to add the old NoLookups thing, but that didn't help:
   ```java
   System.setProperty("log4j2.formatMsgNoLookups", "true");
   ```
   I'm not quite sure if the option is still relevant. [Looking at current code 
it doesn't seem like it 
is](https://github.com/apache/logging-log4j2/blob/23290e480d7c9146af962d1a3707ab7b06648894/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java#L89).
 Some docs still mention `m{lookups}`:
   
https://logging.apache.org/log4j/2.x/manual/pattern-layout.html#converter-message
   
   I did also check and the `@Value` does not expand the asterisk/star. When I 
do this:
   ```java
   LOG.info("Initialized cron for index-sync: {} ({})", 
dynamicCronExpression.replace("*", "[any]"), tenant);
   ```
   The message is:
   ```
   2025-03-10 14:51:49.0943 INFO : 
com.e.cor.privateservice.HiddenEntryScheduler Initialized cron for index-sync: \
   12 34 22 \
   [any] [any] [any] (nux)
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@logging.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to