Skip to content

Missing taint flow #19153

Open
Open
@Cheap-Cheer

Description

@Cheap-Cheer

Description of the false positive

Code samples or links to source code

URL to the alert on GitHub code scanning (optional)

I use the following query analysis code:


import python
import semmle.python.dataflow.new.DataFlow
import semmle.python.dataflow.new.TaintTracking
import semmle.python.dataflow.new.RemoteFlowSources
import semmle.python.Concepts
import semmle.python.ApiGraphs
module BackwardDataFlowConfiguration implements DataFlow::ConfigSig {
  predicate isSource(DataFlow::Node source) {
    source instanceof DataFlow::ExprNode
    and source.asExpr() instanceof Name
    and source.getLocation().getFile().getRelativePath() = "lollms/server/endpoints/lollms_personalities_infos.py"
    and exists(Name n | 
      n = source.asExpr() and n.getId() = "category")

    and source.getLocation().getStartLine() = 330

    }

  predicate isSink(DataFlow::Node sink) {
    sink instanceof DataFlow::Node
  }
}

module BackwardDataFlow = TaintTracking::Global<BackwardDataFlowConfiguration>;


from DataFlow::Node begin, DataFlow::Node end
where BackwardDataFlow::flow(begin, end)
select 
begin, 
"$@,$@"
,
begin.getLocation(),
"begin location"
,
end.getLocation(),
"end location"

this is the results:
Image
Starting from the category variable I specified, I tried to find all the nodes that it could potentially flow to. However, I only ended up with six results, which are marked in the figure above. Apparently, the package_full_path in the row where the sixth point is located is also a node that category could flow to, but the results don't reflect this. Why is that? Thank you for your answer!

Metadata

Metadata

Assignees

No one assigned

    Labels

    PythonquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions