Owen Mansel-Chan
fb050e8b43
Convert sqlx sql-injection sinks to MaD
2024-11-19 11:13:23 +00:00
Owen Mansel-Chan
d9d3e74e8c
Convert gogf/gf sql-injection sinks to MaD
2024-11-19 11:13:17 +00:00
Owen Mansel-Chan
1315a1e9ae
Upgrade and convert gorqlite sql-injection sinks to MaD
2024-11-19 11:13:13 +00:00
Owen Mansel-Chan
924467bebe
Convert squirrel sql-injection sinks to MaD (non-existent methods removed)
...
Various non-existent methods were modeled, and I couldn't find any
evidence that they used to exist. They aren't in the stubs or tests. I
have removed them.
2024-11-19 11:13:10 +00:00
Kevin Stubbings
eb3a76ddce
Merge branch 'github:main' into path-sanitizers
2024-11-12 16:03:00 -08:00
Kevin Stubbings
8744f158bd
New tests
2024-11-12 15:44:47 -08:00
Owen Mansel-Chan
13fb92ad3e
Rename getIntermediateEmbeddedType
2024-11-11 23:53:14 +00:00
Owen Mansel-Chan
d3a6452860
Add missing QLDoc
2024-11-11 23:50:09 +00:00
Owen Mansel-Chan
6af5b55d51
Refactor elementAppliesToQualifier
...
This is needed for performance when there are lots of embeddings.
2024-11-11 23:50:08 +00:00
Owen Mansel-Chan
3986dffc91
Keep methods and fields separate in SourceOrSinkElement
...
This improves performance.
2024-11-11 23:50:06 +00:00
Owen Mansel-Chan
b6a31b1def
Restrict to Methods
2024-11-11 23:50:04 +00:00
Owen Mansel-Chan
8abb0594c3
Combine two arms of newtype TSourceOrSinkElement
2024-11-11 23:48:32 +00:00
Owen Mansel-Chan
b2c2a94866
Accept review comment - doc clarification
2024-11-11 23:48:30 +00:00
Owen Mansel-Chan
39afb18ee4
Fix bad join order
2024-11-11 23:48:29 +00:00
Owen Mansel-Chan
80e8015e67
Inline late and remove manual magic
2024-11-11 23:48:27 +00:00
Owen Mansel-Chan
c2aee37210
getSyntacticQualifier -> getSyntacticQualifierBaseType
...
This improves performance.
2024-11-11 23:48:25 +00:00
Owen Mansel-Chan
ede3b9f033
Improve join order by making a separate predicate
2024-11-11 23:48:23 +00:00
Owen Mansel-Chan
e335737f38
Minor fixes to docs
2024-11-11 23:48:21 +00:00
Owen Mansel-Chan
adc946ec2b
Revert simplification to make tests pass
2024-11-11 23:48:19 +00:00
Chris Smowton
f61251cc24
Document elementAppliesToQualifier
2024-11-11 23:43:59 +00:00
Chris Smowton
7ffff43424
Improve comments
2024-11-11 23:43:57 +00:00
Chris Smowton
cd99bea9c1
Explain getSyntacticQual
2024-11-11 23:43:55 +00:00
Chris Smowton
ccc525abd3
Remove probably-unnecessary pragma
2024-11-11 23:43:53 +00:00
Chris Smowton
fd40662ad8
Rename getImplicitFieldReadInstruction
2024-11-11 23:43:51 +00:00
Chris Smowton
e290cecabd
Rename ensureCorrectTypeInfo and getSyntacticRecv
2024-11-11 23:43:49 +00:00
Chris Smowton
17a3429f1e
Correct hasTypeInfo doc comment
2024-11-11 23:43:47 +00:00
Chris Smowton
20e8d48869
Add comment noting that a Method or Field might have multiple SourceOrSinkElements
2024-11-11 23:43:45 +00:00
Chris Smowton
520acc4b1c
Further simplify interpretElement to avoid 'm' only being used on one side of a disjunction
2024-11-11 23:43:44 +00:00
Chris Smowton
d9126d384f
Simplify interpretElement
2024-11-11 23:43:42 +00:00
Chris Smowton
e90e313295
Simplify ensureCorrectTypeInfo
2024-11-11 23:43:40 +00:00
Owen Mansel-Chan
e46ec5a171
Fix MaD inheritance
2024-11-11 23:41:11 +00:00
Owen Mansel-Chan
91375d3a49
Update ExternalFlow.qll docs on subtypes column
2024-11-11 23:31:39 +00:00
Anders Schack-Mulligen
b556590ef8
Merge pull request #17663 from aschackmull/dataflow/speculative-flow
...
Dataflow: Add support for speculative taint flow.
2024-10-31 08:12:43 +01:00
Owen Mansel-Chan
f3abe549f3
Merge pull request #17794 from owen-mc/go/ast-viewer-typeparamdecl
...
Go: Fix type param declarations in AST viewer
2024-10-18 10:14:51 +01:00
Owen Mansel-Chan
7ed82068ef
Add type param decls to AST viewer hierarchy
2024-10-17 15:39:16 +01:00
Owen Mansel-Chan
1318504aa5
Add QLDoc
2024-10-17 12:06:46 +01:00
Owen Mansel-Chan
87992fac88
Revert change to hasEmbeddedField
2024-10-17 11:50:17 +01:00
Owen Mansel-Chan
5007666d6e
Add helper predicate lookThroughPointerType
2024-10-17 11:26:24 +01:00
Anders Schack-Mulligen
c20f12fa6c
Add qldoc.
2024-10-16 14:35:23 +02:00
Anders Schack-Mulligen
fae71756eb
Go: Add tentative support for speculative taint flow.
2024-10-16 14:35:21 +02:00
Anders Schack-Mulligen
c80627a3d3
Dataflow: add plumbing for adding provenance to state-steps.
2024-10-16 14:35:18 +02:00
Kevin Stubbings
374b13e1bb
Remove path sanitizer
2024-10-15 14:34:11 -07:00
Kevin Stubbings
1287f1befc
Address feedback
2024-10-15 14:01:14 -07:00
Owen Mansel-Chan
1626af0ae1
Merge pull request #17748 from owen-mc/go/join-order-fix/data-flow-node-gettype
...
Go: Fix bad join order in `SummarizedParameterNode.gettype`
2024-10-15 10:14:38 +01:00
Kevin Stubbings
d195273bf4
Add mux.Vars() and url.Path sanitizers
2024-10-14 19:49:29 -07:00
Edward Minnix III
ade5686e52
Merge pull request #17335 from egregius313/egregius313/go/dataflow/models/stdin
...
Go: Implement `stdin` models
2024-10-14 10:38:27 -04:00
Owen Mansel-Chan
1456ec2119
Fix bad join order in SummarizedParameterNode.gettype
...
Specifically the disjunct for this.getPos() != -1. Running on
uber/aresdb, before we had this:
2403 ~1% {3} r6 = JOIN `DataFlowUtil::SummarizedParameterNode.getPos/0#dispred#70a2aab4` WITH `DataFlowPrivate::FlowSummaryNode.getSummarizedCallable/0#dispred#e79ea9be` ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Rhs.1
9149774 ~5% {4} | JOIN WITH `Types::SignatureType.getParameterType/1#dispred#2c11bb7b_102#join_rhs` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.1, Rhs.2
923 ~9% {2} | JOIN WITH `Scopes::Callable.getType/0#dispred#55a0e6a2` ON FIRST 2 OUTPUT Lhs.2, Lhs.3
We add a binding pragma to make it not bind on this.getPos() until
necessary. After we have this:
2403 ~0% {3} r6 = JOIN `DataFlowUtil::SummarizedParameterNode.getPos/0#dispred#70a2aab4` WITH `DataFlowPrivate::FlowSummaryNode.getSummarizedCallable/0#dispred#e79ea9be` ON FIRST 1 OUTPUT Rhs.1, Lhs.0, Lhs.1
2373 ~0% {3} | JOIN WITH `Scopes::Callable.getType/0#dispred#55a0e6a2` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1
923 ~9% {2} | JOIN WITH `Types::SignatureType.getParameterType/1#dispred#2c11bb7b` ON FIRST 2 OUTPUT Lhs.2, Rhs.2
2024-10-13 14:27:51 +01:00
Chris Smowton
629a7a601d
Further optimise guardingFunction: remove redundant condition, and order guard -> guardFunction case to work backwards from interesting return sites, allowing us to go backwards not forwards through BasicBlock::dominates
2024-10-08 19:23:30 +01:00
Chris Smowton
d401891d30
copyedit
2024-10-08 19:23:29 +01:00
Chris Smowton
c79da8b2b5
Avoid pathological case where getExampleMethodName picks a very common method name
2024-10-08 19:23:28 +01:00