SECURITY: log secret masking fails open and can emit raw secrets when masking throws #171
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/a0-symbolics#171
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Finding
helpers/log.py::Log._mask_recursive()catches every exception from secret-manager lookup/masking/recursive processing and returns the original object unchanged:The returned value is then placed into logs/state and can be sent to the WebUI or persisted. If the secret manager fails, is temporarily misconfigured, hits an unexpected value shape, or throws while a plugin/context is changing, the fallback is therefore the unmasked secret-bearing payload.
Secret redaction is a confidentiality boundary and should fail closed, not fail open.
Direction
Define a fail-closed masking contract:
Acceptance
LogItemoutput.mask_values()for strings/dicts/lists.Mirrored from
lost-rob0t/a0-symbolics#33via tracker sync.