Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Talisman fails silently if parts of the .talismanrc are not valid yaml #454

Open
karlbrown-va opened this issue Apr 20, 2024 · 0 comments
Open

Comments

@karlbrown-va
Copy link

karlbrown-va commented Apr 20, 2024

Describe the bug
.talismanrc is supposed to be a yaml file. However, the filename does not end in .yaml, certain editors may not detect it and use yaml settings, and additionally, yaml linters will not detect it by default to find errors.

This can lead to silent failures - for example if a tab is added to one of the lines. Further lines in the file (such as custom_patterns) could be ignored, leading to password leakage.

To Reproduce
Steps to reproduce the behavior:

  1. Create a new git repository and add a test file
  2. Add a custom pattern to .talismanrc:
custom_patterns:
  - 'pwd_[a-z]{8,20}'
  1. Add a string matching this pattern to the file
  2. git add . and then talisman -l debug --githook pre-commit and confirm the secret is detected and the custom pattern was used
  3. Replace the spaces in .talismanrc with tabs
  4. git add . and then talisman -l debug --githook pre-commit and confirm the secret no longer detected

Expected behavior

  • Talisman should fail on a malformed .talismanrc.yaml file and perform some basic sanity checks on the file
  • .talismanrc should be renamed as .talismanrc.yaml so it is detected by yamllinters and editors.
  • The samples of .talismanrc.yaml should be updated to be proper yaml (with correct indenting)
  • The output of the checksum tool should be properly indented (currently it is not indented, missing --- prefix, - e.g.
fileignoreconfig:
- filename: readme.md
  checksum: xxx
version: ""

should be

---
fileignoreconfig:
  - filename: readme.md
    checksum: xxx
version: ''

Desktop (please complete the following information):

  • OS: OSX
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant