Benjamin Rodes
da10e6ca5b
Moving FlowAfterFree and UseAfterFree.qll as a general purpose lib.
2024-01-22 11:18:03 -05:00
Benjamin Rodes
833ef9d6d6
Further reorg of libraries and predicates to allow for more reusable and consistent libraries.
2024-01-18 11:17:24 -05:00
Benjamin Rodes
967526b285
Separating out use after free logic into a library and a ql so the query can be expanded easily.
2024-01-18 10:59:17 -05:00
Mathias Vorreiter Pedersen
39dafd6f6a
C++: Suggestions to #15343 ( #39 )
...
* C++: Change the interface of 'FlowAfterFree' so that the module it takes
a single module as a parameter.
* C++: Add another predicate to the module signature.
* C++: Convert the use-after-free and double-free libraries to use new interface.
* C++: Accept test changes.
2024-01-17 11:02:46 -05:00
Benjamin Rodes
a0ef7955b1
Updating FlowAfterFree to not enforce dominance of source/sink. DoubleFree and UseAfterFree queries now enforce dominance.
2024-01-16 13:15:36 -05:00
Mathias Vorreiter Pedersen
aafde4d18d
C++: Fix joins in 'cpp/use-after-free'.
2023-12-18 14:49:09 +01:00
Mathias Vorreiter Pedersen
cec785c8cc
C++: Respond to review comments.
2023-12-12 11:16:41 +00:00
Mathias Vorreiter Pedersen
7084dc1a88
C++: Promote 'cpp/use-after-free' and 'cpp/double-free' to Code Scanning.
2023-10-03 09:22:47 +02:00
Alex Eyers-Taylor
6b0ae0f312
CPP: Remove unned argument from use-after-free
2023-09-28 17:53:32 +01:00
Alex Eyers-Taylor
d0849311a6
CPP: Fix use after free FPs by elimnatiing freeing nodes rather than freeing expressions.
2023-09-20 18:47:57 +01:00
Mathias Vorreiter Pedersen
93f1a3bdb9
C++: Fix join in 'isUse'.
2023-07-05 15:24:40 +01:00
Mathias Vorreiter Pedersen
61aba4683f
C++: Fix bad self-join in 'cpp/use-after-free'.
...
Before:
```ql
[2023-04-18 09:17:24] Evaluated non-recursive predicate _ValueNumberingInternal#c9f42560::tvalueNumber#1#ff_10#join_rhs_project#Instruction#577b6a83::Initia__#loop_invariant_prefix@ae046923 in 3903ms (size: 130544).
Evaluated relational algebra for predicate _ValueNumberingInternal#c9f42560::tvalueNumber#1#ff_10#join_rhs_project#Instruction#577b6a83::Initia__#loop_invariant_prefix@ae046923 with tuple counts:
533787724 ~0% {2} r1 = JOIN ValueNumberingInternal#c9f42560::tvalueNumber#1#ff_10#join_rhs WITH ValueNumberingInternal#c9f42560::tvalueNumber#1#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1
130544 ~0% {2} r2 = JOIN r1 WITH project#Instruction#577b6a83::InitializeParameterInstruction#ff ON FIRST 1 OUTPUT Lhs.1, Lhs.0
return r2
```
After:
```ql
[2023-04-18 10:09:34] Evaluated non-recursive predicate _ValueNumberingInternal#c9f42560::tvalueNumber#1#ff_project#Instruction#577b6a83::InitializeParamete__#loop_invariant_prefix@eb90a6fk in 2ms (size: 18380).
Evaluated relational algebra for predicate _ValueNumberingInternal#c9f42560::tvalueNumber#1#ff_project#Instruction#577b6a83::InitializeParamete__#loop_invariant_prefix@eb90a6fk with tuple counts:
18380 ~0% {2} r1 = JOIN ValueNumberingInternal#c9f42560::tvalueNumber#1#ff WITH project#Instruction#577b6a83::InitializeParameterInstruction#ff ON FIRST 1 OUTPUT Lhs.1, Lhs.0
return r1
```
2023-04-18 10:14:45 +01:00
Mathias Vorreiter Pedersen
40dde93beb
C++: Fix FP and accept test changes.
2023-04-13 11:00:08 +01:00
Mathias Vorreiter Pedersen
23a7cd943f
C++: Fix missing result and accept test changes.
2023-04-13 10:50:46 +01:00
Mathias Vorreiter Pedersen
49cceb2901
C++: Fix joins.
2023-04-12 09:58:24 +01:00
Mathias Vorreiter Pedersen
725004a6fe
C++: Modernize use-after-free query using dataflow.
2023-04-11 15:21:21 +01:00
erik-krogh
a30c38f38c
CPP: make more alert messages follow the style-guide
2022-09-23 14:45:59 +02:00
Calum Grant
771e686946
Update security-severity scores
2021-06-15 13:25:17 +01:00
Calum Grant
a594afb828
Add security-severity metadata
2021-06-10 20:11:08 +01:00
Jonas Jensen
c1ed908834
C++: Use StackVariableReachability
...
This library is a drop-in replacement for
`LocalScopeVariableReachability`, so no changes are expected.
2019-11-19 11:30:59 +01:00
Robert Marsh
03f72d207c
C++: use Declaration.hasGlobalOrStdName
2019-10-02 11:37:37 -07:00
Jonas Jensen
5e789901df
C++: Remove all uses of hasQualifiedName/1
2019-05-03 10:37:48 +02:00
Geoffrey White
e395f5215f
CPP: Autoformat 'Critical'.
2019-04-23 14:45:27 +01:00
Pavel Avgustinov
b55526aa58
QL code and tests for C#/C++/JavaScript.
2018-08-02 17:53:23 +01:00