diff --git a/javascript/ql/src/semmle/javascript/dataflow/DataFlow.qll b/javascript/ql/src/semmle/javascript/dataflow/DataFlow.qll index fc3c41fe934..d95a963c4e7 100644 --- a/javascript/ql/src/semmle/javascript/dataflow/DataFlow.qll +++ b/javascript/ql/src/semmle/javascript/dataflow/DataFlow.qll @@ -496,7 +496,11 @@ module DataFlow { override string getPropertyName() { result = odp.getPropertyName() } override Node getRhs() { - odp.getAPropertyAttribute().writes(_, "value", result) + // not using `CallToObjectDefineProperty::getAPropertyAttribute` for performance reasons + exists(ObjectLiteralNode propdesc | + propdesc.flowsTo(odp.getPropertyDescriptor()) and + propdesc.hasPropertyWrite("value", result) + ) } override ControlFlowNode getWriteNode() { result = odp.getAstNode() }