Merge branch 'main' into angular-sources-sinks

This commit is contained in:
Paul Hodgkinson
2025-01-03 16:38:48 +00:00
committed by GitHub
3175 changed files with 99591 additions and 18429 deletions

View File

@@ -1,5 +1,5 @@
name: codeql/javascript-all
version: 2.2.0
version: 2.2.1-dev
groups: javascript
dbscheme: semmlecode.javascript.dbscheme
extractor: javascript

View File

@@ -30,7 +30,7 @@ module Cryptography {
class PasswordHashingAlgorithm = CryptoAlgorithms::PasswordHashingAlgorithm;
/**
* A data-flow node that is an application of a cryptographic algorithm. For example,
* A data flow node that is an application of a cryptographic algorithm. For example,
* encryption, decryption, signature-validation.
*
* Extend this class to refine existing API models. If you want to model new APIs,
@@ -40,7 +40,7 @@ module Cryptography {
/** Gets the algorithm used, if it matches a known `CryptographicAlgorithm`. */
CryptographicAlgorithm getAlgorithm() { result = super.getAlgorithm() }
/** Gets the data-flow node where the cryptographic algorithm used in this operation is configured. */
/** Gets the data flow node where the cryptographic algorithm used in this operation is configured. */
DataFlow::Node getInitialization() { result = super.getInitialization() }
/** Gets an input the algorithm is used on, for example the plain text input to be encrypted. */
@@ -61,14 +61,14 @@ module Cryptography {
/** Provides classes for modeling new applications of a cryptographic algorithms. */
module CryptographicOperation {
/**
* A data-flow node that is an application of a cryptographic algorithm. For example,
* A data flow node that is an application of a cryptographic algorithm. For example,
* encryption, decryption, signature-validation.
*
* Extend this class to model new APIs. If you want to refine existing API models,
* extend `CryptographicOperation` instead.
*/
abstract class Range extends DataFlow::Node {
/** Gets the data-flow node where the cryptographic algorithm used in this operation is configured. */
/** Gets the data flow node where the cryptographic algorithm used in this operation is configured. */
abstract DataFlow::Node getInitialization();
/** Gets the algorithm used, if it matches a known `CryptographicAlgorithm`. */
@@ -118,14 +118,14 @@ module Http {
/** Provides classes for modeling HTTP clients. */
module Client {
/**
* A data-flow node that makes an outgoing HTTP request.
* A data flow node that makes an outgoing HTTP request.
*
* Extend this class to refine existing API models. If you want to model new APIs,
* extend `Http::Client::Request::Range` instead.
*/
class Request extends DataFlow::Node instanceof Request::Range {
/**
* Gets a data-flow node that contributes to the URL of the request.
* Gets a data flow node that contributes to the URL of the request.
* Depending on the framework, a request may have multiple nodes which contribute to the URL.
*/
DataFlow::Node getAUrlPart() { result = super.getAUrlPart() }
@@ -150,14 +150,14 @@ module Http {
/** Provides a class for modeling new HTTP requests. */
module Request {
/**
* A data-flow node that makes an outgoing HTTP request.
* A data flow node that makes an outgoing HTTP request.
*
* Extend this class to model new APIs. If you want to refine existing API models,
* extend `Http::Client::Request` instead.
*/
abstract class Range extends DataFlow::Node {
/**
* Gets a data-flow node that contributes to the URL of the request.
* Gets a data flow node that contributes to the URL of the request.
* Depending on the framework, a request may have multiple nodes which contribute to the URL.
*/
abstract DataFlow::Node getAUrlPart();

View File

@@ -1,5 +1,5 @@
name: codeql/javascript-queries
version: 1.2.5
version: 1.2.6-dev
groups:
- javascript
- queries

View File

@@ -2,7 +2,7 @@ import javascript
import semmle.javascript.RestrictedLocations
import semmle.javascript.Lines
import semmle.javascript.endpoints.EndpointNaming as EndpointNaming
import testUtilities.InlineExpectationsTest
import utils.test.InlineExpectationsTest
import EndpointNaming::Debug
private predicate isIgnored(DataFlow::FunctionNode function) {

View File

@@ -1,5 +1,5 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
class GeneratorFlowConfig extends DataFlow::Configuration {
GeneratorFlowConfig() { this = "GeneratorFlowConfig" }

View File

@@ -1,5 +1,5 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
API::Node testInstance() { result = API::moduleImport("@example/test").getInstance() }

View File

@@ -1,6 +1,6 @@
import javascript
private import semmle.javascript.heuristics.AdditionalSources
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
class Taint extends TaintTracking::Configuration {
Taint() { this = "Taint" }

View File

@@ -1,3 +1,3 @@
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.security.dataflow.ReflectedXssQuery as ReflectedXss
import semmle.javascript.security.dataflow.ServerSideUrlRedirectQuery as ServerSideUrlRedirect

View File

@@ -1,5 +1,5 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
class BasicTaint extends TaintTracking::Configuration {
BasicTaint() { this = "BasicTaint" }

View File

@@ -1,5 +1,5 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.frameworks.data.internal.ApiGraphModels as ApiGraphModels
class TypeModelFromCodeQL extends ModelInput::TypeModel {

View File

@@ -1,5 +1,5 @@
import javascript
import testUtilities.InlineExpectationsTest
import utils.test.InlineExpectationsTest
class TestSourcesConfiguration extends TaintTracking::Configuration {
TestSourcesConfiguration() { this = "TestSources" }

View File

@@ -1,3 +1,3 @@
import javascript
import semmle.javascript.security.dataflow.TaintedPathQuery
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking

View File

@@ -1,3 +1,3 @@
import javascript
import semmle.javascript.security.dataflow.TemplateObjectInjectionQuery
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking

View File

@@ -1,5 +1,5 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.security.dataflow.CommandInjectionQuery as CommandInjection
import semmle.javascript.security.dataflow.IndirectCommandInjectionQuery as IndirectCommandInjection
import semmle.javascript.security.dataflow.ShellCommandInjectionFromEnvironmentQuery as ShellCommandInjectionFromEnvironment

View File

@@ -1,3 +1,3 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.security.dataflow.DomBasedXssQuery as DomXss

View File

@@ -1,3 +1,3 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.security.dataflow.ExceptionXssQuery as ExceptionXss

View File

@@ -1,3 +1,3 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.security.dataflow.ReflectedXssQuery as ReflectedXss

View File

@@ -1,3 +1,3 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.security.dataflow.StoredXssQuery as StoredXss

View File

@@ -1,3 +1,3 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.security.dataflow.UnsafeHtmlConstructionQuery as UnsafeHtmlConstruction

View File

@@ -1,3 +1,3 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.security.dataflow.UnsafeJQueryPluginQuery as UnsafeJqueryPlugin

View File

@@ -1,3 +1,3 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.security.dataflow.XssThroughDomQuery as ThroughDomXss

View File

@@ -1,4 +1,4 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.security.dataflow.SqlInjectionQuery as SqlInjection
import semmle.javascript.security.dataflow.NosqlInjectionQuery as NosqlInjection

View File

@@ -1,3 +1,3 @@
import javascript
import semmle.javascript.security.dataflow.UnsafeDeserializationQuery
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking

View File

@@ -1,2 +1,2 @@
query: Security/CWE-611/Xxe.ql
postprocess: testUtilities/InlineExpectationsTestQuery.ql
postprocess: utils/test/InlineExpectationsTestQuery.ql

View File

@@ -1,3 +1,3 @@
import javascript
import semmle.javascript.security.dataflow.ResourceExhaustionQuery
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking

View File

@@ -1,5 +1,5 @@
import javascript
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
import semmle.javascript.security.dataflow.PrototypePollutingAssignmentQuery
class Config extends ConsistencyConfiguration, Configuration {

View File

@@ -1,7 +1,7 @@
import javascript
import semmle.javascript.security.dataflow.RequestForgeryQuery as RequestForgery
import semmle.javascript.security.dataflow.ClientSideRequestForgeryQuery as ClientSideRequestForgery
import testUtilities.ConsistencyChecking
import utils.test.ConsistencyChecking
query predicate resultInWrongFile(DataFlow::Node node) {
exists(DataFlow::Configuration cfg, string filePattern |