Skip to content

Commit 5964daa

Browse files
committed
C#: Re-factor FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidation to use the new API.
1 parent a4ee353 commit 5964daa

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

csharp/ql/src/experimental/Security Features/JsonWebTokenHandler/JsonWebTokenHandlerLib.qll

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ class TokenValidationParametersPropertySensitiveValidation extends Property {
1919
}
2020

2121
/**
22+
* DEPRECATED: Use `FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidation` instead.
23+
*
2224
* A dataflow from a `false` value to a write sensitive property for `TokenValidationParameters`.
2325
*/
24-
class FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidation extends DataFlow::Configuration
26+
deprecated class FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidation extends DataFlow::Configuration
2527
{
2628
FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidation() {
2729
this = "FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidation"
@@ -37,6 +39,25 @@ class FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidation
3739
}
3840
}
3941

42+
/**
43+
* A dataflow configuration from a `false` value to a write sensitive property for `TokenValidationParameters`.
44+
*/
45+
private module FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidationConfig
46+
implements DataFlow::ConfigSig
47+
{
48+
predicate isSource(DataFlow::Node source) {
49+
source.asExpr().getValue() = "false" and
50+
source.asExpr().getType() instanceof BoolType
51+
}
52+
53+
predicate isSink(DataFlow::Node sink) {
54+
sink.asExpr() = any(TokenValidationParametersPropertySensitiveValidation p).getAnAssignedValue()
55+
}
56+
}
57+
58+
module FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidation =
59+
DataFlow::Global<FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidationConfig>;
60+
4061
/**
4162
* Holds if `assemblyName` is older than version `ver`
4263
*/

csharp/ql/src/experimental/Security Features/JsonWebTokenHandler/security-validation-disabled.ql

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,10 @@ import JsonWebTokenHandlerLib
1616
import semmle.code.csharp.commons.QualifiedName
1717

1818
from
19-
FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidation config,
2019
DataFlow::Node source, DataFlow::Node sink,
2120
TokenValidationParametersPropertySensitiveValidation pw, string qualifier, string name
2221
where
23-
config.hasFlow(source, sink) and
22+
FalseValueFlowsToTokenValidationParametersPropertyWriteToBypassValidation::flow(source, sink) and
2423
sink.asExpr() = pw.getAnAssignedValue() and
2524
pw.hasQualifiedName(qualifier, name)
2625
select sink, "The security sensitive property $@ is being disabled by the following value: $@.", pw,

0 commit comments

Comments
 (0)