Page MenuHomePhabricator

Array shapes not tracked when linking parameters to methods
Closed, ResolvedPublic

Description

Not easy to fix because in foreach loops we just merge taint dependencies of the iterable and the key, without remembering that it's just the key and not the whole value.

  • General support for backpropagating shapes (base, dims, unknown)
  • Support for keys in shapes
  • Adjusting LoopVisitor (treat deps the same as Taintedness)

Event Timeline

Change 647839 had a related patch set uploaded (by Daimona Eaytoy; owner: Daimona Eaytoy):
[mediawiki/tools/phan/SecurityCheckPlugin@master] [WIP] Keys dependencies

https://gerrit.wikimedia.org/r/647839

Daimona renamed this task from False positives due to arraay keys and values being mixed together to False positives due to array keys and values being mixed together.Dec 11 2020, 12:27 AM

Note to self: array offsets might be affected by the same problem.

Daimona renamed this task from False positives due to array keys and values being mixed together to Array shapes not tracked when linking parameters to methods.Dec 11 2020, 4:30 PM

Change 671616 had a related patch set uploaded (by Daimona Eaytoy; owner: Daimona Eaytoy):
[mediawiki/tools/phan/SecurityCheckPlugin@master] Implement offset-wise backpropagation in some cases

https://gerrit.wikimedia.org/r/671616

Change 647839 abandoned by Daimona Eaytoy:
[mediawiki/tools/phan/SecurityCheckPlugin@master] [WIP] Shape dependencies

Reason:
Mostly done at Ib563bf8ab381074fa8dbc3cf9aaf940d5bbc7e06

https://gerrit.wikimedia.org/r/647839

Change 673339 had a related patch set uploaded (by Daimona Eaytoy; owner: Daimona Eaytoy):
[mediawiki/tools/phan/SecurityCheckPlugin@master] [WIP] Correctly backprop offset taintedness, part 2

https://gerrit.wikimedia.org/r/673339

Change 673551 had a related patch set uploaded (by Daimona Eaytoy; owner: Daimona Eaytoy):
[mediawiki/tools/phan/SecurityCheckPlugin@master] Improve offset backpropagation in method calls

https://gerrit.wikimedia.org/r/673551

Change 671616 merged by jenkins-bot:

[mediawiki/tools/phan/SecurityCheckPlugin@master] Implement offset-wise backpropagation for the EXECed statement

https://gerrit.wikimedia.org/r/671616

Change 673339 merged by jenkins-bot:

[mediawiki/tools/phan/SecurityCheckPlugin@master] Implement partial parameter dependencies

https://gerrit.wikimedia.org/r/673339

Change 673551 merged by jenkins-bot:

[mediawiki/tools/phan/SecurityCheckPlugin@master] Track partial link dependencies in `return` statements

https://gerrit.wikimedia.org/r/673551

Change 736010 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/tools/phan/SecurityCheckPlugin@master] [WIP] Keys links

https://gerrit.wikimedia.org/r/736010

Change 960752 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/tools/phan/SecurityCheckPlugin@master] Improve handling of key links

https://gerrit.wikimedia.org/r/960752

Change 736010 merged by jenkins-bot:

[mediawiki/tools/phan/SecurityCheckPlugin@master] Implement backpropagation of key links

https://gerrit.wikimedia.org/r/736010

Change 960752 merged by jenkins-bot:

[mediawiki/tools/phan/SecurityCheckPlugin@master] Improve handling of key links

https://gerrit.wikimedia.org/r/960752

Change 961243 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/tools/phan/SecurityCheckPlugin@master] Handle unknown offsets in getRelevantLinksForTaintedness

https://gerrit.wikimedia.org/r/961243

Change 961243 merged by jenkins-bot:

[mediawiki/tools/phan/SecurityCheckPlugin@master] Handle unknown offsets in getRelevantLinksForTaintedness

https://gerrit.wikimedia.org/r/961243

Daimona updated the task description. (Show Details)