qianye1001 opened a new issue, #10950:
URL: https://github.com/apache/rocketmq/issues/10950

   ### Before Creating the Bug Report
   
   - [x] I found a bug, not just a question.
   - [x] I searched existing GitHub issues and discussions and did not find a 
duplicate.
   - [x] I confirmed that the bug belongs to this repository.
   
   ### Runtime platform environment
   
   Any environment that starts Proxy or updates Broker/Controller configuration.
   
   ### RocketMQ version
   
   - Branch: `develop`
   - Commit: `293f588571`
   
   ### JDK Version
   
   Reproduced and verified with Amazon Corretto JDK 11.0.23.
   
   ### Describe the Bug
   
   RocketMQ writes configuration values to logs in several paths without a 
common sensitivity marker or redaction policy:
   
   - Proxy startup serializes the complete `ProxyConfig`.
   - Broker and BrokerContainer configuration updates log old and new property 
values.
   - `MixAll.printObjectProperties` prints configuration fields directly.
   - Invalid metrics exporter headers are logged verbatim.
   
   Fields such as TLS key passwords, authentication bootstrap data, 
inner-client credentials, proxy credentials, and metrics exporter headers can 
therefore be exposed in log files.
   
   ### Steps to Reproduce
   
   1. Configure Proxy with a non-empty `tlsKeyPassword` or 
`metricsGrpcExporterHeader`.
   2. Start Proxy and inspect the current-configuration startup log.
   3. Alternatively, update a sensitive Broker property through the 
configuration update path.
   4. Observe that the configured value is written to the log.
   
   ### What Did You Expect to See?
   
   Sensitive configuration fields should be explicitly marked and masked only 
in log projections. Logs should retain a short prefix and suffix for 
troubleshooting, while the original configuration values and behavior remain 
unchanged.
   
   ### What Did You See Instead?
   
   The full sensitive value is present in the log.
   
   ### Additional Context
   
   A proposed fix introduces a runtime `@SensitiveConfig` marker and a shared 
log-only masking utility. It keeps the original configuration parsing, update, 
persistence, and serialization APIs unchanged. Untyped `Properties` retain a 
conservative key-name fallback because annotations are not available in that 
path.
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to