@critiq/rules 0.1.0 → 0.3.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 +3 -2
- package/catalog.yaml +1415 -0
- package/package.json +1 -1
- package/rules/cfn/cfn.correctness.attributedefinitions-keyschemas-mismatch.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.base64-validation-of-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.basic-cloudformation-resource-check.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.basic-cloudformation-template-configuration.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.cannot-reference-resources-in-the-conditions-block-of-the-template.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-at-least-one-essential-container-is-specified.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-deletionpolicy-values-for-resources.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-dependson-values-for-resources.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-ec2-ebs-properties.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-elastic-cache-redis-cluster-settings.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-events-rule-targets-are-less-than-or-equal-to-5.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-fargate-service-scheduling-strategy.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-fn-and-structure-for-validity.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-fn-equals-structure-for-validity.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-fn-if-structure-for-validity.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-fn-not-structure-for-validity.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-fn-or-structure-for-validity.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-for-subscriptionfilters-have-beyond-2-attachments-to-a-cloudwatch-log-group.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-a-json-object-is-within-size-limits.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-a-list-has-between-min-and-max-number-of-values-specified.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-a-list-has-duplicate-values.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-a-number-is-between-min-and-max.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-a-string-has-between-min-and-max-number-of-values-specified.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-eol-lambda-function-runtimes-are-used.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-properties-have-a-valid-value.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-property-values-adhere-to-a-specific-pattern.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-refing-to-a-iam-resource-with-path-set.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-refs-exist.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-serverless-resources-have-serverless-transform.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-if-the-referenced-conditions-are-defined.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-minimum-90-period-is-met-between-backupplan-cold-and-delete.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-properties-that-are-mutually-exclusive.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-properties-that-are-required-together.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-properties-that-need-at-least-one-of-a-list-of-properties.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-properties-that-need-only-one-of-a-list-of-properties.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-resource-properties-values.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-state-machine-definition-for-proper-syntax.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-that-modules-resources-are-valid.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-the-configuration-of-a-resources-updatepolicy.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-updatereplacepolicy-values-for-resources.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.check-values-of-properties-for-valid-refs-and-getatts.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.cidr-validation-of-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.cloudfront-aliases.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.codepipeline-stage-actions.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.codepipeline-stages.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.conditions-have-appropriate-properties.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.default-value-cannot-use-refs.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.default-value-is-within-parameter-constraints.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.error-processing-rule-on-the-template.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.findinmap-validation-of-configuration.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.getatt-validation-of-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.getaz-validation-of-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.importvalue-validation-of-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.join-validation-of-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.length-validation-of-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.mapping-attribute-limit-not-exceeded.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.mapping-keys-are-strings-and-alphanumeric.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.mapping-limit-not-exceeded.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.mapping-name-limit-not-exceeded.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.mappings-are-appropriately-configured.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.mappings-have-appropriate-names.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.metadata-interface-have-appropriate-properties.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.output-description-limit-not-exceeded.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.output-limit-not-exceeded.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.output-name-limit-not-exceeded.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.outputs-descriptions-can-only-be-strings.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.outputs-have-appropriate-names.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.outputs-have-appropriate-properties.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.outputs-have-required-properties.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.outputs-have-values-of-strings.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.parameter-limit-not-exceeded.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.parameter-name-limit-not-exceeded.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.parameter-value-limit-not-exceeded.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.parameters-have-appropriate-names.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.parameters-have-appropriate-properties.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.parameters-have-appropriate-type.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.property-is-required-based-on-another-properties-value.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.property-is-unwanted-based-on-another-properties-value.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.rds-instance-type-is-compatible-with-the-rds-type.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.recordset-hostedzonename-is-a-superdomain-of-name.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.ref-validation-of-value.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.required-resource-properties-are-missing.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.resource-dependencies-are-not-circular.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.resource-ec2-security-group-ingress-properties.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.resource-elb-properties.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.resource-limit-not-exceeded.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.resource-name-limit-not-exceeded.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.resource-properties-are-invalid.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.resource-schema.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.resource-subnetroutetableassociation-properties.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.resources-have-appropriate-names.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.select-validation-of-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.snapstart-supports-the-configured-runtime.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.split-validation-of-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.sub-is-required-if-a-variable-is-used-in-a-string.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.sub-validation-of-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.template-description-can-only-be-a-string.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.template-description-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.template-size-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.tojsonstring-validation-of-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.unique-resource-and-parameter-names.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.validate-accesscontrol-are-set-with-ownershipcontrols.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.validate-aws-event-scheduleexpression-format.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.validate-parameters-for-in-a-nested-stack.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.validate-route53-recordsets.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.validate-the-configuration-of-the-metadata-section.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.validates-foreach-functions.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.validation-not-function-configuration.rule.yaml +49 -0
- package/rules/cfn/cfn.correctness.validationdomain-is-superdomain-of-domainname.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.arns-should-use-correctly-placed-pseudo-parameters.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.availability-zone-parameters-should-not-be-hardcoded.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-iam-resource-policies-syntax.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-if-a-list-that-allows-duplicates-has-any-duplicates.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-if-conditions-are-used.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-if-eol-lambda-function-runtimes-are-used-w2531.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-if-imageid-parameters-have-the-correct-type.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-if-mappings-are-used.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-if-parameters-are-used.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-if-parameters-have-a-valid-value-based-on-an-allowed-pattern.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-if-parameters-have-a-valid-value.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-obsolete-dependson-configuration-for-resources.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-outputs-using-importvalue.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-required-properties-for-lambda-if-the-deployment-package-is-a-zip-file.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-resources-with-auto-expiring-content-have-explicit-retention-period.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-resources-with-updatereplacepolicy-deletionpolicy-have-both.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.check-stateful-resources-have-a-set-updatereplacepolicy-deletionpolicy.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.checks-for-legacy-instance-type-generations.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.findinmap-keys-exist-in-the-map.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.fn-equals-will-always-return-true-or-false.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.mapping-attribute-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.mapping-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.mapping-name-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.metadata-interface-parameters-exist.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.output-description-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.output-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.output-name-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.parameter-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.parameter-memory-size-attributes-should-have-max-and-min.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.parameter-name-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.parameter-value-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.ref-getatt-to-resource-that-is-available-when-conditions-are-applied.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.resource-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.resource-name-limit.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.sub-isn-t-needed-if-it-doesn-t-have-a-variable-defined.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.sub-validation-of-parameters-w1019.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.template-description-limit-i1003.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.template-size-limit-i1002.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.use-sub-instead-of-join.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.validate-that-snapstart-is-configured-for-java11-runtimes.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.validate-that-snapstart-is-properly-configured.rule.yaml +49 -0
- package/rules/cfn/cfn.maintainability.warn-when-properties-are-configured-to-only-work-with-the-package-command.rule.yaml +49 -0
- package/rules/cfn/cfn.security.check-dynamic-references-secure-strings-are-in-supported-locations.rule.yaml +53 -0
- package/rules/cfn/cfn.security.check-for-noecho-references.rule.yaml +53 -0
- package/rules/cfn/cfn.security.check-iam-permission-configuration.rule.yaml +53 -0
- package/rules/cfn/cfn.security.check-if-iam-policies-are-properly-configured.rule.yaml +53 -0
- package/rules/cfn/cfn.security.check-if-password-properties-are-correctly-configured.rule.yaml +53 -0
- package/rules/cfn/cfn.security.controlling-access-to-an-s3-bucket-should-be-done-with-bucket-policies.rule.yaml +53 -0
- package/rules/go/go.correctness.defer-close-before-check.rule.yaml +44 -0
- package/rules/go/go.correctness.defer-in-loop.rule.yaml +47 -0
- package/rules/go/go.correctness.nil-context-passed.rule.yaml +43 -0
- package/rules/go/go.correctness.nil-map-assignment.rule.yaml +42 -0
- package/rules/go/go.correctness.time-tick-leak.rule.yaml +44 -0
- package/rules/go/go.correctness.unused-append-result.rule.yaml +43 -0
- package/rules/go/go.correctness.waitgroup-add-in-goroutine.rule.yaml +45 -0
- package/rules/go/go.security.bind-all-interfaces.rule.yaml +57 -0
- package/rules/go/go.security.echo-sensitive-binding-without-validation.rule.yaml +10 -0
- package/rules/go/go.security.echo-unsafe-multipart-upload.rule.yaml +10 -0
- package/rules/go/go.security.fiber-sensitive-binding-without-validation.rule.yaml +10 -0
- package/rules/go/go.security.fiber-unsafe-multipart-upload.rule.yaml +10 -0
- package/rules/go/go.security.gin-sensitive-binding-without-validation.rule.yaml +10 -0
- package/rules/go/go.security.gin-trust-all-proxies.rule.yaml +10 -0
- package/rules/go/go.security.gin-wildcard-cors-with-credentials.rule.yaml +10 -0
- package/rules/go/go.security.insecure-rand-seed.rule.yaml +55 -0
- package/rules/go/go.security.insecure-ssh-host-key.rule.yaml +57 -0
- package/rules/go/go.security.insecure-ssl-protocol.rule.yaml +56 -0
- package/rules/go/go.security.insecure-temp-file.rule.yaml +57 -0
- package/rules/go/go.security.jwt-without-verification.rule.yaml +56 -0
- package/rules/go/go.security.net-http-missing-timeouts.rule.yaml +10 -0
- package/rules/go/go.security.pprof-exposed.rule.yaml +56 -0
- package/rules/go/go.security.sensitive-data-egress.rule.yaml +10 -0
- package/rules/go/go.security.tar-path-traversal.rule.yaml +10 -0
- package/rules/go/go.security.template-unescaped-request-value.rule.yaml +10 -0
- package/rules/go/go.security.tls-missing-min-version.rule.yaml +55 -0
- package/rules/go/go.security.unsafe-package-import.rule.yaml +55 -0
- package/rules/go/go.security.weak-bcrypt-cost.rule.yaml +56 -0
- package/rules/go/go.security.weak-crypto-import.rule.yaml +57 -0
- package/rules/go/go.security.weak-rsa-key-size.rule.yaml +57 -0
- package/rules/go/go.security.weak-tls-cipher.rule.yaml +56 -0
- package/rules/java/java.correctness.catch-null-pointer.rule.yaml +40 -0
- package/rules/java/java.correctness.empty-catch.rule.yaml +40 -0
- package/rules/java/java.correctness.equals-on-array.rule.yaml +40 -0
- package/rules/java/java.correctness.return-in-finally.rule.yaml +40 -0
- package/rules/java/java.correctness.sync-on-string-literal.rule.yaml +40 -0
- package/rules/java/java.correctness.unsafe-optional-get.rule.yaml +40 -0
- package/rules/java/java.security.android-screenshot-exposure.rule.yaml +13 -0
- package/rules/java/java.security.android-world-readable-mode.rule.yaml +13 -0
- package/rules/java/java.security.hibernate-sql-concatenation.rule.yaml +62 -0
- package/rules/java/java.security.insecure-cipher-mode.rule.yaml +52 -0
- package/rules/java/java.security.insecure-network-protocol.rule.yaml +52 -0
- package/rules/java/java.security.insecure-ssl-context.rule.yaml +52 -0
- package/rules/java/java.security.jpa-concatenated-query.rule.yaml +13 -0
- package/rules/java/java.security.jwt-without-verification.rule.yaml +53 -0
- package/rules/java/java.security.null-cipher.rule.yaml +52 -0
- package/rules/java/java.security.permissive-cors.rule.yaml +53 -0
- package/rules/java/java.security.predictable-securerandom.rule.yaml +59 -0
- package/rules/java/java.security.reflected-output-from-request.rule.yaml +10 -0
- package/rules/java/java.security.servlet-insecure-cookie.rule.yaml +13 -0
- package/rules/java/java.security.shell-runtime-exec.rule.yaml +58 -0
- package/rules/java/java.security.spring-actuator-health-details-always.rule.yaml +13 -0
- package/rules/java/java.security.spring-actuator-sensitive-exposure.rule.yaml +13 -0
- package/rules/java/java.security.spring-csrf-globally-disabled.rule.yaml +13 -0
- package/rules/java/java.security.spring-debug-exposure.rule.yaml +13 -0
- package/rules/java/java.security.spring-permit-all-default.rule.yaml +13 -0
- package/rules/java/java.security.spring-webmvc-unrestricted-data-binding.rule.yaml +13 -0
- package/rules/java/java.security.template-unescaped-user-output.rule.yaml +10 -0
- package/rules/java/java.security.trust-all-certificates.rule.yaml +52 -0
- package/rules/java/java.security.unsafe-jackson-deserialization.rule.yaml +59 -0
- package/rules/java/java.security.weak-rsa-key-size.rule.yaml +54 -0
- package/rules/java/java.security.xxe-document-builder.rule.yaml +59 -0
- package/rules/java/java.security.xxe-xml-input-factory.rule.yaml +59 -0
- package/rules/php/php.correctness.abstract-method-outside-abstract-class.rule.yaml +36 -0
- package/rules/php/php.correctness.break-continue-outside-loop.rule.yaml +36 -0
- package/rules/php/php.correctness.case-insensitive-define.rule.yaml +36 -0
- package/rules/php/php.correctness.default-parameter-not-last.rule.yaml +36 -0
- package/rules/php/php.correctness.deprecated-filter-constant.rule.yaml +36 -0
- package/rules/php/php.correctness.deprecated-libxml-entity-loader.rule.yaml +36 -0
- package/rules/php/php.correctness.deprecated-unset-cast.rule.yaml +36 -0
- package/rules/php/php.correctness.duplicate-array-key.rule.yaml +36 -0
- package/rules/php/php.correctness.duplicate-declaration.rule.yaml +36 -0
- package/rules/php/php.correctness.empty-array-literal-slot.rule.yaml +36 -0
- package/rules/php/php.correctness.empty-bracket-array-access.rule.yaml +36 -0
- package/rules/php/php.correctness.empty-code-block.rule.yaml +36 -0
- package/rules/php/php.correctness.empty-function-body.rule.yaml +36 -0
- package/rules/php/php.correctness.error-suppression-operator.rule.yaml +36 -0
- package/rules/php/php.correctness.function-comparison.rule.yaml +36 -0
- package/rules/php/php.correctness.invalid-cookie-options.rule.yaml +36 -0
- package/rules/php/php.correctness.invalid-regex-literal.rule.yaml +36 -0
- package/rules/php/php.correctness.missing-member-visibility.rule.yaml +36 -0
- package/rules/php/php.correctness.nested-function-declaration.rule.yaml +36 -0
- package/rules/php/php.correctness.nested-switch.rule.yaml +36 -0
- package/rules/php/php.correctness.nullsafe-returned-by-reference.rule.yaml +36 -0
- package/rules/php/php.correctness.redundant-string-cast-concat.rule.yaml +36 -0
- package/rules/php/php.correctness.self-assignment.rule.yaml +36 -0
- package/rules/php/php.correctness.switch-multiple-default.rule.yaml +36 -0
- package/rules/php/php.correctness.todo-fixme-marker.rule.yaml +36 -0
- package/rules/php/php.correctness.unknown-magic-method.rule.yaml +36 -0
- package/rules/php/php.correctness.unreachable-after-return.rule.yaml +36 -0
- package/rules/php/php.correctness.useless-post-increment.rule.yaml +36 -0
- package/rules/php/php.correctness.useless-unset.rule.yaml +36 -0
- package/rules/php/php.performance.expensive-loop-condition.rule.yaml +36 -0
- package/rules/php/php.security.debug-function-exposure.rule.yaml +55 -0
- package/rules/php/php.security.insecure-cors-wildcard-with-credentials.rule.yaml +10 -0
- package/rules/php/php.security.insecure-mail-or-file-transport.rule.yaml +10 -0
- package/rules/php/php.security.insecure-session-id-generation.rule.yaml +51 -0
- package/rules/php/php.security.insecure-session-or-cookie-config.rule.yaml +10 -0
- package/rules/php/php.security.laravel-sensitive-csrf-exclusion.rule.yaml +13 -0
- package/rules/php/php.security.laravel-unsafe-blade-output.rule.yaml +13 -0
- package/rules/php/php.security.laravel-unsafe-mass-assignment.rule.yaml +13 -0
- package/rules/php/php.security.no-dynamic-eval.rule.yaml +52 -0
- package/rules/php/php.security.sensitive-data-egress.rule.yaml +10 -0
- package/rules/php/php.security.symfony-csrf-disabled.rule.yaml +13 -0
- package/rules/php/php.security.symfony-debug-exposure.rule.yaml +13 -0
- package/rules/php/php.security.unsafe-file-upload-handling.rule.yaml +10 -0
- package/rules/php/php.security.unsafe-include-with-user-input.rule.yaml +52 -0
- package/rules/php/php.security.unsafe-new-static.rule.yaml +42 -0
- package/rules/php/php.security.weak-cipher.rule.yaml +51 -0
- package/rules/php/php.security.wordpress-missing-nonce-or-capability.rule.yaml +13 -0
- package/rules/php/php.security.wordpress-unprepared-sql.rule.yaml +13 -0
- package/rules/php/php.security.xml-external-entity.rule.yaml +53 -0
- package/rules/python/py.correctness.assert-on-tuple.rule.yaml +33 -0
- package/rules/python/py.correctness.bare-except.rule.yaml +33 -0
- package/rules/python/py.correctness.broad-exception-handler.rule.yaml +33 -0
- package/rules/python/py.correctness.dangerous-mutable-default.rule.yaml +33 -0
- package/rules/python/py.correctness.duplicate-dict-key.rule.yaml +33 -0
- package/rules/python/py.security.bind-all-interfaces.rule.yaml +55 -0
- package/rules/python/py.security.debugger-import.rule.yaml +55 -0
- package/rules/python/py.security.django-csrf-exempt-state-changing.rule.yaml +13 -0
- package/rules/python/py.security.django-format-html-unsafe.rule.yaml +56 -0
- package/rules/python/py.security.django-mark-safe.rule.yaml +56 -0
- package/rules/python/py.security.django-missing-csrf-middleware.rule.yaml +13 -0
- package/rules/python/py.security.django-security-middleware-missing.rule.yaml +60 -0
- package/rules/python/py.security.django-unsafe-production-settings.rule.yaml +13 -0
- package/rules/python/py.security.drf-allow-any-default.rule.yaml +13 -0
- package/rules/python/py.security.drf-allow-any-unsafe-method.rule.yaml +13 -0
- package/rules/python/py.security.dynamic-code-execution.rule.yaml +55 -0
- package/rules/python/py.security.fastapi-insecure-cors.rule.yaml +13 -0
- package/rules/python/py.security.flask-debug-enabled.rule.yaml +56 -0
- package/rules/python/py.security.flask-missing-upload-body-limit.rule.yaml +13 -0
- package/rules/python/py.security.flask-unsafe-html-output.rule.yaml +13 -0
- package/rules/python/py.security.flask-unsafe-upload-filename.rule.yaml +13 -0
- package/rules/python/py.security.insecure-temp-file.rule.yaml +55 -0
- package/rules/python/py.security.insecure-yaml-load.rule.yaml +55 -0
- package/rules/python/py.security.jinja-autoescape-disabled.rule.yaml +58 -0
- package/rules/python/py.security.subprocess-shell-enabled.rule.yaml +55 -0
- package/rules/ruby/ruby.bug-risk.assignment-in-condition.rule.yaml +42 -0
- package/rules/ruby/ruby.bug-risk.deprecated-uri-escape.rule.yaml +42 -0
- package/rules/ruby/ruby.bug-risk.division-by-zero.rule.yaml +42 -0
- package/rules/ruby/ruby.bug-risk.duplicate-hash-keys.rule.yaml +42 -0
- package/rules/ruby/ruby.bug-risk.exception-class-overwritten.rule.yaml +42 -0
- package/rules/ruby/ruby.bug-risk.raw-sql-without-squish.rule.yaml +42 -0
- package/rules/ruby/ruby.security.debugger-call.rule.yaml +53 -0
- package/rules/ruby/ruby.security.dynamic-code-execution.rule.yaml +54 -0
- package/rules/ruby/ruby.security.insecure-json-load.rule.yaml +53 -0
- package/rules/ruby/ruby.security.kernel-open.rule.yaml +53 -0
- package/rules/ruby/ruby.security.plaintext-password-in-callback.rule.yaml +46 -0
- package/rules/ruby/ruby.security.rails-csrf-disabled.rule.yaml +13 -0
- package/rules/ruby/ruby.security.rails-detailed-exceptions-enabled.rule.yaml +13 -0
- package/rules/ruby/ruby.security.rails-link-to-blank-without-noopener.rule.yaml +48 -0
- package/rules/ruby/ruby.security.rails-open-redirect.rule.yaml +13 -0
- package/rules/ruby/ruby.security.rails-output-unsafe.rule.yaml +47 -0
- package/rules/ruby/ruby.security.rails-unsafe-html-output.rule.yaml +13 -0
- package/rules/ruby/ruby.security.rails-unsafe-render.rule.yaml +13 -0
- package/rules/ruby/ruby.security.rails-unsafe-session-or-cookie-store.rule.yaml +13 -0
- package/rules/ruby/ruby.security.rails-unsafe-strong-parameters.rule.yaml +13 -0
- package/rules/ruby/ruby.security.sensitive-data-egress.rule.yaml +10 -0
- package/rules/ruby/ruby.security.sidekiq-web-unauthenticated-mount.rule.yaml +10 -0
- package/rules/rust/rust.correctness.block-on-in-async.rule.yaml +48 -0
- package/rules/rust/rust.correctness.forget-join-handle.rule.yaml +48 -0
- package/rules/rust/rust.correctness.mutex-held-across-await.rule.yaml +48 -0
- package/rules/rust/rust.correctness.std-mutex-in-async-fn.rule.yaml +48 -0
- package/rules/rust/rust.correctness.thread-sleep-in-async.rule.yaml +48 -0
- package/rules/rust/rust.correctness.unbounded-channel.rule.yaml +49 -0
- package/rules/rust/rust.correctness.unchecked-index.rule.yaml +46 -0
- package/rules/rust/rust.security.actix-wildcard-cors-with-credentials.rule.yaml +13 -0
- package/rules/rust/rust.security.axum-body-limit-disabled.rule.yaml +13 -0
- package/rules/rust/rust.security.axum-insecure-cors-with-credentials.rule.yaml +13 -0
- package/rules/rust/rust.security.bind-all-interfaces.rule.yaml +57 -0
- package/rules/rust/rust.security.insecure-ssh-host-key.rule.yaml +57 -0
- package/rules/rust/rust.security.insecure-ssl-protocol.rule.yaml +57 -0
- package/rules/rust/rust.security.insecure-temp-file.rule.yaml +57 -0
- package/rules/rust/rust.security.insecure-yaml-load.rule.yaml +57 -0
- package/rules/rust/rust.security.jwt-without-verification.rule.yaml +57 -0
- package/rules/rust/rust.security.panic-in-async-handler.rule.yaml +57 -0
- package/rules/rust/rust.security.rocket-panic-prone-request-handler.rule.yaml +13 -0
- package/rules/rust/rust.security.rocket-unsafe-template-output.rule.yaml +13 -0
- package/rules/rust/rust.security.shell-command-spawn.rule.yaml +57 -0
- package/rules/rust/rust.security.sqlx-diesel-raw-interpolated-query.rule.yaml +13 -0
- package/rules/rust/rust.security.template-unescaped-request-value.rule.yaml +10 -0
- package/rules/rust/rust.security.tls-missing-min-version.rule.yaml +57 -0
- package/rules/rust/rust.security.warp-blocking-or-panic-in-async-handler.rule.yaml +13 -0
- package/rules/rust/rust.security.weak-crypto-import.rule.yaml +55 -0
- package/rules/rust/rust.security.weak-rsa-key-size.rule.yaml +57 -0
- package/rules/rust/rust.security.weak-tls-cipher.rule.yaml +57 -0
- package/rules/shared/security.archive-path-traversal.rule.yaml +10 -0
- package/rules/shared/security.external-file-upload.rule.yaml +10 -0
- package/rules/shared/security.insecure-http-transport.rule.yaml +10 -0
- package/rules/shared/security.no-command-execution-with-request-input.rule.yaml +10 -0
- package/rules/shared/security.no-hardcoded-credentials.rule.yaml +10 -0
- package/rules/shared/security.no-request-path-file-read.rule.yaml +10 -0
- package/rules/shared/security.no-sensitive-data-in-logs-and-telemetry.rule.yaml +10 -0
- package/rules/shared/security.no-sql-interpolation.rule.yaml +10 -0
- package/rules/shared/security.permissive-file-permissions.rule.yaml +10 -0
- package/rules/shared/security.sensitive-data-egress.rule.yaml +10 -0
- package/rules/shared/security.tls-verification-disabled.rule.yaml +10 -0
- package/rules/shared/security.unsafe-deserialization.rule.yaml +10 -0
- package/rules/shared/security.weak-hash-algorithm.rule.yaml +10 -0
- package/rules/typescript/ts.correctness.array-callback-missing-return.rule.yaml +35 -0
- package/rules/typescript/ts.correctness.array-sort-without-compare.rule.yaml +35 -0
- package/rules/typescript/ts.correctness.control-flow-in-finally.rule.yaml +35 -0
- package/rules/typescript/ts.correctness.duplicate-if-else-condition.rule.yaml +35 -0
- package/rules/typescript/ts.correctness.for-in-on-array.rule.yaml +35 -0
- package/rules/typescript/ts.correctness.infinite-loop.rule.yaml +32 -0
- package/rules/typescript/ts.correctness.invalid-await-expression.rule.yaml +32 -0
- package/rules/typescript/ts.correctness.invalid-typeof-comparison.rule.yaml +35 -0
- package/rules/typescript/ts.correctness.missing-async-on-promise-method.rule.yaml +32 -0
- package/rules/typescript/ts.correctness.missing-super-call.rule.yaml +35 -0
- package/rules/typescript/ts.correctness.no-floating-promise-in-function.rule.yaml +32 -0
- package/rules/typescript/ts.correctness.no-misused-promises.rule.yaml +32 -0
- package/rules/typescript/ts.correctness.promise-reject-non-error.rule.yaml +35 -0
- package/rules/typescript/ts.correctness.this-before-super.rule.yaml +35 -0
- package/rules/typescript/ts.correctness.unnecessary-return-await.rule.yaml +32 -0
- package/rules/typescript/ts.correctness.use-number-is-nan.rule.yaml +35 -0
- package/rules/typescript/ts.next.server-action-missing-local-auth.rule.yaml +13 -0
- package/rules/typescript/ts.performance.no-await-in-loop.rule.yaml +32 -0
- package/rules/typescript/ts.quality.no-empty-function.rule.yaml +32 -0
- package/rules/typescript/ts.react.no-bind-in-jsx-props.rule.yaml +36 -0
- package/rules/typescript/ts.react.no-children-prop.rule.yaml +34 -0
- package/rules/typescript/ts.react.no-direct-state-mutation.rule.yaml +34 -0
- package/rules/typescript/ts.react.no-duplicate-jsx-attributes.rule.yaml +34 -0
- package/rules/typescript/ts.react.no-jsx-props-spread.rule.yaml +35 -0
- package/rules/typescript/ts.react.no-set-state-in-component-did-mount.rule.yaml +34 -0
- package/rules/typescript/ts.react.no-set-state-in-component-did-update.rule.yaml +34 -0
- package/rules/typescript/ts.react.no-target-blank-without-rel.rule.yaml +46 -0
- package/rules/typescript/ts.react.no-this-in-function-component.rule.yaml +34 -0
- package/rules/typescript/ts.runtime.no-process-exit.rule.yaml +44 -0
- package/rules/typescript/ts.security.ajv-insecure-configuration.rule.yaml +10 -0
- package/rules/typescript/ts.security.angular-dom-sanitizer-bypass-untrusted-input.rule.yaml +13 -0
- package/rules/typescript/ts.security.apollo-server-csrf-disabled.rule.yaml +16 -0
- package/rules/typescript/ts.security.apollo-server-graphql-dev-tooling-exposure.rule.yaml +16 -0
- package/rules/typescript/ts.security.apollo-server-introspection-exposure.rule.yaml +16 -0
- package/rules/typescript/ts.security.apollo-server-missing-query-limits.rule.yaml +16 -0
- package/rules/typescript/ts.security.astro-vite-public-secret-define.rule.yaml +13 -0
- package/rules/typescript/ts.security.bind-to-all-interfaces.rule.yaml +10 -0
- package/rules/typescript/ts.security.browser-token-storage.rule.yaml +10 -0
- package/rules/typescript/ts.security.dangerous-insert-html.rule.yaml +10 -0
- package/rules/typescript/ts.security.dangerously-set-inner-html.rule.yaml +10 -0
- package/rules/typescript/ts.security.datadog-browser-track-user-interactions.rule.yaml +10 -0
- package/rules/typescript/ts.security.debug-mode-enabled.rule.yaml +10 -0
- package/rules/typescript/ts.security.debug-statement-in-source.rule.yaml +10 -0
- package/rules/typescript/ts.security.dynamodb-query-injection.rule.yaml +10 -0
- package/rules/typescript/ts.security.electron-dangerous-webpreferences.rule.yaml +10 -0
- package/rules/typescript/ts.security.electron-insecure-local-state.rule.yaml +10 -0
- package/rules/typescript/ts.security.electron-missing-ipc-origin-check.rule.yaml +10 -0
- package/rules/typescript/ts.security.electron-shell-open-external-unvalidated.rule.yaml +13 -0
- package/rules/typescript/ts.security.exposed-directory-listing.rule.yaml +10 -0
- package/rules/typescript/ts.security.express-cookie-missing-http-only.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-default-cookie-config.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-default-session-config.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-error-handler-information-disclosure.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-insecure-cookie.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-missing-helmet.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-nosql-injection.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-permissive-cookie-config.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-permissive-cors.rule.yaml +52 -0
- package/rules/typescript/ts.security.express-reduce-fingerprint.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-static-assets-after-session.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-static-dotfiles-allow.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-unbounded-body-parser.rule.yaml +16 -0
- package/rules/typescript/ts.security.express-user-controlled-static-mount.rule.yaml +16 -0
- package/rules/typescript/ts.security.external-file-upload.rule.yaml +10 -0
- package/rules/typescript/ts.security.fastify-excessive-body-limit.rule.yaml +16 -0
- package/rules/typescript/ts.security.fastify-public-bind-without-trust-proxy.rule.yaml +16 -0
- package/rules/typescript/ts.security.file-generation.rule.yaml +10 -0
- package/rules/typescript/ts.security.format-string-using-user-input.rule.yaml +10 -0
- package/rules/typescript/ts.security.frontend-only-authorization.rule.yaml +10 -0
- package/rules/typescript/ts.security.graphql-upload-without-csrf-guard.rule.yaml +16 -0
- package/rules/typescript/ts.security.handlebars-no-escape.rule.yaml +10 -0
- package/rules/typescript/ts.security.hardcoded-auth-secret.rule.yaml +10 -0
- package/rules/typescript/ts.security.iframe-missing-sandbox-attribute.rule.yaml +10 -0
- package/rules/typescript/ts.security.import-using-user-input.rule.yaml +10 -0
- package/rules/typescript/ts.security.information-leakage.rule.yaml +10 -0
- package/rules/typescript/ts.security.insecure-allow-origin.rule.yaml +10 -0
- package/rules/typescript/ts.security.insecure-auth-cookie-flags.rule.yaml +10 -0
- package/rules/typescript/ts.security.insecure-content-security-policy-literal.rule.yaml +10 -0
- package/rules/typescript/ts.security.insecure-helmet-hardening-options.rule.yaml +10 -0
- package/rules/typescript/ts.security.insecure-password-hash-configuration.rule.yaml +10 -0
- package/rules/typescript/ts.security.insecure-websocket-transport.rule.yaml +10 -0
- package/rules/typescript/ts.security.insufficiently-random-values.rule.yaml +10 -0
- package/rules/typescript/ts.security.jwt-insecure-signing-algorithm.rule.yaml +10 -0
- package/rules/typescript/ts.security.jwt-not-revoked.rule.yaml +10 -0
- package/rules/typescript/ts.security.jwt-sensitive-claims.rule.yaml +10 -0
- package/rules/typescript/ts.security.legacy-buffer-constructor.rule.yaml +10 -0
- package/rules/typescript/ts.security.log-injection.rule.yaml +10 -0
- package/rules/typescript/ts.security.manual-html-sanitization.rule.yaml +10 -0
- package/rules/typescript/ts.security.missing-authorization-before-sensitive-action.rule.yaml +10 -0
- package/rules/typescript/ts.security.missing-integrity-check.rule.yaml +10 -0
- package/rules/typescript/ts.security.missing-message-origin-check.rule.yaml +10 -0
- package/rules/typescript/ts.security.missing-ownership-validation.rule.yaml +10 -0
- package/rules/typescript/ts.security.missing-request-timeout-or-retry.rule.yaml +10 -0
- package/rules/typescript/ts.security.nestjs-helmet-after-route-mount.rule.yaml +16 -0
- package/rules/typescript/ts.security.nestjs-missing-global-validation-pipe.rule.yaml +16 -0
- package/rules/typescript/ts.security.nestjs-skip-throttle-sensitive-route.rule.yaml +16 -0
- package/rules/typescript/ts.security.nestjs-validation-pipe-without-whitelist.rule.yaml +16 -0
- package/rules/typescript/ts.security.no-alert-confirm-prompt.rule.yaml +44 -0
- package/rules/typescript/ts.security.no-arguments-callee.rule.yaml +44 -0
- package/rules/typescript/ts.security.no-assign-mutable-export.rule.yaml +45 -0
- package/rules/typescript/ts.security.no-dynamic-execution.rule.yaml +10 -0
- package/rules/typescript/ts.security.no-fs-readfile-sync-in-handler.rule.yaml +46 -0
- package/rules/typescript/ts.security.no-global-native-reassignment.rule.yaml +44 -0
- package/rules/typescript/ts.security.no-innerhtml-assignment.rule.yaml +10 -0
- package/rules/typescript/ts.security.no-javascript-url.rule.yaml +44 -0
- package/rules/typescript/ts.security.no-native-prototype-extension.rule.yaml +44 -0
- package/rules/typescript/ts.security.no-sync-child-process-exec.rule.yaml +45 -0
- package/rules/typescript/ts.security.no-throw-literal.rule.yaml +44 -0
- package/rules/typescript/ts.security.no-with-statement.rule.yaml +44 -0
- package/rules/typescript/ts.security.non-literal-fs-filename.rule.yaml +10 -0
- package/rules/typescript/ts.security.nuxt-public-runtime-secret.rule.yaml +13 -0
- package/rules/typescript/ts.security.observable-timing-discrepancy.rule.yaml +10 -0
- package/rules/typescript/ts.security.open-redirect.rule.yaml +10 -0
- package/rules/typescript/ts.security.permissive-allow-origin.rule.yaml +10 -0
- package/rules/typescript/ts.security.permissive-file-permissions.rule.yaml +10 -0
- package/rules/typescript/ts.security.postmessage-wildcard-origin.rule.yaml +10 -0
- package/rules/typescript/ts.security.predictable-token-generation.rule.yaml +10 -0
- package/rules/typescript/ts.security.raw-html-using-user-input.rule.yaml +10 -0
- package/rules/typescript/ts.security.request-driven-array-index-access.rule.yaml +10 -0
- package/rules/typescript/ts.security.sensitive-data-egress.rule.yaml +10 -0
- package/rules/typescript/ts.security.sensitive-data-in-exception.rule.yaml +10 -0
- package/rules/typescript/ts.security.sensitive-data-written-to-file.rule.yaml +10 -0
- package/rules/typescript/ts.security.ssrf.rule.yaml +10 -0
- package/rules/typescript/ts.security.token-or-session-not-validated.rule.yaml +10 -0
- package/rules/typescript/ts.security.ui-redress.rule.yaml +10 -0
- package/rules/typescript/ts.security.unsafe-dirname-path-concat.rule.yaml +44 -0
- package/rules/typescript/ts.security.unsafe-dompurify-version.rule.yaml +10 -0
- package/rules/typescript/ts.security.unsafe-marked-version.rule.yaml +10 -0
- package/rules/typescript/ts.security.unsanitized-http-response.rule.yaml +10 -0
- package/rules/typescript/ts.security.unvalidated-external-input.rule.yaml +10 -0
- package/rules/typescript/ts.security.user-controlled-sendfile.rule.yaml +10 -0
- package/rules/typescript/ts.security.user-controlled-view-render.rule.yaml +10 -0
- package/rules/typescript/ts.security.weak-cipher-or-mode.rule.yaml +10 -0
- package/rules/typescript/ts.security.weak-key-strength.rule.yaml +10 -0
- package/rules/typescript/ts.security.weak-tls-version.rule.yaml +10 -0
- package/rules/typescript/ts.security.xml-parse-string-with-untrusted-input.rule.yaml +10 -0
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Token or session not validated
|
|
6
6
|
summary: Session and token values from external input should be verified before authentication or identity use.
|
|
7
7
|
rationale: Parsing or loading session state without verification allows forged or stale credentials to influence authorization paths.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-287
|
|
13
|
+
title: Improper Authentication
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: JSON Web Token Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/JSON_Web_Token_for_Java_Cheat_Sheet.html
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- authentication
|
|
@@ -33,3 +42,4 @@ emit:
|
|
|
33
42
|
summary: "`${captures.issue.text}` uses token or session input without any preceding validation step."
|
|
34
43
|
remediation:
|
|
35
44
|
summary: Verify or authenticate the token or session value before decoding, loading, or deriving identity from it.
|
|
45
|
+
|
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Do not derive anti-framing headers from request input
|
|
6
6
|
summary: Framing and CSP headers should not be set from request-controlled values.
|
|
7
7
|
rationale: Request-controlled anti-framing headers weaken protections against clickjacking and UI redress attacks.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-16
|
|
13
|
+
title: Configuration
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: Secure Configuration Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/Secure_Configuration_Cheat_Sheet.html
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- clickjacking
|
|
@@ -35,3 +44,4 @@ emit:
|
|
|
35
44
|
remediation:
|
|
36
45
|
summary: Set framing and CSP headers from fixed server policy instead of request data.
|
|
37
46
|
|
|
47
|
+
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
apiVersion: critiq.dev/v1alpha1
|
|
2
|
+
kind: Rule
|
|
3
|
+
metadata:
|
|
4
|
+
id: ts.security.unsafe-dirname-path-concat
|
|
5
|
+
title: Avoid string-built paths from `__dirname` or `__filename`
|
|
6
|
+
summary: Do not build filesystem paths by concatenating `__dirname` or `__filename` with strings or templates.
|
|
7
|
+
rationale: String-built paths are easy to get wrong and can enable directory traversal when any segment is dynamic.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-434
|
|
13
|
+
title: Unrestricted Upload of File with Dangerous Type
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: File Upload Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html
|
|
17
|
+
tags:
|
|
18
|
+
- security
|
|
19
|
+
- filesystem
|
|
20
|
+
- rules-catalog
|
|
21
|
+
stability: stable
|
|
22
|
+
appliesTo: block
|
|
23
|
+
scope:
|
|
24
|
+
languages:
|
|
25
|
+
- typescript
|
|
26
|
+
- javascript
|
|
27
|
+
match:
|
|
28
|
+
fact:
|
|
29
|
+
kind: security.unsafe-dirname-path-concat
|
|
30
|
+
bind: issue
|
|
31
|
+
emit:
|
|
32
|
+
finding:
|
|
33
|
+
category: security.filesystem
|
|
34
|
+
severity: medium
|
|
35
|
+
confidence: 0.88
|
|
36
|
+
tags:
|
|
37
|
+
- security
|
|
38
|
+
- filesystem
|
|
39
|
+
message:
|
|
40
|
+
title: Avoid string-built paths from `__dirname` or `__filename`
|
|
41
|
+
summary: "`${captures.issue.text}` builds a path by concatenating `__dirname` or `__filename`, which is fragile and risky."
|
|
42
|
+
remediation:
|
|
43
|
+
summary: Use `path.join`, `path.resolve`, or `import.meta.url` with validated segments instead of string concatenation.
|
|
44
|
+
|
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Upgrade DOM sanitization dependency
|
|
6
6
|
summary: DOM sanitization libraries should stay on patched versions before they are trusted for untrusted HTML.
|
|
7
7
|
rationale: Older sanitizer versions can miss browser parsing edge cases and leave XSS protections incomplete.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-1104
|
|
13
|
+
title: Use of Unmaintained Third Party Components
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: Vulnerable Dependency Management Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/Vulnerable_Dependency_Management_Cheat_Sheet.html
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- dependency
|
|
@@ -34,3 +43,4 @@ emit:
|
|
|
34
43
|
summary: "`${captures.issue.text}` is below the minimum sanitizer version Critiq treats as safe for untrusted HTML."
|
|
35
44
|
remediation:
|
|
36
45
|
summary: Upgrade the package, then keep HTML sanitizer usage behind a small reviewed wrapper.
|
|
46
|
+
|
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Upgrade Markdown rendering dependency
|
|
6
6
|
summary: Markdown renderers should stay on patched versions before rendering untrusted content.
|
|
7
7
|
rationale: Older Markdown renderer versions can expose unsafe HTML handling and parser edge cases.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-1104
|
|
13
|
+
title: Use of Unmaintained Third Party Components
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: Vulnerable Dependency Management Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/Vulnerable_Dependency_Management_Cheat_Sheet.html
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- dependency
|
|
@@ -34,3 +43,4 @@ emit:
|
|
|
34
43
|
summary: "`${captures.issue.text}` is below the minimum Markdown renderer version Critiq treats as safe for untrusted content."
|
|
35
44
|
remediation:
|
|
36
45
|
summary: Upgrade the package and keep untrusted Markdown rendering behind explicit sanitization.
|
|
46
|
+
|
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Avoid unsafe raw HTTP response output
|
|
6
6
|
summary: Raw response writers should not echo request data into HTML-capable responses without trusted escaping or sanitization.
|
|
7
7
|
rationale: Directly reflecting request data into HTML-capable response sinks creates reflected XSS and content injection risk.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-79
|
|
13
|
+
title: Cross-site Scripting (XSS)
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: Cross Site Scripting Prevention Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- xss
|
|
@@ -34,3 +43,4 @@ emit:
|
|
|
34
43
|
summary: "`${captures.issue.text}` writes request-controlled data into a raw HTTP response sink without a trusted HTML escaping model."
|
|
35
44
|
remediation:
|
|
36
45
|
summary: Escape or sanitize the data with a trusted helper, or switch to a response format that does not treat it as executable markup.
|
|
46
|
+
|
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Validate untrusted input before parser construction
|
|
6
6
|
summary: Untrusted input should be validated before it is used to construct sensitive parsers or runtime objects.
|
|
7
7
|
rationale: Passing untrusted text across regex or URL construction boundaries increases the risk of parser abuse, denial of service, and downstream policy bypass.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-20
|
|
13
|
+
title: Improper Input Validation
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: Input Validation Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- input-validation
|
|
@@ -33,3 +42,4 @@ emit:
|
|
|
33
42
|
summary: "`${captures.issue.text}` constructs a sensitive parser or runtime object from untrusted input without a trust-boundary check."
|
|
34
43
|
remediation:
|
|
35
44
|
summary: Validate, sanitize, or normalize the untrusted value before passing it into URL, RegExp, or similarly sensitive constructors.
|
|
45
|
+
|
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Constrain `res.sendFile` to a trusted root
|
|
6
6
|
summary: "`res.sendFile()` should not resolve filenames or options from request input without a trusted root."
|
|
7
7
|
rationale: Request-controlled file responses are a common path to path traversal and unintended local file disclosure.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-918
|
|
13
|
+
title: Server-Side Request Forgery (SSRF)
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: Server-Side Request Forgery
|
|
16
|
+
url: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- filesystem
|
|
@@ -34,3 +43,4 @@ emit:
|
|
|
34
43
|
summary: "`${captures.issue.text}` serves a request-controlled file path or options object without a trusted root."
|
|
35
44
|
remediation:
|
|
36
45
|
summary: Resolve files from an allowlisted directory and validate request input before it reaches `res.sendFile()`.
|
|
46
|
+
|
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Constrain `res.render()` trust boundaries
|
|
6
6
|
summary: Express view names should not cross into server-side rendering from untrusted input.
|
|
7
7
|
rationale: Untrusted template names can expose internal views, bypass intended route behavior, or widen a server-side template boundary.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-79
|
|
13
|
+
title: Cross-site Scripting (XSS)
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: Cross Site Scripting Prevention Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- express
|
|
@@ -34,3 +43,4 @@ emit:
|
|
|
34
43
|
summary: "`${captures.issue.text}` selects a server-side template across a trust boundary using untrusted input."
|
|
35
44
|
remediation:
|
|
36
45
|
summary: Resolve the template from an allowlist or fixed route mapping before calling `res.render()`.
|
|
46
|
+
|
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Avoid weak cipher algorithms and modes
|
|
6
6
|
summary: Cryptographic ciphers should use modern authenticated modes and approved algorithms.
|
|
7
7
|
rationale: Weak modes such as ECB and legacy ciphers such as DES or RC4 do not provide adequate confidentiality.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-327
|
|
13
|
+
title: Use of a Broken or Risky Cryptographic Algorithm
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: Cryptographic Storage Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- crypto
|
|
@@ -33,3 +42,4 @@ emit:
|
|
|
33
42
|
summary: "`${captures.issue.text}` uses a weak cipher algorithm or mode."
|
|
34
43
|
remediation:
|
|
35
44
|
summary: Use modern authenticated encryption such as AES-GCM with approved key sizes and IV handling.
|
|
45
|
+
|
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Avoid weak key-generation strength
|
|
6
6
|
summary: Key-generation helpers should use current minimum strengths for RSA, AES, and HMAC keys.
|
|
7
7
|
rationale: Weak modulus or key lengths make brute-force and cryptanalytic attacks more practical, even when the API itself is correct.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-327
|
|
13
|
+
title: Use of a Broken or Risky Cryptographic Algorithm
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: Cryptographic Storage Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- cryptography
|
|
@@ -34,3 +43,4 @@ emit:
|
|
|
34
43
|
summary: "`${captures.issue.text}` configures a key length or modulus size below the current minimum expected for production cryptography."
|
|
35
44
|
remediation:
|
|
36
45
|
summary: Use at least 2048-bit RSA keys and at least 128-bit AES or HMAC keys unless a clearly documented compatibility boundary requires otherwise.
|
|
46
|
+
|
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Require modern TLS minimum versions
|
|
6
6
|
summary: Transport clients should not explicitly allow SSLv3, TLS 1.0, or TLS 1.1.
|
|
7
7
|
rationale: Legacy TLS protocol floors weaken transport security and keep obsolete downgrade-compatible settings alive in production code.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-319
|
|
13
|
+
title: Cleartext Transmission of Sensitive Information
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: Transport Layer Security Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Security_Cheat_Sheet.html
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- transport
|
|
@@ -34,3 +43,4 @@ emit:
|
|
|
34
43
|
summary: "`${captures.issue.text}` explicitly allows an obsolete TLS or SSL protocol version."
|
|
35
44
|
remediation:
|
|
36
45
|
summary: Set `minVersion` to at least `TLSv1.2` or `TLSv1.3` and remove legacy `secureProtocol` values.
|
|
46
|
+
|
|
@@ -5,6 +5,15 @@ metadata:
|
|
|
5
5
|
title: Do not parse untrusted XML with permissive parsers
|
|
6
6
|
summary: parseString and similar XML helpers should not consume request-controlled payloads without hardening.
|
|
7
7
|
rationale: Untrusted XML can enable XXE-style parser abuse depending on the underlying implementation and parser flags.
|
|
8
|
+
detection:
|
|
9
|
+
kind: pattern
|
|
10
|
+
references:
|
|
11
|
+
- kind: cwe
|
|
12
|
+
id: CWE-502
|
|
13
|
+
title: Deserialization of Untrusted Data
|
|
14
|
+
- kind: owasp
|
|
15
|
+
title: Deserialization Cheat Sheet
|
|
16
|
+
url: https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html
|
|
8
17
|
tags:
|
|
9
18
|
- security
|
|
10
19
|
- xml
|
|
@@ -33,3 +42,4 @@ emit:
|
|
|
33
42
|
summary: "${captures.issue.text} parses XML that appears request-driven."
|
|
34
43
|
remediation:
|
|
35
44
|
summary: Disable external entities, validate payloads against a strict schema, and parse with a hardened XML configuration.
|
|
45
|
+
|