safemode 2.0.9 → 2.0.10
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.
|
@@ -5696,9 +5696,23 @@ var SecretsScanner = class {
|
|
|
5696
5696
|
const severityOrder = { low: 0, medium: 1, high: 2, critical: 3 };
|
|
5697
5697
|
for (const { name, pattern, severity } of SECRET_PATTERNS) {
|
|
5698
5698
|
pattern.lastIndex = 0;
|
|
5699
|
-
|
|
5700
|
-
|
|
5701
|
-
|
|
5699
|
+
let matchCount = 0;
|
|
5700
|
+
let match;
|
|
5701
|
+
while ((match = pattern.exec(content)) !== null) {
|
|
5702
|
+
const matched = match[0];
|
|
5703
|
+
if (name === "aws_secret_key" && !/[/+]/.test(matched)) {
|
|
5704
|
+
continue;
|
|
5705
|
+
}
|
|
5706
|
+
const ctxStart = Math.max(0, match.index - 80);
|
|
5707
|
+
const ctxEnd = Math.min(content.length, match.index + matched.length + 80);
|
|
5708
|
+
const nearby = content.slice(ctxStart, ctxEnd).toLowerCase();
|
|
5709
|
+
if (/\b(?:patterns?|detects?|scanning|scans?|coverage|engine)\b/.test(nearby)) {
|
|
5710
|
+
continue;
|
|
5711
|
+
}
|
|
5712
|
+
matchCount++;
|
|
5713
|
+
}
|
|
5714
|
+
if (matchCount > 0) {
|
|
5715
|
+
findings.push({ type: name, severity, count: matchCount });
|
|
5702
5716
|
if (severityOrder[severity] > severityOrder[maxSeverity]) {
|
|
5703
5717
|
maxSeverity = severity;
|
|
5704
5718
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"10-secrets-scanner.d.ts","sourceRoot":"","sources":["../../../src/engines/10-secrets-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AA8F9E,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,EAAE,MAAM;IACjB,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,WAAW,8CAA8C;IAE5D,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"10-secrets-scanner.d.ts","sourceRoot":"","sources":["../../../src/engines/10-secrets-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AA8F9E,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,EAAE,MAAM;IACjB,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,WAAW,8CAA8C;IAE5D,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CAgF9D"}
|
|
@@ -82,9 +82,25 @@ export class SecretsScanner {
|
|
|
82
82
|
for (const { name, pattern, severity } of SECRET_PATTERNS) {
|
|
83
83
|
// Reset regex state
|
|
84
84
|
pattern.lastIndex = 0;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
let matchCount = 0;
|
|
86
|
+
let match;
|
|
87
|
+
while ((match = pattern.exec(content)) !== null) {
|
|
88
|
+
const matched = match[0];
|
|
89
|
+
// AWS secret key: must contain / or + (real keys always do, identifiers don't)
|
|
90
|
+
if (name === 'aws_secret_key' && !/[/+]/.test(matched)) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
// Skip documentation context: nearby text about patterns/detection is not a secret
|
|
94
|
+
const ctxStart = Math.max(0, match.index - 80);
|
|
95
|
+
const ctxEnd = Math.min(content.length, match.index + matched.length + 80);
|
|
96
|
+
const nearby = content.slice(ctxStart, ctxEnd).toLowerCase();
|
|
97
|
+
if (/\b(?:patterns?|detects?|scanning|scans?|coverage|engine)\b/.test(nearby)) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
matchCount++;
|
|
101
|
+
}
|
|
102
|
+
if (matchCount > 0) {
|
|
103
|
+
findings.push({ type: name, severity, count: matchCount });
|
|
88
104
|
if (severityOrder[severity] > severityOrder[maxSeverity]) {
|
|
89
105
|
maxSeverity = severity;
|
|
90
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"10-secrets-scanner.js","sourceRoot":"","sources":["../../../src/engines/10-secrets-scanner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"10-secrets-scanner.js","sourceRoot":"","sources":["../../../src/engines/10-secrets-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH,MAAM,eAAe,GAAoB;IACvC,MAAM;IACN,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,UAAU,EAAE;IAClF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,UAAU,EAAE;IACpF,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,+EAA+E,EAAE,QAAQ,EAAE,UAAU,EAAE;IAEvI,SAAS;IACT,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,UAAU,EAAE;IACjF,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,UAAU,EAAE;IACnF,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,UAAU,EAAE;IACjF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,UAAU,EAAE;IACrF,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,iDAAiD,EAAE,QAAQ,EAAE,UAAU,EAAE;IAEjH,SAAS;IACT,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC9F,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,MAAM,EAAE;IAC1F,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,UAAU,EAAE;IAClG,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,6BAA6B,EAAE,QAAQ,EAAE,MAAM,EAAE;IAEpF,SAAS;IACT,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,MAAM,EAAE;IACnF,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,0DAA0D,EAAE,QAAQ,EAAE,MAAM,EAAE;IAC/G,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAEzF,QAAQ;IACR,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,iDAAiD,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC7G,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,iDAAiD,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC9G,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,mFAAmF,EAAE,QAAQ,EAAE,MAAM,EAAE;IAEzI,UAAU;IACV,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,+CAA+C,EAAE,QAAQ,EAAE,UAAU,EAAE;IACzG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,kEAAkE,EAAE,QAAQ,EAAE,MAAM,EAAE;IAE1H,MAAM;IACN,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,UAAU,EAAE;IAEhF,OAAO;IACP,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,UAAU,EAAE;IAEtF,SAAS;IACT,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,EAAE;IAC/E,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAE3E,WAAW;IACX,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,+CAA+C,EAAE,QAAQ,EAAE,UAAU,EAAE;IAE5G,YAAY;IACZ,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,MAAM,EAAE;IAE3F,SAAS;IACT,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,oEAAoE,EAAE,QAAQ,EAAE,MAAM,EAAE;IAE3H,eAAe;IACf,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,UAAU,EAAE;IAEzF,SAAS;IACT,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,UAAU,EAAE;IACpF,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAE/E,YAAY;IACZ,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,UAAU,EAAE;IAE9F,WAAW;IACX,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,6CAA6C,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAEpG,mBAAmB;IACnB,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,yDAAyD,EAAE,QAAQ,EAAE,UAAU,EAAE;IACjH,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,2DAA2D,EAAE,QAAQ,EAAE,MAAM,EAAE;IAC7G,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE,MAAM,EAAE;IACtF,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE,MAAM,EAAE;IAExF,8BAA8B;IAC9B,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,kDAAkD,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC3G,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,wCAAwC,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC9F,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,qDAAqD,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC7G,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,UAAU,EAAE;CACzF,CAAC;AAEF,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,MAAM,OAAO,cAAc;IAChB,EAAE,GAAG,EAAE,CAAC;IACR,IAAI,GAAG,iBAAiB,CAAC;IACzB,WAAW,GAAG,0CAA0C,CAAC;IAElE,KAAK,CAAC,QAAQ,CAAC,OAAsB;QACnC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAE/B,4CAA4C;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAA6D,EAAE,CAAC;QAC9E,IAAI,WAAW,GAA8B,KAAK,CAAC;QAEnD,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAElE,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,eAAe,EAAE,CAAC;YAC1D,oBAAoB;YACpB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;YAEtB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,KAA6B,CAAC;YAElC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEzB,+EAA+E;gBAC/E,IAAI,IAAI,KAAK,gBAAgB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvD,SAAS;gBACX,CAAC;gBAED,mFAAmF;gBACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC7D,IAAI,4DAA4D,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9E,SAAS;gBACX,CAAC;gBAED,UAAU,EAAE,CAAC;YACf,CAAC;YAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;gBAE3D,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;oBACzD,WAAW,GAAG,QAAQ,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEvE,+BAA+B;YAC/B,MAAM,WAAW,GAAG,WAAW,KAAK,UAAU,CAAC;YAE/C,OAAO;gBACL,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,WAAW,EAAE,IAAI,CAAC,IAAI;gBACtB,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;gBACvC,OAAO,EAAE;oBACP,MAAM,EAAE,qBAAqB,OAAO,EAAE;oBACtC,QAAQ;oBACR,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC7D,YAAY,EAAE,WAAW;iBAC1B;gBACD,UAAU,EAAE,CAAC;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;CACF"}
|