From ddb5d92ef8a854711eb35ff6cef90963adfd412d Mon Sep 17 00:00:00 2001 From: Jami Cogswell Date: Tue, 30 May 2023 19:01:27 -0400 Subject: [PATCH] Shared: add source, summary, and neutral shared valid kinds --- .../csharp/dataflow/SharedModelValidation.qll | 35 +++++++++++++++++++ .../go/dataflow/SharedModelValidation.qll | 35 +++++++++++++++++++ .../java/dataflow/SharedModelValidation.qll | 35 +++++++++++++++++++ .../data/internal/SharedModelValidation.qll | 35 +++++++++++++++++++ .../data/internal/SharedModelValidation.qll | 35 +++++++++++++++++++ .../data/internal/SharedModelValidation.qll | 35 +++++++++++++++++++ .../swift/dataflow/SharedModelValidation.qll | 35 +++++++++++++++++++ 7 files changed, 245 insertions(+) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SharedModelValidation.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SharedModelValidation.qll index 948b361e4ad..8178dcf13d3 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SharedModelValidation.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SharedModelValidation.qll @@ -4,6 +4,8 @@ * Provides classes for validating kinds in models as data rows. * Such that we can share this logic across our CodeQL analysis of different languages. */ + +/** A valid models-as-data sink kind. */ class ValidSinkKind extends string { ValidSinkKind() { this = @@ -28,3 +30,36 @@ class ValidSinkKind extends string { ] } } + +/** A valid models-as-data source kind. */ +class ValidSourceKind extends string { + ValidSourceKind() { + this = + [ + // shared ALL languages + "remote", "local" + ] + } +} + +/** A valid models-as-data summary kind. */ +class ValidSummaryKind extends string { + ValidSummaryKind() { + this = + [ + // shared ALL languages + "taint", "value" + ] + } +} + +/** A valid models-as-data neutral kind. */ +class ValidNeutralKind extends string { + ValidNeutralKind() { + this = + [ + // shared ALL languages + "summary", "source", "sink" + ] + } +} diff --git a/go/ql/lib/semmle/go/dataflow/SharedModelValidation.qll b/go/ql/lib/semmle/go/dataflow/SharedModelValidation.qll index 948b361e4ad..8178dcf13d3 100644 --- a/go/ql/lib/semmle/go/dataflow/SharedModelValidation.qll +++ b/go/ql/lib/semmle/go/dataflow/SharedModelValidation.qll @@ -4,6 +4,8 @@ * Provides classes for validating kinds in models as data rows. * Such that we can share this logic across our CodeQL analysis of different languages. */ + +/** A valid models-as-data sink kind. */ class ValidSinkKind extends string { ValidSinkKind() { this = @@ -28,3 +30,36 @@ class ValidSinkKind extends string { ] } } + +/** A valid models-as-data source kind. */ +class ValidSourceKind extends string { + ValidSourceKind() { + this = + [ + // shared ALL languages + "remote", "local" + ] + } +} + +/** A valid models-as-data summary kind. */ +class ValidSummaryKind extends string { + ValidSummaryKind() { + this = + [ + // shared ALL languages + "taint", "value" + ] + } +} + +/** A valid models-as-data neutral kind. */ +class ValidNeutralKind extends string { + ValidNeutralKind() { + this = + [ + // shared ALL languages + "summary", "source", "sink" + ] + } +} diff --git a/java/ql/lib/semmle/code/java/dataflow/SharedModelValidation.qll b/java/ql/lib/semmle/code/java/dataflow/SharedModelValidation.qll index 948b361e4ad..8178dcf13d3 100644 --- a/java/ql/lib/semmle/code/java/dataflow/SharedModelValidation.qll +++ b/java/ql/lib/semmle/code/java/dataflow/SharedModelValidation.qll @@ -4,6 +4,8 @@ * Provides classes for validating kinds in models as data rows. * Such that we can share this logic across our CodeQL analysis of different languages. */ + +/** A valid models-as-data sink kind. */ class ValidSinkKind extends string { ValidSinkKind() { this = @@ -28,3 +30,36 @@ class ValidSinkKind extends string { ] } } + +/** A valid models-as-data source kind. */ +class ValidSourceKind extends string { + ValidSourceKind() { + this = + [ + // shared ALL languages + "remote", "local" + ] + } +} + +/** A valid models-as-data summary kind. */ +class ValidSummaryKind extends string { + ValidSummaryKind() { + this = + [ + // shared ALL languages + "taint", "value" + ] + } +} + +/** A valid models-as-data neutral kind. */ +class ValidNeutralKind extends string { + ValidNeutralKind() { + this = + [ + // shared ALL languages + "summary", "source", "sink" + ] + } +} diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/SharedModelValidation.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/SharedModelValidation.qll index 948b361e4ad..8178dcf13d3 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/SharedModelValidation.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/SharedModelValidation.qll @@ -4,6 +4,8 @@ * Provides classes for validating kinds in models as data rows. * Such that we can share this logic across our CodeQL analysis of different languages. */ + +/** A valid models-as-data sink kind. */ class ValidSinkKind extends string { ValidSinkKind() { this = @@ -28,3 +30,36 @@ class ValidSinkKind extends string { ] } } + +/** A valid models-as-data source kind. */ +class ValidSourceKind extends string { + ValidSourceKind() { + this = + [ + // shared ALL languages + "remote", "local" + ] + } +} + +/** A valid models-as-data summary kind. */ +class ValidSummaryKind extends string { + ValidSummaryKind() { + this = + [ + // shared ALL languages + "taint", "value" + ] + } +} + +/** A valid models-as-data neutral kind. */ +class ValidNeutralKind extends string { + ValidNeutralKind() { + this = + [ + // shared ALL languages + "summary", "source", "sink" + ] + } +} diff --git a/python/ql/lib/semmle/python/frameworks/data/internal/SharedModelValidation.qll b/python/ql/lib/semmle/python/frameworks/data/internal/SharedModelValidation.qll index 948b361e4ad..8178dcf13d3 100644 --- a/python/ql/lib/semmle/python/frameworks/data/internal/SharedModelValidation.qll +++ b/python/ql/lib/semmle/python/frameworks/data/internal/SharedModelValidation.qll @@ -4,6 +4,8 @@ * Provides classes for validating kinds in models as data rows. * Such that we can share this logic across our CodeQL analysis of different languages. */ + +/** A valid models-as-data sink kind. */ class ValidSinkKind extends string { ValidSinkKind() { this = @@ -28,3 +30,36 @@ class ValidSinkKind extends string { ] } } + +/** A valid models-as-data source kind. */ +class ValidSourceKind extends string { + ValidSourceKind() { + this = + [ + // shared ALL languages + "remote", "local" + ] + } +} + +/** A valid models-as-data summary kind. */ +class ValidSummaryKind extends string { + ValidSummaryKind() { + this = + [ + // shared ALL languages + "taint", "value" + ] + } +} + +/** A valid models-as-data neutral kind. */ +class ValidNeutralKind extends string { + ValidNeutralKind() { + this = + [ + // shared ALL languages + "summary", "source", "sink" + ] + } +} diff --git a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/SharedModelValidation.qll b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/SharedModelValidation.qll index 948b361e4ad..8178dcf13d3 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/SharedModelValidation.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/SharedModelValidation.qll @@ -4,6 +4,8 @@ * Provides classes for validating kinds in models as data rows. * Such that we can share this logic across our CodeQL analysis of different languages. */ + +/** A valid models-as-data sink kind. */ class ValidSinkKind extends string { ValidSinkKind() { this = @@ -28,3 +30,36 @@ class ValidSinkKind extends string { ] } } + +/** A valid models-as-data source kind. */ +class ValidSourceKind extends string { + ValidSourceKind() { + this = + [ + // shared ALL languages + "remote", "local" + ] + } +} + +/** A valid models-as-data summary kind. */ +class ValidSummaryKind extends string { + ValidSummaryKind() { + this = + [ + // shared ALL languages + "taint", "value" + ] + } +} + +/** A valid models-as-data neutral kind. */ +class ValidNeutralKind extends string { + ValidNeutralKind() { + this = + [ + // shared ALL languages + "summary", "source", "sink" + ] + } +} diff --git a/swift/ql/lib/codeql/swift/dataflow/SharedModelValidation.qll b/swift/ql/lib/codeql/swift/dataflow/SharedModelValidation.qll index 948b361e4ad..8178dcf13d3 100644 --- a/swift/ql/lib/codeql/swift/dataflow/SharedModelValidation.qll +++ b/swift/ql/lib/codeql/swift/dataflow/SharedModelValidation.qll @@ -4,6 +4,8 @@ * Provides classes for validating kinds in models as data rows. * Such that we can share this logic across our CodeQL analysis of different languages. */ + +/** A valid models-as-data sink kind. */ class ValidSinkKind extends string { ValidSinkKind() { this = @@ -28,3 +30,36 @@ class ValidSinkKind extends string { ] } } + +/** A valid models-as-data source kind. */ +class ValidSourceKind extends string { + ValidSourceKind() { + this = + [ + // shared ALL languages + "remote", "local" + ] + } +} + +/** A valid models-as-data summary kind. */ +class ValidSummaryKind extends string { + ValidSummaryKind() { + this = + [ + // shared ALL languages + "taint", "value" + ] + } +} + +/** A valid models-as-data neutral kind. */ +class ValidNeutralKind extends string { + ValidNeutralKind() { + this = + [ + // shared ALL languages + "summary", "source", "sink" + ] + } +}