Skip to content

Improve data flow in the async package #19770

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Vasco-jofra
Copy link

This PR makes these changes:

  1. In FlowSummaryPrivate.qll: Added support for anyProperty content set in flow summaries:
    • Please confirm this is the correct way to support this. I needed this to find the async_.map({a: source()}, call_sink) case. Let me know if there's a better way to do it
    • As a note, I was also unable to use Element, which, according to the documentation, should select "an element of an array, iterator, or set object."
  2. In AsyncPackage.qll: Improve taint tracking through functions from the async package:
    • Improve tracking of the callback arguments
    • Implemented flow summaries for more robust taint tracking
    • Updated tests

@Vasco-jofra Vasco-jofra requested a review from a team as a code owner June 15, 2025 16:06
@github-actions github-actions bot added the JS label Jun 15, 2025
@Vasco-jofra
Copy link
Author

Also, let me know if there's a way to avoid having two DataFlow::SummarizedCallable when all I want to do is change the argument number. I found no way to get a reference to the call in the propagatesFlow predicate against which I could call getIteratorCallbackIndex.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant