Releases: gitleaks/gitleaks
v8.18.2
Changelog
- ac4b514 removed gitleaks user from Dockerfile (#1313)
- 76c9e31 Remove IAM identifiers for non-credential resources in the aws-access-token rule (#1307)
- afe046b Update stripe rule to not alert on publishable keys (#1320)
- 8b8920d --max-target-megabytes flag now supported for --no-git flag as well (#1330)
- a59289c add pre-commit hook gitleaks-system (#1225)
- 870194b fix errors when using protect and an external git diff tool (#1318)
- 179c607 rename filesystem to directory (#1317)
- 8de8938 Enhance Secret Descriptions (#1300)
- ca7aa14 Small refactor
detect
andsources
(#1297) - 01e60c8 chore(config): refactor to go generate; simplify configRules init (#1295)
- 54f5f04 forgot symlinks
- 221d5c4 pretty apparent 'protect' and 'detect' should be merged into one command (#1294)
- 128b50f style: sort the stopwords (#1289)
v8.18.1
Changelog
- dab7d02 dont crash on 100gb files pls (#1292)
- e63b657 remove secretgroup from default config (#1288)
- 20fcf50 feat: Hashicorp Terraform fields for password (#1237)
- b496677 perf: avoid allocations with
(*regexp.Regexp).MatchString
(#1283) - a3ab4e8 refactor: more explicit rules (#1280)
- bd9a25a bugfix: reduce false positives for stripe tokens by using word boundaries in regex (#1278)
- 6d0d8b5 add Infracost API rule (#1273)
- 2959fc0 refactor: simplify test asserts (#1271)
- d37b38f Update Makefile
- 14b1ca9 refactor: change detect tests to t.Fatal instead of log.Fatal (#1270)
- d9f86d6 feat(rules): Add detection for Scalingo API Token (#1262)
- ed34259 feat(jwt): detect base64-encoded tokens (#1256)
- 0d5e46f feat: add --ignore-gitleaks-allow cmd flag (#1260)
- a82ac29 switch out libs (#1259)
- 0b84afa fix: no-color option should also affect zerolog output (#1242)
- 8976539 Fixed lineEnd indexing if the match is the whole line (#1223)
- 30c6117 feat: Add optional redaction value, default 100 (#1229)
- e9135cf fix(jwt): longer segment lengths (#1214)
- f65f915 Added yarn.lock file to default allowlist paths (#1258)
- abfd0f3 Update README.md
- 18283bb feat(rules): make case insensitivity optional (#1215)
- 9fb36b2 feat(rules): detect Hugging Face access tokens (#1204)
- db4bc0f Resolve #1170 - Enable selection of a single rule (#1183)
- 3cbcda2 Update authress.go to include alternate form account dash (-) (#1224)
- 46c6272 refactor: remove unnecessary removing temp files in tests (#1255)
- 963a697 refactor: use os.ReadFile instead of os.Open + io.ReadAll (#1254)
- 163ec21 fix(sumologic): improve patterns (#1218)
v8.18.0
What's Changed
- Fix inconsistent generated values in config by @rgmz in #1200
- feat: add JFrog API and Identity keys by @baruchiro in #1233
- Add entropy check to plaid client/secret ID rules by @mortenson in #1213
- Update config template logic by @rgmz in #1201
- Include entropy in Plaid rule file by @rgmz in #1252
- refactor: fix #722 properly by @L11R in #1250
New Contributors
- @baruchiro made their first contribution in #1233
- @mortenson made their first contribution in #1213
- @L11R made their first contribution in #1250
Full Changelog: v8.17.0...v8.18.0
v8.17.0
What's Changed
- Add
REDACTED
to stopwords forgeneric-api-key
rule by @9999years in #1188 - Add detection for Snyk tokens by @wayne-snyk in #1190
- Add makefile variable detections by @wayne-snyk in #1191
- chore: update deps to fix solaris #1158 by @gaige in #1159
- Add junit report format by @maltemorgenstern in #920
- Ignore all comits when
.gitleaksignore
fingerprint lacks SHA by @rgmz in #1156 - Improved global exclusion list by @sergiomarotco in #1193
- Add detection for OpenAI API keys by @Becojo in #1148
- Add warning for quoted
--log-opts
values by @rgmz in #1160 - Fixed docker run command in README.md by @IanMoroney in #1194
- add tags support for csv and sarif formats by @eyalatox in #1176
- Update Slack token regexes by @rgmz in #1161
New Contributors
- @9999years made their first contribution in #1188
- @wayne-snyk made their first contribution in #1190
- @gaige made their first contribution in #1159
- @IanMoroney made their first contribution in #1194
- @eyalatox made their first contribution in #1176
- @dvasdekis made their first contribution in #1079
Full Changelog: v8.16.4...v8.17.0
v8.16.4
Changelog
- 6f75511 Added option to specify .gitleaksignore path (#1179) @pacorreia
- 190ac97 Fix closing file in writeJson and writeSarif (#1187) @alexandear
- 6dbb0c5 Simplify tests by using T.TempDir (#1186) @alexandear
- 6705461 Fix typos in *.md, comments and logs (#1185) @alexandear
- 9869eab Update README.md
- 16f1ec0 Update bug_report.md
- 8d80a5a Adding discord channel to readme
- 146f69e π fix(sarif): update report to pass validator (#1167) @DariuszPorowski
v8.16.3
Changelog
- 51ca0f8 fix(detect): extra secret from group before checking allowlist (#1152)
- 81cf308 Fix G307 warning: Deferring unsafe method "Close" on type "*os.File" (#1154)
- bd8b145 fix(detect): avoid panic with verbose flag (#1143)
- 839f114 Fix typo (#1142)
- 63c3076 No color (#1136)
- 56079dc safer out of bounds (#1135)
- 9c6650d Add Authress access key format: https://authress.io/knowledge-base/docs/authorization/service-clients/secrets-scanning/ (#1131)
- 6fa63f4 Update pre-commit address and rev tag in README (#1125)
- 9701bf1 Bufix/1100 protect stagged files (#1121)
- db79d81 fix README.md !? (#1123)
- 8a31f4a Improve rule descriptions for Stripe and Facebook access tokens (#1119)
- 6b0c303 Add Defined Networking API Tokens (#1096)
Huuuuuge thank you to all the contributors especially @rgmz
@edwardwang888 @wparad @sadikkuzu @RafaelFigueiredo @fgreinacher @jasikpark @sergiomarotco
v8.16.2
Changelog
- 63c3076 No color (#1136)
- 56079dc safer out of bounds (#1135) (Thank you @agmond)
- 9c6650d Add Authress access key format: https://authress.io/knowledge-base/docs/authorization/service-clients/secrets-scanning/ (#1131)
- 6fa63f4 Update pre-commit address and rev tag in README (#1125)
- 9701bf1 Bufix/1100 protect stagged files (#1121)
- a5b9c24 remove extra default on source option
- db79d81 fix README.md !? (#1123)
- 8a31f4a Improve rule descriptions for Stripe and Facebook access tokens (#1119)
- 6b0c303 Add Defined Networking API Tokens (#1096)
Thanks to @americanair for sponsoring this open source project!
Thanks to all the contributors this release: @fgreinacher @wparad @RafaelFigueiredo @sergiomarotco @jasikpark
v8.16.1
v8.16.0
Changelog
Allowlist Regex Targets
Let's use the generic rule to demonstrate the new regexTarget
allowlist option
[[rules]]
description = "Generic API Key"
id = "generic-api-key"
regex = '''(?i)(?:key|api|token|secret|client|passwd|password|auth|access)(?:[0-9a-z\-_\t .]{0,20})(?:[\s|']|[\s|"]){0,3}(?:=|>|:=|\|\|:|<=|=>|:)(?:'|\"|\s|=|\x60){0,5}([0-9a-z\-_.=]{10,150})(?:['|\"|\n|\r|\s|\x60|;]|$)'''
secretGroup = 1
entropy = 3.5
keywords = [
"key","api","token","secret","client","passwd","password","auth","access",
]
example.txt
will be our target and contain a single line with a fake secret:
var discord_client_secret = '8dyfuiRyq=vVc3RRr_edRk-fK__JItpZ'
Running gitleaks on this file using the generic rule will return one finding:
gitleaks detect --source=example.txt --no-git -v --config=example.toml
β
ββ²
β β
β β
β gitleaks
Finding: discord_client_secret = '8dyfuiRyq=vVc3RRr_edRk-fK__JItpZ'
Secret: 8dyfuiRyq=vVc3RRr_edRk-fK__JItpZ
RuleID: generic-api-key
Entropy: 4.413910
File: example.txt
Line: 1
Fingerprint: example.txt:generic-api-key:1
We can add a allowlist regexes
entry to include part of the secret. This will cause gitleaks to ignore the finding above.
Note that by default gitleaks uses the Secret to compare against allowlist regexes.
Adding the following allowlist to the generic rule will cause gitleaks to ignore the finding:
[rules.allowlist]
regexes = ["vV"]
But now say you don't want to use Secret
to compare against your allowlist regexes. Well, now you can use regexTarget
and set the value as either line
or match
to compare against the line or regex match:
[rules.allowlist]
regexTarget = "match"
regexes = ["discord"]
and
[rules.allowlist]
regexTarget = "line"
regexes = ["var"]
will both result in the finding being ignored because discord
is found in the generic rule regex match and var
is in the line where the finding was found.
In addition to rule allowlists, you can set regexTarget
in the global allowlist:
[allowlist]
regexTarget = "line"
regexes = ["var"]
Thanks @bplaxco for the review
v8.15.4
Changelog
- 343e693 ignore package-lock.json (#1076)
- 0060ab6 Fix typos in README.md and CONTRIBUTING.md (#1090)
- 0259088 fix: ignore baseline if path was not relative in source (#1101)
- 088f8b8 Fix H in GitHub and update pre-commit rev tag in README (#1087)
Shouts outs to @sandyydk @raffis @lawndoc @sadikkuzu