vibe-guard 1.1.4 → 1.2.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.
- package/README.md +163 -283
- package/dist/bin/vibe-guard.js +240 -22
- package/dist/bin/vibe-guard.js.map +1 -1
- package/dist/config.d.ts +0 -18
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -26
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -8
- package/dist/index.js.map +1 -1
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +41 -19
- package/dist/reporter.js.map +1 -1
- package/dist/rules/ai-agent-access-control.d.ts +27 -2
- package/dist/rules/ai-agent-access-control.d.ts.map +1 -1
- package/dist/rules/ai-agent-access-control.js +393 -19
- package/dist/rules/ai-agent-access-control.js.map +1 -1
- package/dist/rules/ai-data-leakage-prevention.d.ts +25 -2
- package/dist/rules/ai-data-leakage-prevention.d.ts.map +1 -1
- package/dist/rules/ai-data-leakage-prevention.js +409 -21
- package/dist/rules/ai-data-leakage-prevention.js.map +1 -1
- package/dist/rules/ai-generated-code-validation.d.ts +28 -7
- package/dist/rules/ai-generated-code-validation.d.ts.map +1 -1
- package/dist/rules/ai-generated-code-validation.js +367 -96
- package/dist/rules/ai-generated-code-validation.js.map +1 -1
- package/dist/rules/broken-access-control.d.ts +40 -5
- package/dist/rules/broken-access-control.d.ts.map +1 -1
- package/dist/rules/broken-access-control.js +595 -144
- package/dist/rules/broken-access-control.js.map +1 -1
- package/dist/rules/container-registry-security.d.ts +21 -0
- package/dist/rules/container-registry-security.d.ts.map +1 -0
- package/dist/rules/container-registry-security.js +271 -0
- package/dist/rules/container-registry-security.js.map +1 -0
- package/dist/rules/csrf-protection.d.ts +25 -4
- package/dist/rules/csrf-protection.d.ts.map +1 -1
- package/dist/rules/csrf-protection.js +328 -81
- package/dist/rules/csrf-protection.js.map +1 -1
- package/dist/rules/directory-traversal.d.ts +33 -5
- package/dist/rules/directory-traversal.d.ts.map +1 -1
- package/dist/rules/directory-traversal.js +470 -171
- package/dist/rules/directory-traversal.js.map +1 -1
- package/dist/rules/dockerfile-security.d.ts +20 -0
- package/dist/rules/dockerfile-security.d.ts.map +1 -0
- package/dist/rules/dockerfile-security.js +280 -0
- package/dist/rules/dockerfile-security.js.map +1 -0
- package/dist/rules/exposed-secrets.d.ts +25 -4
- package/dist/rules/exposed-secrets.d.ts.map +1 -1
- package/dist/rules/exposed-secrets.js +355 -95
- package/dist/rules/exposed-secrets.js.map +1 -1
- package/dist/rules/hardcoded-sensitive-data.d.ts +32 -2
- package/dist/rules/hardcoded-sensitive-data.d.ts.map +1 -1
- package/dist/rules/hardcoded-sensitive-data.js +426 -29
- package/dist/rules/hardcoded-sensitive-data.js.map +1 -1
- package/dist/rules/index.d.ts +9 -1
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +25 -1
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/insecure-configuration.d.ts +16 -5
- package/dist/rules/insecure-configuration.d.ts.map +1 -1
- package/dist/rules/insecure-configuration.js +457 -64
- package/dist/rules/insecure-configuration.js.map +1 -1
- package/dist/rules/insecure-dependencies.d.ts +46 -1
- package/dist/rules/insecure-dependencies.d.ts.map +1 -1
- package/dist/rules/insecure-dependencies.js +678 -51
- package/dist/rules/insecure-dependencies.js.map +1 -1
- package/dist/rules/insecure-deserialization.d.ts +29 -4
- package/dist/rules/insecure-deserialization.d.ts.map +1 -1
- package/dist/rules/insecure-deserialization.js +531 -101
- package/dist/rules/insecure-deserialization.js.map +1 -1
- package/dist/rules/insecure-error-handling.d.ts +35 -4
- package/dist/rules/insecure-error-handling.d.ts.map +1 -1
- package/dist/rules/insecure-error-handling.js +590 -87
- package/dist/rules/insecure-error-handling.js.map +1 -1
- package/dist/rules/insecure-file-upload.d.ts +37 -5
- package/dist/rules/insecure-file-upload.d.ts.map +1 -1
- package/dist/rules/insecure-file-upload.js +690 -138
- package/dist/rules/insecure-file-upload.js.map +1 -1
- package/dist/rules/insecure-http.d.ts +31 -2
- package/dist/rules/insecure-http.d.ts.map +1 -1
- package/dist/rules/insecure-http.js +547 -61
- package/dist/rules/insecure-http.js.map +1 -1
- package/dist/rules/insecure-logging.d.ts +6 -1
- package/dist/rules/insecure-logging.d.ts.map +1 -1
- package/dist/rules/insecure-logging.js +430 -109
- package/dist/rules/insecure-logging.js.map +1 -1
- package/dist/rules/insecure-random-generation.d.ts +4 -1
- package/dist/rules/insecure-random-generation.d.ts.map +1 -1
- package/dist/rules/insecure-random-generation.js +239 -99
- package/dist/rules/insecure-random-generation.js.map +1 -1
- package/dist/rules/insecure-session-management.d.ts +4 -0
- package/dist/rules/insecure-session-management.d.ts.map +1 -1
- package/dist/rules/insecure-session-management.js +359 -54
- package/dist/rules/insecure-session-management.js.map +1 -1
- package/dist/rules/kubernetes-security.d.ts +17 -0
- package/dist/rules/kubernetes-security.d.ts.map +1 -0
- package/dist/rules/kubernetes-security.js +314 -0
- package/dist/rules/kubernetes-security.js.map +1 -0
- package/dist/rules/mcp-server-security.d.ts +32 -3
- package/dist/rules/mcp-server-security.d.ts.map +1 -1
- package/dist/rules/mcp-server-security.js +511 -39
- package/dist/rules/mcp-server-security.js.map +1 -1
- package/dist/rules/missing-authentication.d.ts +4 -0
- package/dist/rules/missing-authentication.d.ts.map +1 -1
- package/dist/rules/missing-authentication.js +263 -62
- package/dist/rules/missing-authentication.js.map +1 -1
- package/dist/rules/missing-security-headers.d.ts +32 -3
- package/dist/rules/missing-security-headers.d.ts.map +1 -1
- package/dist/rules/missing-security-headers.js +548 -95
- package/dist/rules/missing-security-headers.js.map +1 -1
- package/dist/rules/open-cors.d.ts +3 -0
- package/dist/rules/open-cors.d.ts.map +1 -1
- package/dist/rules/open-cors.js +202 -57
- package/dist/rules/open-cors.js.map +1 -1
- package/dist/rules/prompt-injection-detection.d.ts +33 -3
- package/dist/rules/prompt-injection-detection.d.ts.map +1 -1
- package/dist/rules/prompt-injection-detection.js +571 -43
- package/dist/rules/prompt-injection-detection.js.map +1 -1
- package/dist/rules/sql-injection.d.ts +27 -3
- package/dist/rules/sql-injection.d.ts.map +1 -1
- package/dist/rules/sql-injection.js +471 -61
- package/dist/rules/sql-injection.js.map +1 -1
- package/dist/rules/unvalidated-input.d.ts +20 -4
- package/dist/rules/unvalidated-input.d.ts.map +1 -1
- package/dist/rules/unvalidated-input.js +557 -128
- package/dist/rules/unvalidated-input.js.map +1 -1
- package/dist/rules/xss-detection.d.ts +25 -4
- package/dist/rules/xss-detection.d.ts.map +1 -1
- package/dist/rules/xss-detection.js +702 -135
- package/dist/rules/xss-detection.js.map +1 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +11 -6
- package/dist/scanner.js.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.js +1 -1
- package/package.json +8 -3
- package/CHANGELOG.md +0 -102
|
@@ -1,14 +1,49 @@
|
|
|
1
1
|
import { BaseRule, FileContent, SecurityIssue } from '../types';
|
|
2
2
|
export declare class BrokenAccessControlRule extends BaseRule {
|
|
3
3
|
readonly name = "broken-access-control";
|
|
4
|
-
readonly description = "Detects missing authorization checks and insecure direct object references";
|
|
4
|
+
readonly description = "Detects missing authorization checks and insecure direct object references with context-aware analysis";
|
|
5
5
|
readonly severity: "high";
|
|
6
6
|
private readonly accessControlPatterns;
|
|
7
|
+
private readonly multiLineCommentPatterns;
|
|
7
8
|
private readonly authorizationPatterns;
|
|
9
|
+
private readonly falsePositivePatterns;
|
|
8
10
|
check(fileContent: FileContent): SecurityIssue[];
|
|
9
|
-
private
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private
|
|
11
|
+
private analyzeContext;
|
|
12
|
+
private isSafeContext;
|
|
13
|
+
private isInComment;
|
|
14
|
+
private isInTestFile;
|
|
15
|
+
private isInDocumentation;
|
|
16
|
+
private isInDevelopment;
|
|
17
|
+
private hasAuthorizationChecks;
|
|
18
|
+
private hasAuthentication;
|
|
19
|
+
private isProtectedRoute;
|
|
20
|
+
private calculateConfidence;
|
|
21
|
+
private calculateSeverity;
|
|
22
|
+
private detectLanguage;
|
|
23
|
+
private detectFramework;
|
|
24
|
+
private isInString;
|
|
25
|
+
private validateProtectedRoute;
|
|
26
|
+
private validateDirectObjectReference;
|
|
27
|
+
private validateDatabaseQuery;
|
|
28
|
+
private validateMongoDBQuery;
|
|
29
|
+
private validateORMQuery;
|
|
30
|
+
private validateFileAccess;
|
|
31
|
+
private validateFileWrite;
|
|
32
|
+
private validateFileDeletion;
|
|
33
|
+
private validateDatabaseUpdate;
|
|
34
|
+
private validateDatabaseDeletion;
|
|
35
|
+
private validateMongoDBRemoval;
|
|
36
|
+
private validateRoleAssignment;
|
|
37
|
+
private validatePermissionAssignment;
|
|
38
|
+
private validateSessionManipulation;
|
|
39
|
+
private validateSessionAssignment;
|
|
40
|
+
private validatePHPSessionManipulation;
|
|
41
|
+
private validatePHPDatabaseQuery;
|
|
42
|
+
private validatePythonSessionManipulation;
|
|
43
|
+
private validatePythonORMQuery;
|
|
44
|
+
private validateJavaSessionManipulation;
|
|
45
|
+
private validateJavaRepositoryQuery;
|
|
46
|
+
private getLineContext;
|
|
47
|
+
private generateSuggestion;
|
|
13
48
|
}
|
|
14
49
|
//# sourceMappingURL=broken-access-control.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broken-access-control.d.ts","sourceRoot":"","sources":["../../src/rules/broken-access-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"broken-access-control.d.ts","sourceRoot":"","sources":["../../src/rules/broken-access-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAiBhE,qBAAa,uBAAwB,SAAQ,QAAQ;IACnD,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,WAAW,4GAA4G;IAChI,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IAEpC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAqKpC;IAGF,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAOvC;IAEF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CA2BpC;IAEF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAkDpC;IAEF,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,EAAE;IA8ChD,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,6BAA6B;IAIrC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,8BAA8B;IAItC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,iCAAiC;IAIzC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,+BAA+B;IAIvC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,kBAAkB;CAsD3B"}
|