Conversation
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Andrea Bozzo <andreabozzo92@gmail.com>
Owner
Author
|
This alert was autotriggered, odds of this happening were ultra low as we don't derive db structures right now. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated hotfix.
In general, to fix cleartext logging of sensitive information, you should avoid including sensitive fields (like passwords, API keys, tokens) in any object that can be implicitly logged with
Debug/Display, or ensure they are redacted before logging (e.g., replaced with"***"or omitted). In Rust, a common fix is either to removeDebugfor the sensitive type or to provide a manualDebugimplementation that redacts sensitive fields, while leaving program behavior otherwise unchanged.For this code, the minimal change that avoids leaking
passwordin logs without altering functionality is:#[derive(Debug)]fromConnectionInfo, since it currently includes the password field verbatim.impl std::fmt::Debug for ConnectionInfothat prints all non-sensitive fields as before, but redacts thepasswordfield (e.g., always printingSome("REDACTED")when a password is present, orNoneotherwise). The storedpasswordvalue remains unchanged and is still available to the rest of the program.Concretely:
src/database/connection.rs, change the#[derive(Debug, Clone)]onConnectionInfoto#[derive(Clone)].ConnectionInfodefinition, add a manualimpl std::fmt::Debug for ConnectionInfothat formats the struct, but replaces the actual password with a placeholder. No new external dependencies are required, onlystd::fmtfrom the standard library (fully qualified).Suggested fixes powered by Copilot Autofix. Review carefully before merging.