Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
6 changes: 6 additions & 0 deletions go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl1.qll
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
6 changes: 6 additions & 0 deletions go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ deprecated private module Config implements FullStateConfigSig {
}

predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() }

predicate isAdditionalTypedLocalFlowStep(Node node1, Node node2) { none() }

predicate isAdditionalTypedLocalFlowStep(Node node1, DataFlowType t1, Node node2, DataFlowType t2) {
none()
}
}

deprecated private import Impl<Config> as I
Expand Down
8 changes: 8 additions & 0 deletions ruby/ql/consistency-queries/DataFlowConsistency.ql
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,14 @@ private module Input implements InputSig<RubyDataFlow> {
n.getASplit() instanceof Split::ConditionalCompletionSplit
)
}

predicate uniqueTypeExclude(Node n) {
n =
any(DataFlow::CallNode call |
Private::isStandardNewCall(call.getExprNode(), _, _) and
not call.getReceiver().asExpr().getExpr() instanceof ConstantReadAccess
)
}
}

import MakeConsistency<RubyDataFlow, RubyTaintTracking, Input>
4 changes: 4 additions & 0 deletions ruby/ql/lib/change-notes/2024-01-22-erb-render-flow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* Flow is now tracked through Rails `render` calls, when the argument is a `ViewComponent`. In this case, data flow is tracked into the accompanying `.html.erb` file.
1 change: 1 addition & 0 deletions ruby/ql/lib/codeql/ruby/Frameworks.qll
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@ private import codeql.ruby.frameworks.Yaml
private import codeql.ruby.frameworks.Sequel
private import codeql.ruby.frameworks.Ldap
private import codeql.ruby.frameworks.Jwt
private import codeql.ruby.frameworks.ViewComponent
2 changes: 1 addition & 1 deletion ruby/ql/lib/codeql/ruby/ast/Call.qll
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ class Call extends Expr instanceof CallImpl {
TCfgScope(result) = viableCallableLambda(c, _)
)
or
result = getTarget(this.getAControlFlowNode())
result = getTarget(TNormalCall(this.getAControlFlowNode()))
}

override AstNode getAChild(string pred) {
Expand Down
2 changes: 1 addition & 1 deletion ruby/ql/lib/codeql/ruby/dataflow/FlowSummary.qll
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ deprecated class RequiredSummaryComponentStack = Impl::Private::RequiredSummaryC
*/
private module LibraryCallbackSummaries {
private predicate libraryCall(CfgNodes::ExprNodes::CallCfgNode call) {
not exists(getTarget(call))
not exists(getTarget(TNormalCall(call)))
}

private DataFlow::LocalSourceNode trackLambdaCreation(TypeTracker t) {
Expand Down
Loading