gitlab-secret_detection 0.37.1 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: db8f4b15d10dfeee9f82ecb41a6edd4237ba6da77cf83958fbf8e32d55edf4e7
|
|
4
|
+
data.tar.gz: 422c8f40835c0dff3106b6f5933bae77253685501c0b698096d2551658f57084
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1888e803f532e8cea79a06ab22b6d09ad95ca6f32975930ba4e231f2637c994dfb3631ad5aec7dd0f5c08cc7b25132ebf42319fb8cb1125219bbd0be4ada7cb3
|
|
7
|
+
data.tar.gz: 16dbb33e6df6cf8426dd2fd7da169ed59ac81b2ce6495d04a9edfaa791b1923dbec247e57d7e437d2cd7435718db94168b5a23149737801fbb11b5079d7740bf
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# rule-set version: 0.
|
|
1
|
+
# rule-set version: 0.20.0
|
|
2
2
|
# Rules are auto-generated. See https://gitlab.com/gitlab-org/security-products/secret-detection/secret-detection-rules for instructions on updating the rules.
|
|
3
3
|
[[rules]]
|
|
4
4
|
id = 'AdafruitIOKey'
|
|
@@ -38,7 +38,7 @@ keywords = ['amzn1.application-oa2-client']
|
|
|
38
38
|
|
|
39
39
|
[[rules]]
|
|
40
40
|
id = 'anthropic_key'
|
|
41
|
-
regex = '\
|
|
41
|
+
regex = '\bsk-ant-[a-z]{3}\d{2}-[0-9A-Za-z_-]{94}[0-9A-Za-z_]\b'
|
|
42
42
|
description = "An Anthropic API key was detected. Anthropic keys are used to access generative AI services. Malicious\nactors could use these keys to build up excessive charges to your account."
|
|
43
43
|
title = 'Anthropic API key'
|
|
44
44
|
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo remediate a leaked Anthropic key, you should delete it from the list of API keys for your organization.\n\n- Sign in to your [Anthropic account](https://console.anthropic.com/)\n- Go to \"API settings\" by selecting your profile icon and then selecting \"API Keys\" or through the Settings tab\n- Identify the leaked API key and select the meatball menu (three horizontal dots) next to the key you want to delete\n- Select \"Delete API Key\"\n - Note: Deleting an API key is a permanent action and cannot be undone\n- Generate a new key by selecting \"Create Key\" and give it a descriptive name\n\nFor more information, please see Anthropic's website: <https://support.anthropic.com/en/articles/8384961-what-should-i-do-if-i-suspect-my-api-key-has-been-compromised>."
|
|
@@ -83,21 +83,39 @@ keywords = ['ATCTT3xFfGN0']
|
|
|
83
83
|
|
|
84
84
|
[[rules]]
|
|
85
85
|
id = 'AWS'
|
|
86
|
-
regex = '\
|
|
87
|
-
description = "An AWS Access
|
|
88
|
-
title = 'AWS
|
|
89
|
-
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab
|
|
86
|
+
regex = '\b(?:AKIA|ASIA|A3T[A-Z0-9])[2-7A-Z]{16}\b'
|
|
87
|
+
description = "An AWS Access Key ID was detected. AWS Access Key IDs come in different types: long-term IAM user access keys\n(starting with AKIA), temporary STS credentials (starting with ASIA), or AWS STS service bearer tokens. These\ncredentials are paired with Secret Access Keys to authenticate programmatic requests to AWS services. A\nmalicious actor with access to both the Access Key ID and its associated Secret Access Key can access AWS\nresources with the permissions granted to that credential, potentially leading to data breaches, resource\nmanipulation, or unauthorized charges."
|
|
88
|
+
title = 'AWS Access Key ID'
|
|
89
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab\ndocumentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\n- **For Long-term IAM Access Keys (AKIA/A3T prefix)**:\n\nTo delete a long-term IAM access key:\n\n1. Log in to the AWS Management Console at <https://console.aws.amazon.com>\n2. Navigate to the IAM service by searching for \"IAM\" in the search bar or accessing it directly at\n <https://console.aws.amazon.com/iam>\n3. In the left navigation pane, select \"Users\" and locate the IAM user associated with the compromised key\n4. Select the username to view the user details page\n5. Navigate to the \"Security credentials\" tab\n6. In the \"Access keys\" section, find the key that matches the leaked Access Key ID\n7. Select \"Actions\" dropdown next to the key\n8. Select \"Deactivate\" to immediately disable the key, then select \"Delete\" to permanently remove it\n9. Generate a new access key pair if needed by selecting \"Create access key\"\n10. Update all applications, scripts, and systems that were using the compromised credentials with the new key\n11. Verify the old key is no longer active by checking the \"Access keys\" section shows the key as deleted\n\n- **For Temporary STS Credentials (ASIA prefix)**:\n\nTemporary credentials cannot be manually deleted but will expire automatically. To mitigate exposure:\n\n1. Log in to the AWS Management Console at <https://console.aws.amazon.com>\n2. Navigate to the IAM service at <https://console.aws.amazon.com/iam>\n3. Identify the IAM role or user that generated the temporary credentials by reviewing AWS CloudTrail logs\n4. If the credentials were generated via AssumeRole, consider attaching a deny policy to the role to prevent\n further access until credentials expire\n5. Review and reduce the session duration policy on the role to minimize exposure window for future sessions\n6. Monitor CloudTrail logs for any unauthorized activity during the credential validity period\n7. For immediate revocation, you can revoke active sessions by attaching an inline policy to the role with\n a condition that denies access for sessions created before the current time\n8. Update the trust policy or role permissions if the compromise indicates a broader security issue\n\n- **For All Access Key Types**:\n\nAfter remediation:\n\n1. Review AWS CloudTrail logs to identify any unauthorized activity that occurred using the compromised\n credentials at <https://console.aws.amazon.com/cloudtrail>\n2. Check for any unauthorized resource creation, modification, or data access\n3. Implement AWS CloudWatch alarms to detect unusual API activity patterns\n4. Consider enabling Amazon GuardDuty for continuous threat detection\n5. Review and update IAM policies to follow the principle of least privilege\n\nFor information on how to manage and revoke access keys for AWS, please see their\n[official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)\nand\n[STS temporary credentials documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)."
|
|
90
90
|
tags = ['aws', 'revocation_type', 'gitlab_blocking']
|
|
91
|
-
keywords = ['AKIA']
|
|
91
|
+
keywords = ['AKIA', 'ASIA', 'A3T']
|
|
92
92
|
|
|
93
93
|
[[rules]]
|
|
94
|
-
id = '
|
|
95
|
-
regex = '\
|
|
96
|
-
description = "An AWS
|
|
97
|
-
title = '
|
|
98
|
-
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab
|
|
94
|
+
id = 'AWSBedrockKey'
|
|
95
|
+
regex = '\bABSK[A-Za-z0-9+/]{70,150}={0,2}'
|
|
96
|
+
description = "An AWS Bedrock Key was detected. AWS Bedrock Keys are usually paired along with their secret key values. A malicious\nactor with access to this token can access AWS services with the same permissions as the user which generated the key,\nprovided they have access to both values."
|
|
97
|
+
title = 'AWS Bedrock Key'
|
|
98
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo delete an AWS Bedrock key:\n\n1. Sign in to the AWS Management Console and open the [Amazon Bedrock console](https://console.aws.amazon.com/bedrock/).\n1. In the left navigation pane, select **API keys.**\n1. In the **API keys for Amazon Bedrock** section, choose a key.\n1. Choose **Actions**.\n1. Select **Delete**.\n\nFor information on how to manage and revoke bedrock keys for AWS please see their [documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys-revoke.html)."
|
|
99
99
|
tags = ['gitlab_blocking']
|
|
100
|
-
keywords = ['
|
|
100
|
+
keywords = ['ABSK']
|
|
101
|
+
|
|
102
|
+
[[rules]]
|
|
103
|
+
id = 'AWSBedrockShortLivedKey'
|
|
104
|
+
regex = '\bbedrock-api-key-[A-Za-z0-9+/]{100,}={0,2}\b'
|
|
105
|
+
description = "An AWS Bedrock Short Lived Key was detected. These are temporary credentials generated to access Amazon\nBedrock, AWS's managed service for foundation models and generative AI applications. Short-lived keys are\ntypically issued through AWS Security Token Service (STS) and include an access key ID, secret access key,\nand session token. A malicious actor with access to these credentials could invoke Bedrock models, access\ncustom models, or retrieve sensitive data within the permissions scope until the credentials expire."
|
|
106
|
+
title = 'AWS Bedrock Short Lived Key'
|
|
107
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab\ndocumentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nShort-lived credentials cannot be manually revoked but will expire automatically based on their session\nduration. To mitigate exposure:\n\n1. Log in to the AWS Management Console at <https://console.aws.amazon.com>\n2. Navigate to AWS CloudTrail at <https://console.aws.amazon.com/cloudtrail> to identify the IAM entity\n (user or role) that generated the temporary credentials\n3. Review the CloudTrail event history for AssumeRole or GetSessionToken API calls that match the timeframe\n of credential creation\n4. Navigate to the IAM service at <https://console.aws.amazon.com/iam> and locate the source IAM role or\n user that generated the credentials\n5. For immediate mitigation, attach an inline deny policy to the IAM role or user to revoke active sessions\n by adding a condition that denies access for sessions created before the current time using the\n `aws:TokenIssueTime` condition key\n6. Review and reduce the maximum session duration on the IAM role to minimize future exposure windows by\n editing the role's \"Maximum session duration\" setting (minimum 1 hour, maximum 12 hours)\n7. Navigate to Amazon Bedrock at <https://console.aws.amazon.com/bedrock> and review recent API activity\n in the Bedrock service logs to identify any unauthorized model invocations or data access\n8. Monitor AWS CloudTrail logs continuously during the credential validity period for suspicious Bedrock\n API calls such as InvokeModel, InvokeModelWithResponseStream, or GetFoundationModelAvailability\n9. If unauthorized access is confirmed, review and update IAM policies following the principle of least\n privilege to restrict Bedrock permissions to only required models and actions\n10. Consider implementing AWS CloudWatch alarms to detect unusual Bedrock API usage patterns\n11. Enable Amazon GuardDuty if not already active for continuous threat detection across AWS services\n12. Update applications or systems that were using the compromised credentials once new credentials are\n generated through proper authentication flows\n\nFor detailed information on managing temporary credentials and Amazon Bedrock security, please see the\n[AWS STS documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)\nand\n[Amazon Bedrock security documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/security.html)."
|
|
108
|
+
tags = ['gitlab_blocking']
|
|
109
|
+
keywords = ['bedrock-api-key-']
|
|
110
|
+
|
|
111
|
+
[[rules]]
|
|
112
|
+
id = 'AWSSessionToken'
|
|
113
|
+
regex = '\b(?:FwoGZXIvYXdzE|IQoJb3JpZ2luX2VjE|FQoDYXdzE)[A-Za-z0-9+/]{180,1000}={0,2}'
|
|
114
|
+
description = "An AWS Session Token is a temporary security credential that is part of AWS Security Token Service (STS)\ntemporary credentials. These tokens are used alongside temporary access key IDs and secret access keys to\nauthenticate requests to AWS services. While session tokens expire automatically, a malicious actor with\naccess to valid temporary credentials can access AWS resources with the same permissions as the assumed role\nor federated user until the token expires, potentially lasting from minutes to several hours."
|
|
115
|
+
title = 'AWS Session Token'
|
|
116
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab\ndocumentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo revoke your AWS Session Token:\n\n1. Log in to the AWS Management Console at <https://console.aws.amazon.com/>\n2. Navigate to the IAM service dashboard\n3. Identify the source of the temporary credentials:\n - For assumed roles: Go to \"Roles\" and locate the role that was assumed\n - For federated users: Check the identity provider configuration\n - For temporary credentials from GetSessionToken: Review the IAM user that generated them\n4. Revoke active sessions:\n - For roles: Select the role, go to \"Revoke sessions\" tab, and click \"Revoke active sessions\"\n - For IAM users: Go to \"Users\", select the user, \"Security credentials\" tab, and revoke sessions\n5. Update or remove any applications or scripts that were using the compromised temporary credentials\n6. Verify the session is no longer active by checking AWS CloudTrail logs for any API calls made with the\n compromised credentials after revocation\n7. Review and update the permissions or trust policies of the role or user to prevent future unauthorized\n access\n\nFor detailed information on managing temporary security credentials and revoking sessions, please see the\n[AWS IAM documentation on temporary credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)\nand [revoking IAM role sessions](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html)."
|
|
117
|
+
tags = ['gitlab_blocking']
|
|
118
|
+
keywords = ['FwoGZXIvYXdzE', 'IQoJb3JpZ2luX2VjE', 'FQoDYXdzE']
|
|
101
119
|
|
|
102
120
|
[[rules]]
|
|
103
121
|
id = 'AzureEntraClientSecret'
|
|
@@ -225,6 +243,15 @@ remediation = "For general guidance on handling security incidents with regards
|
|
|
225
243
|
tags = ['gitlab_blocking']
|
|
226
244
|
keywords = ['sl.']
|
|
227
245
|
|
|
246
|
+
[[rules]]
|
|
247
|
+
id = 'DropboxAppAccessToken'
|
|
248
|
+
regex = '\bsl\.B_[a-zA-Z0-9_-]{138}\b'
|
|
249
|
+
description = "A Dropbox application access token was detected. These tokens are primarily used for testing before switching to a\nproper OAuth authorization flow. Application access tokens allow programmatic access to the Dropbox API. The application\ncan be restricted to an App folder or the full Dropbox account. Additionally, individual scopes can be set under the\npermissions tab, further restricting access. A malicious actor with access to this token can execute functionality only\nto which the permissions were configured. This can lead to sensitive files being accessed or modified."
|
|
250
|
+
title = 'Dropbox application access token'
|
|
251
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo regenerate a new application access token:\n\n- Open <https://www.dropbox.com/developers/apps/> and sign in to your Dropbox account\n- Find the application which the token was detected in\n- Under the settings tab, scroll down to the \"Generated access token\" section\n- Select \"Generate\" to generate a new access token.\n\nFor more information, please see their documentation: <https://developers.dropbox.com/oauth-guide#implementing-oauth>"
|
|
252
|
+
tags = ['gitlab_blocking']
|
|
253
|
+
keywords = ['sl.']
|
|
254
|
+
|
|
228
255
|
[[rules]]
|
|
229
256
|
id = 'DynatracePlatformToken'
|
|
230
257
|
regex = '\bdt0s[0-9]{2}\.[A-Z0-9]{8}\.[A-Z0-9]{64}\b'
|
|
@@ -243,6 +270,33 @@ remediation = "For general guidance on handling security incidents with regards
|
|
|
243
270
|
tags = ['gitlab_blocking']
|
|
244
271
|
keywords = ['figd_']
|
|
245
272
|
|
|
273
|
+
[[rules]]
|
|
274
|
+
id = 'FlutterwaveProdPublicKey'
|
|
275
|
+
regex = '\bFLWPUBK-[0-9A-Ha-h]{32}-X\b'
|
|
276
|
+
description = "A Flutterwave public key was identified. This key is used in \"public\" scenarios, such as in front-end JavaScript code\n(for example Flutterwave Inline). A malicious actor with access to this key cannot do anything with it."
|
|
277
|
+
title = 'Flutterwave production public key'
|
|
278
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo rotate your key:\n\n- Sign in and go to <https://app.flutterwave.com/dashboard/home>\n- Select \"Settings\" on the left-hand menu\n- Select \"API Keys\" under \"Developers\" on the left-hand menu\n- Ensure \"Test mode\" is NOT activated\n- Select \"Generate secret key\" to rotate the public, secret, and encryption key\n\nFor more information, please see the [Flutterwave documentation on authentication](https://developer.flutterwave.com/docs/authentication)."
|
|
279
|
+
tags = ['gitlab_blocking']
|
|
280
|
+
keywords = ['FLWPUBK-']
|
|
281
|
+
|
|
282
|
+
[[rules]]
|
|
283
|
+
id = 'FlutterwaveProdSecretKey'
|
|
284
|
+
regex = '\bFLWSECK-[0-9A-Ha-h]{32}-X\b'
|
|
285
|
+
description = "A Flutterwave secret key was identified. Secret keys have the highest level of privileges and can authorize any action\non your account. A malicious actor with access to this key can gain access to transaction and user information."
|
|
286
|
+
title = 'Flutterwave production secret key'
|
|
287
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo rotate your key:\n\n- Sign in and go to <https://app.flutterwave.com/dashboard/home>\n- Select \"Settings\" on the left-hand menu\n- Select \"API Keys\" under \"Developers\" on the left-hand menu\n- Ensure \"Test mode\" is NOT activated\n- Select \"Generate secret key\" to rotate the public, secret, and encryption key\n\nFor more information, please see the [Flutterwave documentation on authentication](https://developer.flutterwave.com/docs/authentication)."
|
|
288
|
+
tags = ['gitlab_blocking']
|
|
289
|
+
keywords = ['FLWSECK-']
|
|
290
|
+
|
|
291
|
+
[[rules]]
|
|
292
|
+
id = 'FlutterwaveProdEncryptedKey'
|
|
293
|
+
regex = '\bFLWSECK[a-h0-9]{12}\b'
|
|
294
|
+
description = "A Flutterwave encryption key was identified. This key is only used with the [direct charge endpoint](https://developer.flutterwave.com/docs/direct-card-charge).\nThis key is used to encrypt payloads of card details prior to sending. More information can be found in\n[Flutterwave's encryption guide](https://developer.flutterwave.com/docs/encryption). A malicious\nactor with access to this key can potentially decrypt transactions which can include credit card information."
|
|
295
|
+
title = 'Flutterwave production encrypted key'
|
|
296
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo rotate your key:\n\n- Sign in and go to <https://app.flutterwave.com/dashboard/home>\n- Select \"Settings\" on the left-hand menu\n- Select \"API Keys\" under \"Developers\" on the left-hand menu\n- Ensure \"Test mode\" is NOT activated\n- Select \"Generate secret key\" to rotate the public, secret, and encryption key\n\nFor more information, please see the [Flutterwave documentation on authentication](https://developer.flutterwave.com/docs/authentication)."
|
|
297
|
+
tags = ['gitlab_blocking']
|
|
298
|
+
keywords = ['FLWSECK']
|
|
299
|
+
|
|
246
300
|
[[rules]]
|
|
247
301
|
id = 'GCP OAuth client secret'
|
|
248
302
|
regex = 'GOCSPX-[a-zA-Z0-9_-]{28}'
|
|
@@ -424,13 +478,22 @@ tags = ['gitlab', 'gitlab_blocking', 'client_side_sd']
|
|
|
424
478
|
keywords = ['glimt']
|
|
425
479
|
|
|
426
480
|
[[rules]]
|
|
427
|
-
id = '
|
|
428
|
-
regex =
|
|
429
|
-
description =
|
|
430
|
-
title = 'Grafana
|
|
431
|
-
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet)."
|
|
481
|
+
id = 'GrafanaCloudAccessPolicyToken'
|
|
482
|
+
regex = '\bglc_eyJvIjoi[0-9A-Za-z]{120,140}\b'
|
|
483
|
+
description = "A Grafana cloud access policy token was identified. Cloud access policy tokens are used for managing the stacks in\nGrafana. Any tokens defined in the Grafana Administration settings are limited to that Grafana's stack. Depending on the\nassigned scope, a malicious actor with access to this token can read or write metrics, logs, traces, alerts, rules, and\naccess policies."
|
|
484
|
+
title = 'Grafana cloud access policy token'
|
|
485
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo revoke an access policy token:\n\n- Sign in to your Grafana instance and select \"Administration\" on the left-hand menu\n- Under \"User and access\" select \"Cloud access policies\"\n- Find the token that was identified and select the trash icon.\n\nFor more information, please see [Grafana's documentation on cloud access policies](https://grafana.com/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/)."
|
|
432
486
|
tags = ['gitlab_blocking']
|
|
433
|
-
keywords = ['
|
|
487
|
+
keywords = ['glc_eyJvIjoi']
|
|
488
|
+
|
|
489
|
+
[[rules]]
|
|
490
|
+
id = 'GrafanaServiceAccountToken'
|
|
491
|
+
regex = '\bglsa_[a-zA-Z0-9]{32}_[0-9a-f]{8}\b'
|
|
492
|
+
description = "A Grafana service account token was identified. A service account token is a generated random string that acts as an\nalternative to a password when authenticating with Grafana's HTTP API. When you create a service account, you can\nassociate one or more access tokens with it. You can use service access tokens the same way as API keys, for example to\naccess Grafana HTTP API programmatically. A malicious actor with access to this token can call the API with the\npermissions of the service account."
|
|
493
|
+
title = 'Grafana service account token'
|
|
494
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo revoke a service account token:\n\n- Sign in to your Grafana instance and select \"Administration\" on the left-hand menu\n- Under \"User and access\" select \"Service accounts\"\n- Find the service account that uses the identified service account token\n- Select the service account name in the \"Account\" column of the service accounts table\n- Under the \"Tokens\" section of the service account, select the \"X\" to reveal the \"Delete\" option\n- Select \"Delete\"\n\nFor more information, please see [Grafana's documentation on service accounts](https://grafana.com/docs/grafana-cloud/account-management/authentication-and-permissions/service-accounts/)."
|
|
495
|
+
tags = ['gitlab_blocking']
|
|
496
|
+
keywords = ['glsa_']
|
|
434
497
|
|
|
435
498
|
[[rules]]
|
|
436
499
|
id = 'Hashicorp Terraform user/org API token'
|
|
@@ -459,6 +522,15 @@ remediation = "For general guidance on handling security incidents with regards
|
|
|
459
522
|
tags = ['gitlab_blocking']
|
|
460
523
|
keywords = ['hvs.']
|
|
461
524
|
|
|
525
|
+
[[rules]]
|
|
526
|
+
id = 'Heroku API Key'
|
|
527
|
+
regex = '\bHRKU-[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\b'
|
|
528
|
+
description = "A Heroku API key or application authorization token was identified. API keys and authorization tokens can be used to\nperform API calls on behalf of a user or account. A malicious actor with access to these tokens can access the Heroku\nAPI platform and all deployed applications."
|
|
529
|
+
title = 'Heroku API key or application authorization token'
|
|
530
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo regenerate an API key for the identified user:\n\n- Sign in to your account and visit <https://dashboard.heroku.com/account>\n- Under the \"API Key\" section, select \"Regenerate API Key\"\n- When prompted, select \"Regenerate API Key\" in the \"Regenerate API Key\" dialog\n\nTo regenerate an application authorization token:\n\n- Sign in to your account and visit <https://dashboard.heroku.com/account/applications>\n- Under the \"Authorizations\" section, find the registered authorization that contains the identified token\n- Select the pencil icon\n- Select \"Regenerate token\"\n\nFor more information on API keys, see [their FAQ on generating API keys](https://help.heroku.com/PBGP6IDE/how-should-i-generate-an-api-key-that-allows-me-to-use-the-heroku-platform-api).\n\nHeroku does not have any documentation on application authorization tokens."
|
|
531
|
+
tags = ['gitlab_blocking']
|
|
532
|
+
keywords = ['HRKU-']
|
|
533
|
+
|
|
462
534
|
[[rules]]
|
|
463
535
|
id = 'HighnoteTestSecretKey'
|
|
464
536
|
regex = '\bsk_test_[0-9A-Za-z_]{63,98}\b'
|
|
@@ -495,6 +567,15 @@ remediation = "For general guidance on handling security incidents with regards
|
|
|
495
567
|
tags = ['gitlab_blocking']
|
|
496
568
|
keywords = ['hf_']
|
|
497
569
|
|
|
570
|
+
[[rules]]
|
|
571
|
+
id = 'IntercomAppAccessToken'
|
|
572
|
+
regex = '\bdG9rO[0-9A-Za-z]{54}\b'
|
|
573
|
+
description = "An Intercom application access token was identified. Application access tokens can be used to access the workspace's\ndata through the API. A malicious actor with access to this token can read or write conversations, read admin activity\nlogs, or read or write articles."
|
|
574
|
+
title = 'Intercom application access token'
|
|
575
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nIt is not possible to rotate an access token. You must delete your application and recreate it.\n\nFor more information, please see [Intercom's documentation on access tokens](https://developers.intercom.com/docs/build-an-integration/learn-more/authentication#access-tokens)."
|
|
576
|
+
tags = ['gitlab_blocking']
|
|
577
|
+
keywords = ['dG9rO']
|
|
578
|
+
|
|
498
579
|
[[rules]]
|
|
499
580
|
id = 'ArtifactoryApiKey'
|
|
500
581
|
regex = '\bAKCp[0-9A-Za-z/+]{69}\b'
|
|
@@ -621,6 +702,33 @@ remediation = "For general guidance on handling security incidents with regards
|
|
|
621
702
|
tags = ['gitlab_blocking']
|
|
622
703
|
keywords = ['api_live']
|
|
623
704
|
|
|
705
|
+
[[rules]]
|
|
706
|
+
id = 'OpenAiProjectKey'
|
|
707
|
+
regex = '\bsk-proj-[a-zA-Z0-9_-]{156}'
|
|
708
|
+
description = "An OpenAI project API key was identified. A project key can be used for programmatic access to OpenAI's API. A malicious\nactor with access to this key can execute functionality on behalf of the user who created the key."
|
|
709
|
+
title = 'OpenAI project key'
|
|
710
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo revoke Open AI project API key:\n\n- Sign in to your OpenAI account and visit <https://platform.openai.com/settings/>\n- On the left-hand side menu, select \"API Keys\" under \"Project\"\n- Find the key that was identified, and select the red trash icon on the right-hand side.\n- When prompted, select \"Revoke key\" in the \"Revoke secret key\" dialog\n\nFor more information, please see [OpenAI's documentation on project API keys](https://platform.openai.com/docs/api-reference/project-api-keys)."
|
|
711
|
+
tags = ['gitlab_blocking']
|
|
712
|
+
keywords = ['sk-proj-']
|
|
713
|
+
|
|
714
|
+
[[rules]]
|
|
715
|
+
id = 'OpenAiServiceAccountKey'
|
|
716
|
+
regex = '\bsk-svcacct-[a-zA-Z0-9_-]{120,190}'
|
|
717
|
+
description = "An OpenAI service account key was identified. A service account key can be used for programmatic access to OpenAI's API.\nA malicious actor with access to this key can execute functionality on behalf of the user who created the key."
|
|
718
|
+
title = 'OpenAI service account key'
|
|
719
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\n- Sign in to your OpenAI account and visit <https://platform.openai.com/settings/>\n- On the left-hand side menu, select \"API Keys\" under \"Organization\"\n- Find the key that was identified, and select the red trash icon on the right-hand side.\n- When prompted, select \"Revoke key\" in the \"Revoke secret key\" dialog\n\nFor more information, please see [OpenAI's documentation on project service accounts](https://platform.openai.com/docs/api-reference/project-service-accounts)."
|
|
720
|
+
tags = ['gitlab_blocking']
|
|
721
|
+
keywords = ['sk-svcacct-']
|
|
722
|
+
|
|
723
|
+
[[rules]]
|
|
724
|
+
id = 'OpenAiServiceAdminKey'
|
|
725
|
+
regex = '\bsk-admin-[a-zA-Z0-9_-]{124}'
|
|
726
|
+
description = "An OpenAI admin key was identified. Admin keys are for programmatic administration of your account. Admin keys grant\naccess to endpoints detailed in the [API Reference for Organizations](https://platform.openai.com/docs/api-reference/administration).\nA malicious actor with access to this key can take over the administration of the organization."
|
|
727
|
+
title = 'OpenAI admin key'
|
|
728
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo revoke an OpenAI admin key:\n\n- Sign in to your OpenAI account and visit <https://platform.openai.com/settings/>\n- On the left-hand side menu, select \"Admin Keys\" under \"Organization\"\n- Find the key that was identified, and select the red trash icon in the right-hand side\n- When prompted, select \"Revoke key\" in the \"Revoke secret key\" dialog\n\nFor more information, please see [OpenAI's documentation on administration](https://platform.openai.com/docs/api-reference/administration)."
|
|
729
|
+
tags = ['gitlab_blocking']
|
|
730
|
+
keywords = ['sk-admin-']
|
|
731
|
+
|
|
624
732
|
[[rules]]
|
|
625
733
|
id = 'Planetscale password'
|
|
626
734
|
regex = '\bpscale_pw_[a-zA-Z0-9]{43}\b'
|
|
@@ -666,6 +774,24 @@ remediation = "For general guidance on handling security incidents with regards
|
|
|
666
774
|
tags = ['gitlab_blocking']
|
|
667
775
|
keywords = ['phx_']
|
|
668
776
|
|
|
777
|
+
[[rules]]
|
|
778
|
+
id = 'Postman API token'
|
|
779
|
+
regex = '\bPMAK-[a-f0-9]{24}-[a-f0-9]{34}\b'
|
|
780
|
+
description = "A Postman API token was identified. An API key provides access to any Postman data the account has permissions to.\nA malicious actor with access to this token can access all data stored in the Postman service that the user who created\nthe API key has access to."
|
|
781
|
+
title = 'Postman API token'
|
|
782
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo regenerate an API token:\n\n- Sign in to your Postman account at <https://www.postman.com/>\n- Select the profile picture in the top right-hand side, and select \"Settings\"\n- Select \"API keys\" in the left-hand menu\n- Find the key that was identified, and select the ellipsis next to the status column in the \"API keys\" section\n- Select \"Regenerate\"\n- When prompted, select \"Regenerate API Key\" in the \"Regenerate API key\" dialog\n\nFor more information, please see [Postman's documentation on API keys](https://learning.postman.com/docs/developer/postman-api/authentication/)."
|
|
783
|
+
tags = ['gitlab_blocking']
|
|
784
|
+
keywords = ['PMAK-']
|
|
785
|
+
|
|
786
|
+
[[rules]]
|
|
787
|
+
id = 'PostmanCollectionAccessKey'
|
|
788
|
+
regex = '\bPMAT-[A-Z0-9]{26}\b'
|
|
789
|
+
description = "A Postman collection access key was identified. Collection access keys allow read-only access to a single collection.\nA malicious actor with access to this token can read all data stored in the collection this key is associated with."
|
|
790
|
+
title = 'Postman collection access key'
|
|
791
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo delete a collection access key:\n\n- Sign in to your Postman account at <https://www.postman.com/>\n- Select the profile picture in the top right-hand side, and select \"Settings\"\n- Select \"API keys\" in the left-hand menu\n- Find the key that was identified in the \"Collection access keys\" section\n- Select \"Delete\"\n\nFor more information, please see [Postman's documentation on generating collection access keys](https://learning.postman.com/docs/developer/postman-api/authentication/#generate-a-collection-access-key)."
|
|
792
|
+
tags = ['gitlab_blocking']
|
|
793
|
+
keywords = ['PMAT-']
|
|
794
|
+
|
|
669
795
|
[[rules]]
|
|
670
796
|
id = 'PyPI upload token'
|
|
671
797
|
regex = 'pypi-AgEIcHlwaS5vcmc[A-Za-z0-9-_]{50,1000}'
|
|
@@ -765,6 +891,15 @@ remediation = "For general guidance on handling security incidents with regards
|
|
|
765
891
|
tags = ['gitlab_blocking']
|
|
766
892
|
keywords = ['shppa_']
|
|
767
893
|
|
|
894
|
+
[[rules]]
|
|
895
|
+
id = 'ShopifyPartnerAPIToken'
|
|
896
|
+
regex = '\bprtapi_[a-f0-9]{32}\b'
|
|
897
|
+
description = "A Shopify partner API token was identified. Partner API tokens can be restricted to only allowing access to the\nfollowing:\n\n- View financials: This permission is required to access Transaction resources. These resources represent all of the\n transactions that impact your Partner earnings.\n- Manage apps: This permission is required to access App resources, including all app-related events such as installs,\n uninstalls, and charges. This resource represents all of the public and private apps managed by your organization.\n- Manage themes: This permission is required to access the Theme resource. This resource represents all of the Shopify\n themes managed by your organization.\n- Manage jobs: This permission is required to access Conversation and Job resources. These resources represent Experts\n Marketplace conversations and jobs owned by your organization.\n\nA malicious actor with access to this token can access one or more of these functions."
|
|
898
|
+
title = 'Shopify Partner API token'
|
|
899
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo rotate your Shopify partner API token:\n\n- Sign in to your Shopify partner account and access <https://partners.shopify.com/>\n- In the left-hand menu, select \"Settings\"\n- Scroll down to \"Partner API clients\" and select \"Manage Partner API clients\"\n- Select the client that uses the identified token\n- Select \"Generate secondary token\"\n- Select the trash icon next to the identified token\n- When prompted, select \"Delete token\" in the \"Delete access token?\" dialog\n\nPlease see [Shopify's documentation for more details](https://shopify.dev/docs/api/partner#authentication)."
|
|
900
|
+
tags = ['gitlab_blocking']
|
|
901
|
+
keywords = ['prtapi_']
|
|
902
|
+
|
|
768
903
|
[[rules]]
|
|
769
904
|
id = 'Slack token'
|
|
770
905
|
regex = 'xox[baprs]-([0-9a-zA-Z]{10,48})'
|
|
@@ -783,6 +918,24 @@ remediation = "For general guidance on handling security incidents with regards
|
|
|
783
918
|
tags = ['gitlab_blocking']
|
|
784
919
|
keywords = ['xapp-1-']
|
|
785
920
|
|
|
921
|
+
[[rules]]
|
|
922
|
+
id = 'SlackAppConfigurationToken'
|
|
923
|
+
regex = '\bxoxe\.xoxp-1-[A-Za-z0-9]{166}\b'
|
|
924
|
+
description = "A Slack app configuration token was identified. Configuration tokens are per-workspace tokens used with App Manifest\nAPIs to create and configure your apps. A malicious actor with access to this token can take over configuration of all\napplications of the user who created it, however these tokens are rotated every 12 hours and give a malicious actor a\nlimited opportunity to use it."
|
|
925
|
+
title = 'Slack app configuration token'
|
|
926
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo revoke a Slack app configuration token:\n\n- Sign in to Slack and access <https://api.slack.com/apps>\n- Find the token in the \"Access Token\" column in the \"Your App Configuration Tokens\" table and select the trash icon in\n the \"Delete\" column\n- When prompted, select \"Revoke Token\" in the \"Revoke this token?\" dialog\n\nFor more information, please see [Slack's documentation on managing configuration tokens](https://api.slack.com/reference/manifests#config-tokens)."
|
|
927
|
+
tags = ['gitlab_blocking']
|
|
928
|
+
keywords = ['xoxe.xoxp-1-']
|
|
929
|
+
|
|
930
|
+
[[rules]]
|
|
931
|
+
id = 'SlackAppConfigurationRefreshToken'
|
|
932
|
+
regex = '\bxoxe-1-[A-Za-z0-9]{147}\b'
|
|
933
|
+
description = "A Slack app configuration refresh token was identified. Configuration tokens are per-workspace tokens used with App\nManifest APIs to create and configure your apps. A malicious actor with access to this token can take over configuration\nof all applications of the user who created it. Refresh tokens are more dangerous than configuration tokens as they can\nbe used to create new configuration tokens, allowing a malicious actor perpetual access to all applications."
|
|
934
|
+
title = 'Slack app configuration refresh token'
|
|
935
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo revoke a Slack app configuration refresh token:\n\n- Sign in to Slack and access <https://api.slack.com/apps>\n- Find the token in the \"Refresh Token\" column in the \"Your App Configuration Tokens\" table and select the trash icon\n in the \"Delete\" column\n- When prompted, select \"Revoke Token\" from the \"Revoke this token?\" dialog\n\nFor more information, please see [Slack's documentation on managing configuration tokens](https://api.slack.com/reference/manifests#config-tokens)."
|
|
936
|
+
tags = ['gitlab_blocking']
|
|
937
|
+
keywords = ['xoxe-1-']
|
|
938
|
+
|
|
786
939
|
[[rules]]
|
|
787
940
|
id = 'SonarQubeUserToken'
|
|
788
941
|
regex = '\bsqu_[0-9a-f]{40}\b'
|
|
@@ -846,6 +999,33 @@ remediation = "For general guidance on handling security incidents with regards
|
|
|
846
999
|
tags = ['gitlab_blocking']
|
|
847
1000
|
keywords = ['sk_live_']
|
|
848
1001
|
|
|
1002
|
+
[[rules]]
|
|
1003
|
+
id = 'TailscalePersonalAuthKey'
|
|
1004
|
+
regex = '\btskey-auth-[A-Za-z0-9]{12}CNTRL-[A-Za-z0-9]{32,33}\b'
|
|
1005
|
+
description = "A Tailscale personal authentication key was identified. Pre-authentication keys (called auth keys) let you register new\nnodes without needing to sign in using a web browser. An auth key authenticates a device as the user who generated the\nkey. A malicious actor with access to this key can register nodes under the account that owns it."
|
|
1006
|
+
title = 'Tailscale personal authentication key'
|
|
1007
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo revoke a Tailscale auth key:\n\n- Sign in to your Tailscale account and go to <https://login.tailscale.com/admin/settings/general>\n- On the \"Settings\" page in the left-hand menu select \"Keys\" under \"Personal Settings\"\n- Find the key that was identified in the \"Auth keys\" section and select the \"Revoke...\" text next to the \"Type\" column\n- When prompted, select \"Revoke key\" in the \"Revoke\" dialog\n\nFor more information, please see [Tailscale's documentation on personal auth keys](https://tailscale.com/kb/1085/auth-keys)."
|
|
1008
|
+
tags = ['gitlab_blocking']
|
|
1009
|
+
keywords = ['tskey-auth-']
|
|
1010
|
+
|
|
1011
|
+
[[rules]]
|
|
1012
|
+
id = 'TailscaleApiAccessToken'
|
|
1013
|
+
regex = '\btskey-api-[A-Za-z0-9]{12}CNTRL-[A-Za-z0-9]{32,33}\b'
|
|
1014
|
+
description = "A Tailscale API access token was identified. API access tokens give full access to the Tailscaled API. A malicious actor\nwith access to this token can gain full access to the Tailscale networks."
|
|
1015
|
+
title = 'Tailscale API access token'
|
|
1016
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo revoke a Tailscale API access token:\n\n- Sign in to your Tailscale account and go to <https://login.tailscale.com/admin/settings/general>\n- On the \"Settings\" page in the left-hand menu select \"Keys\" under \"Personal Settings\"\n- Find the key that was identified in the \"API access tokens\" section and select the \"Revoke...\" text next to the \"Type\"\n column\n- When prompted, select \"Revoke key\" in the \"Revoke\" dialog\n\nFor more information, please see [Tailscale's documentation on their API](https://tailscale.com/kb/1101/api)"
|
|
1017
|
+
tags = ['gitlab_blocking']
|
|
1018
|
+
keywords = ['tskey-api-']
|
|
1019
|
+
|
|
1020
|
+
[[rules]]
|
|
1021
|
+
id = 'TailscaleOauthClientSecret'
|
|
1022
|
+
regex = '\btskey-client-[a-zA-Z0-9]{17}-[a-zA-Z0-9]{30,36}\b'
|
|
1023
|
+
description = "A Tailscale OAuth client secret was identified. OAuth clients provide a framework for\ndelegated and scoped access to the Tailscale API. An OAuth client creates access tokens for scoped API\naccess. More details on [scopes can be found in Tailscale's documentation](https://tailscale.com/kb/1215/oauth-clients?q=OAuth#scopes).\nA malicious actor with access to this secret can access the API with the privileges the client was given."
|
|
1024
|
+
title = 'Tailscale OAuth client secret'
|
|
1025
|
+
remediation = "For general guidance on handling security incidents with regards to leaked keys, please see the GitLab documentation on\n[Credential exposure to the internet](https://docs.gitlab.com/ee/security/responding_to_security_incidents.html#credential-exposure-to-public-internet).\n\nTo revoke a Tailscale OAuth client secret:\n\n- Sign in to your Tailscale account and go to <https://login.tailscale.com/admin/settings/general>\n- On the \"Settings\" page in the left-hand menu select \"OAuth clients\"\n- Find the key that was identified and select the \"Revoke...\" text next to the \"Scopes\" column\n- When prompted, select \"Revoke OAuth client\" in the \"Revoke\" dialog\n\nFor more information, please see [Tailscale's documentation on OAuth clients](https://tailscale.com/kb/1215/oauth-clients)."
|
|
1026
|
+
tags = ['gitlab_blocking']
|
|
1027
|
+
keywords = ['tskey-client-']
|
|
1028
|
+
|
|
849
1029
|
[[rules]]
|
|
850
1030
|
id = 'TencentCloudSecretID'
|
|
851
1031
|
regex = '\bAKID[0-9A-Za-z]{32}\b'
|
|
@@ -5,7 +5,7 @@ module Gitlab
|
|
|
5
5
|
class Gem
|
|
6
6
|
# Ensure to maintain the same version in CHANGELOG file.
|
|
7
7
|
# More details available under 'Release Process' section in the README.md file.
|
|
8
|
-
VERSION = "0.
|
|
8
|
+
VERSION = "0.38.0"
|
|
9
9
|
|
|
10
10
|
# SD_ENV env var is used to determine which environment the
|
|
11
11
|
# server is running. This var is defined in `.runway/env-<env>.yml` files.
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gitlab-secret_detection
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.38.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- group::secret detection
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2025-
|
|
13
|
+
date: 2025-11-03 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: grpc
|