Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gitleaks for openSUSE:Factory 
checked in at 2024-06-17 19:28:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gitleaks (Old)
 and      /work/SRC/openSUSE:Factory/.gitleaks.new.19518 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gitleaks"

Mon Jun 17 19:28:20 2024 rev:5 rq:1180962 version:8.18.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/gitleaks/gitleaks.changes        2024-06-03 
17:42:51.913711428 +0200
+++ /work/SRC/openSUSE:Factory/.gitleaks.new.19518/gitleaks.changes     
2024-06-17 19:28:56.993057325 +0200
@@ -1,0 +2,13 @@
+Fri Jun 14 18:14:02 UTC 2024 - opensuse_buildserv...@ojkastl.de
+
+- Update to version 8.18.4:
+  * Limit hashicorp-tf-password to .tf/.hcl files (#1420)
+  * rm print
+  * reduce telegram... todo url and xml for later
+  * coderabbit.ai <3
+  * Add NewRelic insert key detection (#1417)
+  * Improved Telegram bot token rule regex and added more test
+    cases (#1404)
+  * Add intra42 client secret (#1408)
+
+-------------------------------------------------------------------

Old:
----
  gitleaks-8.18.3.tar.gz

New:
----
  gitleaks-8.18.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gitleaks.spec ++++++
--- /var/tmp/diff_new_pack.c0Z4Gx/_old  2024-06-17 19:28:57.777086018 +0200
+++ /var/tmp/diff_new_pack.c0Z4Gx/_new  2024-06-17 19:28:57.777086018 +0200
@@ -20,7 +20,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           gitleaks
-Version:        8.18.3
+Version:        8.18.4
 Release:        0
 Summary:        Protect and discover secrets using Gitleaks
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.c0Z4Gx/_old  2024-06-17 19:28:57.817087482 +0200
+++ /var/tmp/diff_new_pack.c0Z4Gx/_new  2024-06-17 19:28:57.821087629 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/zricethezav/gitleaks</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v8.18.3</param>
+    <param name="revision">v8.18.4</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.c0Z4Gx/_old  2024-06-17 19:28:57.837088214 +0200
+++ /var/tmp/diff_new_pack.c0Z4Gx/_new  2024-06-17 19:28:57.841088360 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/zricethezav/gitleaks</param>
-              <param 
name="changesrevision">39947b0b0d3f1829438000819c1ba9dbeb023a89</param></service></servicedata>
+              <param 
name="changesrevision">02808f45d038526bfcceebcbf6421c1047997ff9</param></service></servicedata>
 (No newline at EOF)
 

++++++ gitleaks-8.18.3.tar.gz -> gitleaks-8.18.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gitleaks-8.18.3/README.md 
new/gitleaks-8.18.4/README.md
--- old/gitleaks-8.18.3/README.md       2024-05-31 22:51:43.000000000 +0200
+++ new/gitleaks-8.18.4/README.md       2024-06-13 17:23:26.000000000 +0200
@@ -402,13 +402,19 @@
 You can ignore specific findings by creating a `.gitleaksignore` file at the 
root of your repo. In release v8.10.0 Gitleaks added a `Fingerprint` value to 
the Gitleaks report. Each leak, or finding, has a Fingerprint that uniquely 
identifies a secret. Add this fingerprint to the `.gitleaksignore` file to 
ignore that specific secret. See Gitleaks' 
[.gitleaksignore](https://github.com/zricethezav/gitleaks/blob/master/.gitleaksignore)
 for an example. Note: this feature is experimental and is subject to change in 
the future.
 
 ## Sponsorships
-
+<p align="left">
+       <h3><a 
href="https://coderabbit.ai/?utm_source=oss&utm_medium=sponsorship&utm_campaign=gitleaks";>coderabbit.ai</h3>
+         <a 
href="https://coderabbit.ai/?utm_source=oss&utm_medium=sponsorship&utm_campaign=gitleaks";>
+                 <img alt="CodeRabbit.ai Sponsorship" 
src="https://github.com/gitleaks/gitleaks/assets/15034943/76c30a85-887b-47ca-9956-17a8e55c6c41";
 width=200>
+         </a>
+</p>
 <p align="left">
          <a 
href="https://www.tines.com/?utm_source=oss&utm_medium=sponsorship&utm_campaign=gitleaks";>
                  <img alt="Tines Sponsorship" 
src="https://user-images.githubusercontent.com/15034943/146411864-4878f936-b4f7-49a0-b625-f9f40c704bfa.png";
 width=200>
          </a>
   </p>
 
+
 ## Exit Codes
 
 You can always set the exit code when leaks are encountered with the 
--exit-code flag. Default exit codes below:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gitleaks-8.18.3/cmd/generate/config/main.go 
new/gitleaks-8.18.4/cmd/generate/config/main.go
--- old/gitleaks-8.18.3/cmd/generate/config/main.go     2024-05-31 
22:51:43.000000000 +0200
+++ new/gitleaks-8.18.4/cmd/generate/config/main.go     2024-06-13 
17:23:26.000000000 +0200
@@ -106,6 +106,7 @@
                rules.HuggingFaceAccessToken(),
                rules.HuggingFaceOrganizationApiToken(),
                rules.Intercom(),
+               rules.Intra42ClientSecret(),
                rules.JFrogAPIKey(),
                rules.JFrogIdentityToken(),
                rules.JWT(),
@@ -132,6 +133,7 @@
                rules.NewRelicUserID(),
                rules.NewRelicUserKey(),
                rules.NewRelicBrowserAPIKey(),
+               rules.NewRelicInsertKey(),
                rules.NPM(),
                rules.NytimesAccessToken(),
                rules.OktaAccessToken(),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gitleaks-8.18.3/cmd/generate/config/rules/hashicorp.go 
new/gitleaks-8.18.4/cmd/generate/config/rules/hashicorp.go
--- old/gitleaks-8.18.3/cmd/generate/config/rules/hashicorp.go  2024-05-31 
22:51:43.000000000 +0200
+++ new/gitleaks-8.18.4/cmd/generate/config/rules/hashicorp.go  2024-06-13 
17:23:26.000000000 +0200
@@ -32,17 +32,20 @@
                RuleID:      "hashicorp-tf-password",
                Regex:       generateSemiGenericRegex(keywords, 
fmt.Sprintf(`"%s"`, alphaNumericExtended("8,20")), true),
                Keywords:    keywords,
+               Path:        regexp.MustCompile(`\.(tf|hcl)$`),
        }
 
-       tps := []string{
+       tps := map[string]string{
                // Example from: 
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/sql_server.html
-               "administrator_login_password = " + `"thisIsDog11"`,
+               "file.tf": "administrator_login_password = " + `"thisIsDog11"`,
                // 
https://registry.terraform.io/providers/petoju/mysql/latest/docs
-               "password       = " + `"rootpasswd"`,
+               "file.hcl": "password       = " + `"rootpasswd"`,
        }
-       fps := []string{
-               "administrator_login_password = var.db_password",
-               `password = "${aws_db_instance.default.password}"`,
+       fps := map[string]string{
+               "file.tf":      "administrator_login_password = 
var.db_password",
+               "file.hcl":     `password = 
"${aws_db_instance.default.password}"`,
+               "unrelated.js": "password       = " + `"rootpasswd"`,
        }
-       return validate(r, tps, fps)
+
+       return validateWithPaths(r, tps, fps)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gitleaks-8.18.3/cmd/generate/config/rules/intra42.go 
new/gitleaks-8.18.4/cmd/generate/config/rules/intra42.go
--- old/gitleaks-8.18.3/cmd/generate/config/rules/intra42.go    1970-01-01 
01:00:00.000000000 +0100
+++ new/gitleaks-8.18.4/cmd/generate/config/rules/intra42.go    2024-06-13 
17:23:26.000000000 +0200
@@ -0,0 +1,29 @@
+package rules
+
+import (
+       "github.com/zricethezav/gitleaks/v8/cmd/generate/secrets"
+       "github.com/zricethezav/gitleaks/v8/config"
+)
+
+func Intra42ClientSecret() *config.Rule {
+       // define rule
+       r := config.Rule{
+               Description: "Found a Intra42 client secret, which could lead 
to unauthorized access to the 42School API and sensitive data.",
+               RuleID:      "intra42-client-secret",
+               Regex:       
generateUniqueTokenRegex(`s-s4t2(?:ud|af)-[abcdef0123456789]{64}`, true),
+               Keywords: []string{
+                       "intra",
+                       "s-s4t2ud-",
+                       "s-s4t2af-",
+               },
+       }
+
+       // validate
+       tps := []string{
+               "clientSecret := \"s-s4t2ud-" + secrets.NewSecret(hex("64")) + 
"\"",
+               "clientSecret := \"s-s4t2af-" + secrets.NewSecret(hex("64")) + 
"\"",
+               
"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", // 
gitleaks:allow
+               
"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", // 
gitleaks:allow
+       }
+       return validate(r, tps, nil)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gitleaks-8.18.3/cmd/generate/config/rules/newrelic.go 
new/gitleaks-8.18.4/cmd/generate/config/rules/newrelic.go
--- old/gitleaks-8.18.3/cmd/generate/config/rules/newrelic.go   2024-05-31 
22:51:43.000000000 +0200
+++ new/gitleaks-8.18.4/cmd/generate/config/rules/newrelic.go   2024-06-13 
17:23:26.000000000 +0200
@@ -75,3 +75,26 @@
        }
        return validate(r, tps, nil)
 }
+
+func NewRelicInsertKey() *config.Rule {
+       // define rule
+       r := config.Rule{
+               RuleID:      "new-relic-insert-key",
+               Description: "Discovered a New Relic insight insert key, 
compromising data injection into the platform.",
+               Regex: generateSemiGenericRegex([]string{
+                       "new-relic",
+                       "newrelic",
+                       "new_relic",
+               }, `NRII-[a-z0-9-]{32}`, true),
+
+               Keywords: []string{
+                       "NRII-",
+               },
+       }
+
+       // validate
+       tps := []string{
+               generateSampleSecret("new-relic", 
"NRII-"+secrets.NewSecret(hex("32"))),
+       }
+       return validate(r, tps, nil)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gitleaks-8.18.3/cmd/generate/config/rules/rule.go 
new/gitleaks-8.18.4/cmd/generate/config/rules/rule.go
--- old/gitleaks-8.18.3/cmd/generate/config/rules/rule.go       2024-05-31 
22:51:43.000000000 +0200
+++ new/gitleaks-8.18.4/cmd/generate/config/rules/rule.go       2024-06-13 
17:23:26.000000000 +0200
@@ -97,6 +97,34 @@
        return &r
 }
 
+func validateWithPaths(r config.Rule, truePositives map[string]string, 
falsePositives map[string]string) *config.Rule {
+       var keywords []string
+       for _, k := range r.Keywords {
+               keywords = append(keywords, strings.ToLower(k))
+       }
+       r.Keywords = keywords
+
+       rules := make(map[string]config.Rule)
+       rules[r.RuleID] = r
+       d := detect.NewDetector(config.Config{
+               Rules:    rules,
+               Keywords: keywords,
+       })
+       for path, tp := range truePositives {
+               f := detect.Fragment{Raw: tp, FilePath: path}
+               if len(d.Detect(f)) != 1 {
+                       log.Fatal().Msgf("Failed to validate. For rule ID [%s], 
true positive [%s] in %s was not detected by regexp [%s] path [%s]", r.RuleID, 
tp, path, r.Regex, r.Path)
+               }
+       }
+       for path, fp := range falsePositives {
+               f := detect.Fragment{Raw: fp, FilePath: path}
+               if len(d.Detect(f)) != 0 {
+                       log.Fatal().Msgf("Failed to validate. For rule ID [%s], 
false positive [%s] in %s was detected by regexp [%s] path [%s]", r.RuleID, fp, 
path, r.Regex, r.Path)
+               }
+       }
+       return &r
+}
+
 func numeric(size string) string {
        return fmt.Sprintf(`[0-9]{%s}`, size)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gitleaks-8.18.3/cmd/generate/config/rules/telegram.go 
new/gitleaks-8.18.4/cmd/generate/config/rules/telegram.go
--- old/gitleaks-8.18.3/cmd/generate/config/rules/telegram.go   2024-05-31 
22:51:43.000000000 +0200
+++ new/gitleaks-8.18.4/cmd/generate/config/rules/telegram.go   2024-06-13 
17:23:26.000000000 +0200
@@ -13,44 +13,67 @@
                Description: "Detected a Telegram Bot API Token, risking 
unauthorized bot operations and message interception on Telegram.",
                RuleID:      "telegram-bot-api-token",
 
-               Regex: 
regexp.MustCompile(`(?i)(?:^|[^0-9])([0-9]{5,16}:A[a-zA-Z0-9_\-]{34})(?:$|[^a-zA-Z0-9_\-])`),
+               Regex: regexp.MustCompile(`(?i:(?:telegr)(?:[0-9a-z\(-_\t 
.\\]{0,40})(?:[\s|']|[\s|"]){0,3})(?:=|\|\|:|<=|=>|:|\?=|\()(?:'|\"|\s|=|\x60){0,5}([0-9]{5,16}:A[a-z0-9_\-]{34})(?:['|\"|\n|\r|\s|\x60|;|\\]|$)`),
                Keywords: []string{
-                       "telegram",
-                       "api",
-                       "bot",
-                       "token",
-                       "url",
+                       "telegr",
                },
        }
 
        // validate
-       validToken := secrets.NewSecret(numeric("8") + ":A" + 
alphaNumericExtendedShort("34"))
-       minToken := secrets.NewSecret(numeric("5") + ":A" + 
alphaNumericExtendedShort("34"))
-       maxToken := secrets.NewSecret(numeric("16") + ":A" + 
alphaNumericExtendedShort("34"))
+       var (
+               validToken = secrets.NewSecret(numeric("8") + ":A" + 
alphaNumericExtendedShort("34"))
+               minToken   = secrets.NewSecret(numeric("5") + ":A" + 
alphaNumericExtendedShort("34"))
+               maxToken   = secrets.NewSecret(numeric("16") + ":A" + 
alphaNumericExtendedShort("34"))
+               // xsdWithToken = secrets.NewSecret(`<xsd:element 
name="AgencyIdentificationCode" type="` + numeric("5") + `:A` + 
alphaNumericExtendedShort("34") + `"/>`)
+       )
        tps := []string{
                // variable assignment
                generateSampleSecret("telegram", validToken),
-               // URL containing token
-               generateSampleSecret("url", 
"https://api.telegram.org/bot"+validToken+"/sendMessage";),
+               // URL containing token TODO add another url based rule
+               // generateSampleSecret("url", 
"https://api.telegram.org/bot"+validToken+"/sendMessage";),
                // object constructor
                `const bot = new Telegraf("` + validToken + `")`,
                // .env
-               `API_TOKEN = ` + validToken,
+               `TELEGRAM_API_TOKEN = ` + validToken,
                // YAML
-               `bot: ` + validToken,
+               `telegram bot: ` + validToken,
                // Token with min bot_id
                generateSampleSecret("telegram", minToken),
                // Token with max bot_id
                generateSampleSecret("telegram", maxToken),
+               // Valid token in XSD document TODO separate rule for this
+               // generateSampleSecret("telegram", xsdWithToken),
        }
 
-       tooSmallToken := secrets.NewSecret(numeric("4") + ":A" + 
alphaNumericExtendedShort("34"))
-       tooBigToken := secrets.NewSecret(numeric("17") + ":A" + 
alphaNumericExtendedShort("34"))
+       var (
+               tooSmallToken                = secrets.NewSecret(numeric("4") + 
":A" + alphaNumericExtendedShort("34"))
+               tooBigToken                  = secrets.NewSecret(numeric("17") 
+ ":A" + alphaNumericExtendedShort("34"))
+               xsdAgencyIdentificationCode1 = secrets.NewSecret(`<xsd:element 
name="AgencyIdentificationCode" 
type="clm`+numeric("5")+":AgencyIdentificationCodeContentType") + `"/>`
+               xsdAgencyIdentificationCode2 = secrets.NewSecret(`token:"clm` + 
numeric("5") + `:AgencyIdentificationCodeContentType"`)
+               xsdAgencyIdentificationCode3 = secrets.NewSecret(`<xsd:element 
name="AgencyIdentificationCode" type="clm` + numeric("8") + 
`:AgencyIdentificationCodeContentType"/>`)
+               prefixedToken1               = 
secrets.NewSecret(`telegram_api_token = \"` + numeric("8") + `:Ahello` + 
alphaNumericExtendedShort("34") + `\"`)
+               prefixedToken2               = 
secrets.NewSecret(`telegram_api_token = \"` + numeric("8") + 
`:A-some-other-thing-` + alphaNumericExtendedShort("34") + `\"`)
+               prefixedToken3               = 
secrets.NewSecret(`telegram_api_token = \"` + numeric("8") + `:A_` + 
alphaNumericExtendedShort("34") + `\"`)
+               suffixedToken1               = 
secrets.NewSecret(`telegram_api_token = \"` + numeric("8") + `:A` + 
alphaNumericExtendedShort("34") + `hello\"`)
+               suffixedToken2               = 
secrets.NewSecret(`telegram_api_token = \"` + numeric("8") + `:A` + 
alphaNumericExtendedShort("34") + `-some-other-thing\"`)
+               suffixedToken3               = 
secrets.NewSecret(`telegram_api_token = \"` + numeric("8") + `:A_` + 
alphaNumericExtendedShort("34") + `_\"`)
+       )
        fps := []string{
                // Token with too small bot_id
                generateSampleSecret("telegram", tooSmallToken),
                // Token with too big bot_id
                generateSampleSecret("telegram", tooBigToken),
+               // XSD file containing the string 
AgencyIdentificationCodeContentType
+               generateSampleSecret("telegram", xsdAgencyIdentificationCode1),
+               generateSampleSecret("telegram", xsdAgencyIdentificationCode2),
+               generateSampleSecret("telegram", xsdAgencyIdentificationCode3),
+               // Prefix and suffix variations that shouldn't match
+               generateSampleSecret("telegram", prefixedToken1),
+               generateSampleSecret("telegram", prefixedToken2),
+               generateSampleSecret("telegram", prefixedToken3),
+               generateSampleSecret("telegram", suffixedToken1),
+               generateSampleSecret("telegram", suffixedToken2),
+               generateSampleSecret("telegram", suffixedToken3),
        }
 
        return validate(r, tps, fps)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gitleaks-8.18.3/config/gitleaks.toml 
new/gitleaks-8.18.4/config/gitleaks.toml
--- old/gitleaks-8.18.3/config/gitleaks.toml    2024-05-31 22:51:43.000000000 
+0200
+++ new/gitleaks-8.18.4/config/gitleaks.toml    2024-06-13 17:23:26.000000000 
+0200
@@ -2105,6 +2105,7 @@
 id = "hashicorp-tf-password"
 description = "Identified a HashiCorp Terraform password field, risking 
unauthorized infrastructure configuration and security breaches."
 regex = '''(?i)(?:administrator_login_password|password)(?:[0-9a-z\-_\t 
.]{0,20})(?:[\s|']|[\s|"]){0,3}(?:=|>|:{1,3}=|\|\|:|<=|=>|:|\?=)(?:'|\"|\s|=|\x60){0,5}("[a-z0-9=_\-]{8,20}")(?:['|\"|\n|\r|\s|\x60|;]|$)'''
+path = '''\.(tf|hcl)$'''
 keywords = [
     "administrator_login_password","password",
 ]
@@ -2160,6 +2161,14 @@
 ]
 
 [[rules]]
+id = "intra42-client-secret"
+description = "Found a Intra42 client secret, which could lead to unauthorized 
access to the 42School API and sensitive data."
+regex = 
'''(?i)\b(s-s4t2(?:ud|af)-[abcdef0123456789]{64})(?:['|\"|\n|\r|\s|\x60|;]|$)'''
+keywords = [
+    "intra","s-s4t2ud-","s-s4t2af-",
+]
+
+[[rules]]
 id = "jfrog-api-key"
 description = "Found a JFrog API Key, posing a risk of unauthorized access to 
software artifact repositories and build pipelines."
 regex = '''(?i)(?:jfrog|artifactory|bintray|xray)(?:[0-9a-z\-_\t 
.]{0,20})(?:[\s|']|[\s|"]){0,3}(?:=|>|:{1,3}=|\|\|:|<=|=>|:|\?=)(?:'|\"|\s|=|\x60){0,5}([a-z0-9]{73})(?:['|\"|\n|\r|\s|\x60|;]|$)'''
@@ -2360,6 +2369,14 @@
 ]
 
 [[rules]]
+id = "new-relic-insert-key"
+description = "Discovered a New Relic insight insert key, compromising data 
injection into the platform."
+regex = '''(?i)(?:new-relic|newrelic|new_relic)(?:[0-9a-z\-_\t 
.]{0,20})(?:[\s|']|[\s|"]){0,3}(?:=|>|:{1,3}=|\|\|:|<=|=>|:|\?=)(?:'|\"|\s|=|\x60){0,5}(NRII-[a-z0-9-]{32})(?:['|\"|\n|\r|\s|\x60|;]|$)'''
+keywords = [
+    "nrii-",
+]
+
+[[rules]]
 id = "new-relic-user-api-id"
 description = "Found a New Relic user API ID, posing a risk to application 
monitoring services and data integrity."
 regex = '''(?i)(?:new-relic|newrelic|new_relic)(?:[0-9a-z\-_\t 
.]{0,20})(?:[\s|']|[\s|"]){0,3}(?:=|>|:{1,3}=|\|\|:|<=|=>|:|\?=)(?:'|\"|\s|=|\x60){0,5}([a-z0-9]{64})(?:['|\"|\n|\r|\s|\x60|;]|$)'''
@@ -2758,9 +2775,9 @@
 [[rules]]
 id = "telegram-bot-api-token"
 description = "Detected a Telegram Bot API Token, risking unauthorized bot 
operations and message interception on Telegram."
-regex = 
'''(?i)(?:^|[^0-9])([0-9]{5,16}:A[a-zA-Z0-9_\-]{34})(?:$|[^a-zA-Z0-9_\-])'''
+regex = '''(?i:(?:telegr)(?:[0-9a-z\(-_\t 
.\\]{0,40})(?:[\s|']|[\s|"]){0,3})(?:=|\|\|:|<=|=>|:|\?=|\()(?:'|\"|\s|=|\x60){0,5}([0-9]{5,16}:A[a-z0-9_\-]{34})(?:['|\"|\n|\r|\s|\x60|;|\\]|$)'''
 keywords = [
-    "telegram","api","bot","token","url",
+    "telegr",
 ]
 
 [[rules]]

++++++ vendor.tar.gz ++++++

Reply via email to