Skip to content

Taintflow: Additional steps at sink#11539

Closed
MathiasVP wants to merge 8 commits into
github:mainfrom
MathiasVP:steps-to-sink
Closed

Taintflow: Additional steps at sink#11539
MathiasVP wants to merge 8 commits into
github:mainfrom
MathiasVP:steps-to-sink

Conversation

@MathiasVP
Copy link
Copy Markdown
Contributor

@MathiasVP MathiasVP commented Dec 2, 2022

Some background:
For C/C++ we really want to track pointer indirections (i.e., whatever p points to when p is a pointer) precisely. Intuitively, we can do this perfectly well by using ArrayContent to model flow to a pointer's indirection.

However, as we learned (the hard way) a year ago, this doesn't perform well. So instead, we're tracking *p precisely by allocating an SSA variable for each indirection. We then have taint flow from p to *p. However, we don't want taint flow from *p to p in general.

This PR:
This PR adds a predicate for specifying taint flow that is only applied at the very end when a TC of such steps can reach a sink.

The plan is to specify taint flow from *p to p using this predicate (which I'll do in a separate PR as it depends on another large C/C++ PR).

@aschackmull I'm curious to hear what your opinion on this is.

@aschackmull
Copy link
Copy Markdown
Contributor

Let's not do this.

@aschackmull aschackmull closed this Dec 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants