@vibekiln/cutline-mcp-cli 0.3.0 → 0.4.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.
|
@@ -4365,6 +4365,39 @@ var UNIVERSAL_CONSTRAINTS = [
|
|
|
4365
4365
|
file_patterns: ["**/api/auth/**", "**/api/login*", "**/api/callback*", "**/api/checkout*", "**/middleware/**"],
|
|
4366
4366
|
framework: "baseline"
|
|
4367
4367
|
},
|
|
4368
|
+
{
|
|
4369
|
+
id_suffix: "sensitive_tokens_not_in_urls",
|
|
4370
|
+
category: "security",
|
|
4371
|
+
summary: "Auth/session/API tokens MUST NOT be passed in URL query parameters during redirects. Sensitive tokens in URLs leak via logs, browser history, and referrers.",
|
|
4372
|
+
keywords: ["token", "query-param", "callback", "returnUrl", "redirect", "referrer", "url-leakage"],
|
|
4373
|
+
severity: "critical",
|
|
4374
|
+
action: "Use Authorization headers or httpOnly cookies for token transport. Validate callback/return URLs against an allowlist and never append bearer/session tokens to redirected URLs.",
|
|
4375
|
+
checklist_ref: "D11",
|
|
4376
|
+
file_patterns: ["**/auth/**", "**/api/auth/**", "**/api/**/checkout*", "**/mcp-auth*", "**/session/**", "**/middleware/**"],
|
|
4377
|
+
framework: "baseline"
|
|
4378
|
+
},
|
|
4379
|
+
{
|
|
4380
|
+
id_suffix: "no_secrets_in_query_params",
|
|
4381
|
+
category: "security",
|
|
4382
|
+
summary: "Secrets (revalidation secrets, API secrets, webhook secrets) MUST NOT be transported via URL query parameters. Query-string secrets are leaked through logs, referrers, and browser history.",
|
|
4383
|
+
keywords: ["secret", "query-param", "url", "revalidate", "webhook", "referrer", "leakage"],
|
|
4384
|
+
severity: "critical",
|
|
4385
|
+
action: "Accept secrets only via headers or signed request bodies. Reject secret-bearing query params in production endpoints. Rotate any secret previously sent in URLs.",
|
|
4386
|
+
checklist_ref: "D12",
|
|
4387
|
+
file_patterns: ["**/api/**", "**/webhooks/**", "**/revalidate/**", "**/middleware/**"],
|
|
4388
|
+
framework: "baseline"
|
|
4389
|
+
},
|
|
4390
|
+
{
|
|
4391
|
+
id_suffix: "no_state_change_get_cookie_auth",
|
|
4392
|
+
category: "security",
|
|
4393
|
+
summary: "State-changing operations MUST NOT be reachable via GET when cookie authentication is accepted. GET + cookie auth creates CSRF risk.",
|
|
4394
|
+
keywords: ["csrf", "get", "state-change", "cookie-auth", "origin-check", "referer", "method-safety"],
|
|
4395
|
+
severity: "critical",
|
|
4396
|
+
action: "Use POST/PUT/DELETE for side effects. If GET fallback is unavoidable, enforce strict same-origin checks (Origin/Referer/sec-fetch-site) and avoid cookie-based auth fallback where possible.",
|
|
4397
|
+
checklist_ref: "D13",
|
|
4398
|
+
file_patterns: ["**/api/**", "**/auth/**", "**/checkout/**", "**/middleware/**"],
|
|
4399
|
+
framework: "baseline"
|
|
4400
|
+
},
|
|
4368
4401
|
{
|
|
4369
4402
|
id_suffix: "ai_cost_caps",
|
|
4370
4403
|
category: "security",
|
|
@@ -5551,6 +5584,9 @@ D7. Do sensitive actions (account deletion, email change, role escalation) requi
|
|
|
5551
5584
|
D8. Is payment/billing logic validated server-side? Can prices or quantities be tampered with client-side?
|
|
5552
5585
|
D9. Are redirect URLs validated against an allowlist? Can open redirects be exploited for phishing?
|
|
5553
5586
|
D10. Are webhook signatures verified before processing payment or event data?
|
|
5587
|
+
D11. Are auth/session/API tokens kept out of URL query params (including callback/returnUrl redirects) and transported via headers or httpOnly cookies instead?
|
|
5588
|
+
D12. Are secrets (revalidate/API/webhook/etc.) kept out of URL query params and accepted only via headers or signed bodies?
|
|
5589
|
+
D13. Are side-effecting endpoints using non-GET methods, and are cookie-auth GET fallbacks protected with strict same-origin checks?
|
|
5554
5590
|
|
|
5555
5591
|
### E. Security Rules & Infrastructure
|
|
5556
5592
|
E1. For Firestore/database rules: do they enforce per-user data isolation?
|
|
@@ -5629,7 +5665,7 @@ Return a JSON object with exactly these fields:
|
|
|
5629
5665
|
- targetUsers (string): Who uses this product, from a security perspective.
|
|
5630
5666
|
- referenceClasses (string[]): Security frameworks or standards that apply (e.g., "OWASP Top 10 2021", "SOC 2 Type II").
|
|
5631
5667
|
- constraints (object?): Resource constraints \u2014 team, budget_usd, deadline_days, must_ship_scope.
|
|
5632
|
-
- checklist_summary (object): Keys are checklist IDs (A1-A8, B1-B6, C1-
|
|
5668
|
+
- checklist_summary (object): Keys are checklist IDs (A1-A8, B1-B6, C1-C8, D1-D13, E1-E7, F1-F4, G-*, H1-H3, I1-I8, J1-J6, K1-K8), values are "pass"|"fail"|"warn"|"not_applicable". This forces systematic coverage.
|
|
5633
5669
|
- compliance_signals (array of {framework: "pci_dss"|"hipaa"|"fedramp"|"gdpr_ccpa"|"owasp_llm"|"glba"|"ferpa_coppa"|"csa_ccm"|"ios_app_store", signal: string, confidence: number}?): Detected compliance framework signals. Return [] if none.
|
|
5634
5670
|
|
|
5635
5671
|
Be concrete and specific. Reference file paths and line numbers where possible. If a checklist item cannot be assessed from the provided files, mark it "not_applicable" and note why. Cover ALL sections A through K.`;
|
|
@@ -5855,6 +5891,11 @@ var SECURITY_PATH_PATTERNS = [
|
|
|
5855
5891
|
/\/permissions?/i,
|
|
5856
5892
|
/\/roles?/i,
|
|
5857
5893
|
/\/tokens?/i,
|
|
5894
|
+
/\/redirect/i,
|
|
5895
|
+
/\/callback/i,
|
|
5896
|
+
/returnurl/i,
|
|
5897
|
+
/\/mcp-auth/i,
|
|
5898
|
+
/checkout-link/i,
|
|
5858
5899
|
/\/csrf/i,
|
|
5859
5900
|
/\/rate-limit/i,
|
|
5860
5901
|
/\/encrypt/i,
|
|
@@ -6538,6 +6579,11 @@ var SECURITY_PATH_PATTERNS2 = [
|
|
|
6538
6579
|
/billing/i,
|
|
6539
6580
|
/stripe/i,
|
|
6540
6581
|
/webhook/i,
|
|
6582
|
+
/redirect/i,
|
|
6583
|
+
/callback/i,
|
|
6584
|
+
/returnurl/i,
|
|
6585
|
+
/mcp-auth/i,
|
|
6586
|
+
/checkout-link/i,
|
|
6541
6587
|
// Scalability & reliability patterns
|
|
6542
6588
|
/\/db\//i,
|
|
6543
6589
|
/queries?\//i,
|
package/package.json
CHANGED