github-actions[bot]
9b6faeac1d
use ATM model from training run classification_1659313637_335f5d4e_baz
2022-08-26 08:03:13 +00:00
Stephan Brandauer
9613f73116
enable new features for experimentation
2022-06-13 14:04:47 +02:00
Stephan Brandauer
fd4f509615
add stringConcatenatedWith feature to help the model learn that string concatenation leaves are usually not sinks
2022-06-13 14:04:47 +02:00
Stephan Brandauer
4ba7243b1f
add assignedToPropName feature to let the model improve number of false positives for XSS query
2022-06-13 14:04:46 +02:00
Stephan Brandauer
5346ade995
fix bug in InputArgumentIndex feature
2022-06-13 14:04:46 +02:00
Stephan Brandauer
ebedeaf543
performance fixes
2022-06-13 14:04:45 +02:00
Stephan Brandauer
ea1e44b035
use ? for unknown parameternames
2022-06-13 14:04:45 +02:00
Stephan Brandauer
250ed0831c
add documentations and rename a feature
2022-06-13 14:04:44 +02:00
Stephan Brandauer
314333f7ed
add functionInterfacesInFile and surroundingFunctionParameters features
2022-06-13 14:04:44 +02:00
Stephan Brandauer
3f6d663105
documentation for calleeImports ATM feature
2022-06-13 14:04:43 +02:00
Stephan Brandauer
962ed4a51b
documentation for new feature
2022-06-13 14:04:43 +02:00
Stephan Brandauer
2f1882bd3a
ATM: new feature to list all imports in an endpoint's file
2022-06-13 14:04:42 +02:00
Esben Sparre Andreasen
6505ad1724
use proper import instead of inlining
2022-06-13 14:00:37 +02:00
Esben Sparre Andreasen
e53ba21387
remove Input_ArgumentIndexAndAccessPathFromCallee
2022-06-13 14:00:36 +02:00
Esben Sparre Andreasen
ec1dc985ef
add docstring examples
2022-06-13 14:00:36 +02:00
Esben Sparre Andreasen
008024b3bb
address review comments
2022-06-13 14:00:35 +02:00
Esben Sparre Andreasen
5c4043dacb
Apply suggestions from code review
...
Co-authored-by: Henry Mercer <henrymercer@github.com >
2022-06-13 14:00:35 +02:00
Esben Sparre Andreasen
874da9d81c
fix semantic merge conflict
2022-06-13 14:00:34 +02:00
Esben Sparre Andreasen
8e0781d78a
rename new features
2022-06-13 14:00:34 +02:00
Esben Sparre Andreasen
937d6b1f3e
add more features
2022-06-13 14:00:33 +02:00
Esben Sparre Andreasen
7d4125010c
improve feature documentation
2022-06-13 14:00:33 +02:00
Esben Sparre Andreasen
a8dd55fe0f
improve feature tests with more cases
2022-06-13 14:00:32 +02:00
Esben Sparre Andreasen
57c88d5fd6
improve access path strings
2022-06-13 14:00:32 +02:00
Esben Sparre Andreasen
026dfaec97
support import in getSimpleAccessPath
2022-06-13 14:00:31 +02:00
Esben Sparre Andreasen
c523c4f96e
support await in getSimpleAccessPath
2022-06-13 14:00:31 +02:00
Esben Sparre Andreasen
ef5148bb80
avoid using new feautes by default
2022-06-13 14:00:30 +02:00
Esben Sparre Andreasen
13264e1119
add CompareFeatures.ql
2022-06-13 14:00:30 +02:00
Esben Sparre Andreasen
1e299e9bb8
add generic tests for features
2022-06-13 14:00:29 +02:00
Esben Sparre Andreasen
f322aaf344
Document EndpointFeatures.qll
2022-06-13 14:00:29 +02:00
Esben Sparre Andreasen
3c9e70341b
add ParameterAccessPathSimpleFromArgumentTraversal
2022-06-13 14:00:28 +02:00
Esben Sparre Andreasen
cfe20810bf
improve getSimpleAccessPath
2022-06-13 14:00:28 +02:00
Esben Sparre Andreasen
065002ad18
refactor calleeAccessPath feature to class
2022-06-13 14:00:27 +02:00
Stephan Brandauer
7778aa59ea
refactor getACallBasedTokenFeature to class-use
2022-06-13 14:00:27 +02:00
Esben Sparre Andreasen
8ef6f59737
Add CalleeAccessPathSimpleFromArgumentTraversal
2022-06-13 14:00:26 +02:00
Esben Sparre Andreasen
b4339e8ac5
refactor EndpointFeatures.ql to use classes
2022-06-13 14:00:26 +02:00
Erik Krogh Kristensen
caf1d45bc6
Merge pull request #9407 from erik-krogh/rubyFixJoin
...
RB: fix bad CP in the charPred for CipherOperation
2022-06-13 13:17:50 +02:00
Ian Lynagh
7c5a4909c6
Merge pull request #9468 from igfoo/igfoo/overloads
...
Kotlin: Put overloads together
2022-06-13 10:44:55 +01:00
Ian Lynagh
bdae353d4d
Merge pull request #9475 from igfoo/igfoo/builddir
...
Kotlin: Do each build in its own directory
2022-06-13 10:44:36 +01:00
Ian Lynagh
ae472f32de
Merge pull request #9453 from igfoo/igfoo/sam
...
Kotlin: Simplify samMember computation
2022-06-13 10:44:18 +01:00
Ian Lynagh
d8edc83ea2
Merge pull request #9451 from igfoo/igfoo/useValueParameter
...
Kotlin: Remove some redundant code
2022-06-13 10:43:54 +01:00
Ian Lynagh
72ea5973af
Merge pull request #9454 from igfoo/igfoo/extractFunction_idOverride
...
Kotlin: Remove unused idOverride argument to extractFunction
2022-06-13 10:43:31 +01:00
Mathias Vorreiter Pedersen
ae288332cc
Merge pull request #9511 from MathiasVP/fix-completion-for-patterns
...
Swift: Fix completion for "naked" patterns
2022-06-13 10:56:07 +02:00
Mathias Vorreiter Pedersen
32ef535ad7
Merge pull request #9430 from github/redsun82/swift-unknown-location
...
Swift: add `UnknownLocation`
2022-06-13 10:55:53 +02:00
Paolo Tranquilli
28d2fd7a22
Merge pull request #9416 from github/redsun82/swift-codegen-docs
...
Swift: document and partially simplify codegen
2022-06-13 10:50:16 +02:00
Mathias Vorreiter Pedersen
9d7afab185
Swift: Fix completion for patterns that occur outside 'CaseLabelItems'. Previously we'd add an unnecessary 'no-match' completion to these patterns even though they were always matching. This caused some confusing output in the graph tests in particular.
2022-06-13 09:24:18 +01:00
AlexDenisov
e1c7de98e8
Merge pull request #9427 from github/redsun82/swift-macos-arm-workaround
...
Swift: build x86_64 on arm64 macOS
2022-06-13 06:30:54 +02:00
Ian Lynagh
669c1faf29
Kotlin: Do each build in its own directory
...
This can make life easier when debugging.
2022-06-10 15:01:37 +01:00
Ian Lynagh
6055aaf048
Kotlin: Put overloads together
...
Makes it easier when reading the code.
The substituteTypeArguments functions aren't actually overloads, but I
think the same applies.
2022-06-09 17:43:11 +01:00
Paolo Tranquilli
8b52bb0c31
Swift: build x86_64 on arm64 macOS
...
This is a temporary workaround. At a later stage we will add
* a Swift/LLVM prebuilt package for arm64
* universal binary for the extractor
2022-06-08 10:25:38 +02:00
Ian Lynagh
5c9fea2283
Kotlin: Remove unused idOverride argument to extractFunction
2022-06-07 11:34:43 +01:00
Ian Lynagh
33e11b3014
Kotlin: Simplify samMember computation
2022-06-07 11:11:00 +01:00
Ian Lynagh
763f869e3f
Kotlin: Remove some redundant code
2022-06-06 20:49:36 +01:00
Paolo Tranquilli
a0acb19b68
Swift: remove redundant import
2022-06-03 15:28:48 +02:00
Paolo Tranquilli
01e1c13c29
Swift: add UnknownLocation
...
`getLocation()` will now exists for all entities. When there is no
valid location, the location will still not be emitted in the DB, but
on the QL side we will then assign a special `UnknownLocation` with
empty filename and 0 for line/column start/end.
This unknown location is currently emitted (with a unique `@` key) at
the start of every extraction, but we can move it elsewhere (and
possibly in a unique global trap file) at a later stage, possibly after
or when we rework the trap file strategy.
This should solve flakiness that was observed on the control flow tests,
which is probably caused by the `nodes` predicate in the `TestOutput`
class in `ControlFlowGraphImplShared.qll` not able to assign a proper
rank when the node does not have a location.
2022-06-03 14:59:22 +02:00
Tamás Vajk
4a025053cc
Merge pull request #9400 from tamasvajk/kotlin-fix-parcelize-symbols
...
Kotlin: Fix fake raw type symbols used by the Parcelize plugin
2022-06-03 13:34:22 +02:00
Rasmus Wriedt Larsen
07c22a857f
Merge pull request #9420 from RasmusWL/sync-go-inline
...
Go: Sync InlineExpectationsTest
2022-06-03 11:37:13 +02:00
Rasmus Wriedt Larsen
aa78ce3c75
Merge pull request #9413 from github/RasmusWL/query-list-cli-tags
...
Misc: query-list should run on `codeql-cli/*` tags
2022-06-03 11:36:52 +02:00
Rasmus Wriedt Larsen
cceeaef6bf
Merge pull request #9412 from github/RasmusWL/labeler-permissions
...
Misc: Set permissions for labeler Action
2022-06-03 11:36:37 +02:00
Tamas Vajk
0a484aadf1
Improve code quality based on PR review
2022-06-03 11:17:13 +02:00
Tamas Vajk
ba5cf5b1b2
Kotlin: Fix fake raw type symbols used by the Parcelize plugin
2022-06-03 11:17:13 +02:00
AlexDenisov
0a861ff616
Merge pull request #9410 from github/alexdenisov/swift-extract-only-primary-files
...
Swift: extract only primary files
2022-06-03 10:44:18 +02:00
Alex Denisov
14384b7696
Swift: switch back to references
2022-06-03 10:22:25 +02:00
Paolo Tranquilli
87234938ef
Swift: correct typo
2022-06-03 08:45:59 +02:00
Chris Smowton
04422eeaee
Merge pull request #9378 from porcupineyhairs/goJwtSign
...
Golang : Add query to detect JWT signing vulnerabilities
2022-06-02 20:53:03 +01:00
Chris Smowton
d5ac7190cc
Remove duplicate function
2022-06-02 17:02:54 +01:00
Chris Smowton
e54b29a846
Autoformat
2022-06-02 15:58:29 +01:00
Chris Smowton
602495df4c
Replace cases accidentally handled by CompareExprSanitizer with ReturnedAlongsideErrorSanitizerGuard
2022-06-02 15:53:41 +01:00
Chris Smowton
70c74bfcc0
Merge pull request #9418 from smowton/smowton/admin/test-java-kotlin-map-entries
...
Kotlin: add test for Java and Kotlin both extending Map.Entry
2022-06-02 15:52:59 +01:00
Robert Marsh
43907b6a30
Merge pull request #9409 from github/alexdenisov/swift-fix-ctor-dtor-tostring
...
Swift: fix ctor/dtor names in toString
2022-06-02 10:34:03 -04:00
Chris Smowton
b48a07e7b8
Tighten up CompareExprSanitizer
...
- Document
- Only actually consider comparisons
- Don't sanitize literals
2022-06-02 15:18:38 +01:00
Chris Smowton
3155771abe
Rename empty-string sanitizer to reflect what it actually does.
2022-06-02 15:10:02 +01:00
Chris Smowton
bfbc1d48b7
Simplify redundant sanitizer
2022-06-02 15:02:41 +01:00
Chris Smowton
3d63cec1e8
Autoformat
2022-06-02 14:45:28 +01:00
Porcupiney Hairs
361b7037c6
Include suggested changes from review.
2022-06-02 19:11:44 +05:30
Paolo Tranquilli
ede6bd8ffe
Swift: document and partially simplify codegen
...
This adds:
* a base `README.md` file to `codegen`
* module docstrings for the modules in `generators`
* help strings on all command line flags
Moreover some unneeded command line flags (`--namespace`,
`--include-dir` and `--trap-affix`) have been dropped.
2022-06-02 15:28:57 +02:00
AlexDenisov
2187bf5dde
Merge pull request #9419 from github/revert-9373-cfg-for-key-paths
...
Revert "Swift: Control-flow for key paths"
2022-06-02 15:26:07 +02:00
Rasmus Wriedt Larsen
0b486ade9b
Go: Autoformat
2022-06-02 15:12:13 +02:00
Rasmus Wriedt Larsen
aadf7aefb0
Go: Use new location in hasLocationInfo
2022-06-02 15:05:58 +02:00
Paolo Tranquilli
c9d109ddd3
Revert "Swift: Control-flow for key paths"
2022-06-02 14:55:52 +02:00
Rasmus Wriedt Larsen
3f857e113c
Go: Adjust hasActualResult overrides
2022-06-02 14:55:27 +02:00
Rasmus Wriedt Larsen
86caf747f3
Go: Sync InlineExpectationsTest
2022-06-02 14:54:51 +02:00
Chris Smowton
ebb52adba6
Kotlin: add test for Java and Kotlin both extending Map.Entry
2022-06-02 13:30:39 +01:00
Chris Smowton
8b1605a617
Merge pull request #9405 from smowton/smowton/fix/restore-wildcard-types
...
Kotlin: Introduce / restore implied wildcard types
2022-06-02 13:26:11 +01:00
Chris Smowton
efc534abe7
Add implied wildcards when extracting type parameter bounds
...
kotlinc seems to always insert wildcards where type parameter variance implies them, and ignores @JvmSuppressWildcards at least in 1.6.20.
2022-06-02 11:37:15 +01:00
Porcupiney Hairs
1ef42a11ad
Include suggested changes from review.
2022-06-02 16:04:29 +05:30
Rasmus Wriedt Larsen
a3c4a2c3e0
Misc: query-list should run on codeql-cli/* tags
...
Since go doesn't need to be cloned with the same tag, that makes this change much easier to implement in practice 💪
2022-06-02 11:57:39 +02:00
Chris Smowton
c1592cb1dc
Accept test changes
2022-06-02 10:31:35 +01:00
Chris Smowton
910bb51094
Extract WildcardTypeAccesses
...
Their absence became more noticeable now that more implicit wildcards are being produced.
2022-06-02 10:31:08 +01:00
Rasmus Wriedt Larsen
b646195d14
Misc: Set permissions for labeler Action
...
Like in the example on
https://github.com/actions/labeler#create-workflow
2022-06-02 10:27:48 +02:00
Tamás Vajk
d7b06aa2ba
Merge pull request #9401 from tamasvajk/kotlin-cleanup
...
Kotlin: Reuse `codeQlWithHasQuestionMark`
2022-06-02 10:24:17 +02:00
Anders Schack-Mulligen
7214990762
Merge pull request #9408 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2022-06-02 10:01:15 +02:00
Mathias Vorreiter Pedersen
927aceb420
Merge pull request #9373 from MathiasVP/cfg-for-key-paths
2022-06-02 08:32:29 +01:00
Paolo Tranquilli
3b57d4830b
Merge pull request #9402 from github/redsun82/swift-codegen-tweaks
...
Swift: merge `codegen` and `cppcodegen`
2022-06-02 09:02:47 +02:00
Paolo Tranquilli
c52d19d821
Merge pull request #9403 from redsun82/build-codeowners
...
CODEOWNERS: remove `BUILD.bazel` from codeql-ci-reviewers
2022-06-02 09:02:17 +02:00
Alex Denisov
6419af39f3
Swift: extract only primary files
...
While the (removed) comment is correct and the frontend can be called in
different modes, both `swift build` and `xcodebuild` always use
`-primary-files` when compiling Swift projects.
The other mode was present only within our test runner (`qltest.sh`), so
removing it and doing what the official build systems do simplifies our
code base.
Additionally, file archival is now a separate function/operation.
2022-06-02 08:57:03 +02:00
Alex Denisov
1dab01a31c
Swift: fix ctor/dtor names in toString
2022-06-02 08:28:46 +02:00
github-actions[bot]
ab4b7d8509
Add changed framework coverage reports
2022-06-02 00:18:51 +00:00
Erik Krogh Kristensen
536d226a6b
fix bad CP in the charPred for CipherOperation
2022-06-01 23:36:11 +02:00
Chris Smowton
dc7d07ff46
Extract correct implied wildcards for Java classes and @JvmSuppressWildcards-annotated entities
...
For Java classes this means following the structure of the underlying Java type to determine where the wildcard was really present and where the Java signature ruled it out. The annotation tracking simply means looking for @JvmSuppressWildcards on any surrounding class or function to turn off wildcard introduction by default.
2022-06-01 20:00:22 +01:00
Chris Smowton
37fce6ace9
Restore implicit wildcard types
...
The Kotlin compiler represents types like List<out CharSequence> internally as List<CharSequence> due to the fact that List's type parameter is covariant, and similarly Comparable<in CharSequence> where Comparable's type parameter is contravariant. However it restores use-site variance when emitting class files, so we must do the same thing for
compatability with Java code.
Note this is a partial solution because it will also add wildcards to Java .class files that *could* have a variance / wildcard but don't -- for example, a Java method could really take an invariant Comparable<CharSequence>, which is only achievable in Kotlin via the @JvmSuppressWildcards annotation. We also don't yet support
@JvmSuppressWildcards given on a surrounding class or function.
2022-06-01 19:58:40 +01:00
Paolo Tranquilli
0df8a9883a
CODEOWNERS: remove BUILD.bazel from codeql-ci-reviewers
2022-06-01 17:11:20 +02:00
Paolo Tranquilli
77f7fe8dbc
Swift: merge codegen and cppcodegen
...
Python code was simplified, and now a `--generate` option can be used
to drive what can be generated.
The extractor pack creation now will use an internally generated
dbscheme. This should be the same as the checked in one, but doing so
allows `bazel run create-extractor-pack` and `bazel run codegen` to be
run independently from one another, while previously the former had to
follow the latter in case of a schema change. This is the change that
triggered the above simplification, as in order for the two dbscheme
files to be identical, the first `// generated` line had to state the
same generator script.
2022-06-01 17:07:52 +02:00
Erik Krogh Kristensen
4b2b6fae88
Merge pull request #9395 from asgerf/js/fix-type-confusion
...
JS: Fix cartesian product in TypeConfusionThroughParameterTampering
2022-06-01 16:28:17 +02:00
Mathias Vorreiter Pedersen
7d962ac62b
Merge pull request #9397 from MathiasVP/use-autogenerated-parent-in-cfg-library
...
Swift: Use the autogenerated `getParent`
2022-06-01 14:45:43 +01:00
Mathias Vorreiter Pedersen
cb7be4f8ba
Merge pull request #9398 from github/redsun82/swift-getparent
...
Swift: simplify `GetImmediateParent.qll`
2022-06-01 14:35:20 +01:00
Mathias Vorreiter Pedersen
eabb5c7137
Swift: Respond to PR comments.
2022-06-01 14:34:22 +01:00
Paolo Tranquilli
3414028b1b
Swift: simplify GetImmediateParent.qll
2022-06-01 15:01:49 +02:00
Mathias Vorreiter Pedersen
db0498e38c
Swift: Use the autogenerated 'getParent' predicate in the CFG library.
2022-06-01 13:49:12 +01:00
Mathias Vorreiter Pedersen
ecce7f1f10
Merge pull request #9380 from github/redsun82/swift-getparent
...
Swift: generate `getParent` implementation
2022-06-01 13:48:48 +01:00
Paolo Tranquilli
6b90b2b05f
Swift: add children to IsPattern
2022-06-01 14:35:58 +02:00
Paolo Tranquilli
a4f97dd67a
Swift: add comment about unique in getImmediateParent
2022-06-01 14:32:59 +02:00
Paolo Tranquilli
bc0a32c26e
Swift: sort import list
...
Also fix parent tests with updated `statements.swift` file.
2022-06-01 14:32:59 +02:00
Paolo Tranquilli
3597efb728
Swift: rename to getImmediateParent and use hidden AST
2022-06-01 14:32:58 +02:00
Paolo Tranquilli
a894ba64c4
Swift: make test run in Python 3.8
2022-06-01 14:32:58 +02:00
Paolo Tranquilli
a86d0fc8a7
Swift: move getAChild to a separate module
2022-06-01 14:32:58 +02:00
Paolo Tranquilli
946e1f498a
Swift: generate getParent implementation
...
By explicitly marking children in the `schema.yml` file, an internal
`getAChild` predicate is implemented, that is in turn used in `AstNode`
to implement `getParent`.
This is yet to be used in the control flow library to replace the
hand-rolled implementation.
A further, more complex step is to use the same information to fully
generate the core implementation of `PrintAst` (including the
accessor string). This will be done later.
The `parent` tests use the same swift code as the extractor tests, and
this is currently enforced by `sync-files.py`. Notice that `qltest.sh`
had to be modified to deal with multiple files, which was not working
yet.
2022-06-01 14:32:58 +02:00
Ian Lynagh
6f9e9e889b
Merge pull request #9396 from igfoo/igfoo/labeler
...
CI: Add Kotlin and Go to labeler.yml
2022-06-01 13:30:22 +01:00
Ian Lynagh
ef4f09cf52
CI: Labeler: Don't label Kotlin for changenotes
...
They get labeled as Java. Given we aren't labeling shared QLL changes,
it makes sense not to label shared changenotes either.
2022-06-01 13:19:00 +01:00
Ian Lynagh
67c4850c61
CI: Add Kotlin and Go to labeler.yml
2022-06-01 12:01:08 +01:00
Ian Lynagh
e0d9317889
Merge pull request #9389 from igfoo/igfoo/function_loc_override
...
Kotlin: Remove extractFunction's location override
2022-06-01 11:46:22 +01:00
Ian Lynagh
703ced3fe9
Merge pull request #9390 from igfoo/igfoo/valueparam
...
Kotlin: extractValueParameter: Simplify typeSubstitution logic
2022-06-01 11:46:05 +01:00
Asger F
db0ac7b3b3
JS: Fix cartesian product in TypeConfusionThroughParameterTampering
2022-06-01 11:37:23 +02:00
Rasmus Wriedt Larsen
729cf79be7
Merge pull request #9351 from RasmusWL/django-file-read
...
Python: Support `read` on Django file
2022-06-01 10:45:26 +02:00
Anders Schack-Mulligen
9abd2259d3
Merge pull request #9381 from aschackmull/redos/perf
...
ReDoS: Improve performance in ExponentialBackTracking.qll.
2022-06-01 10:39:28 +02:00
Anders Schack-Mulligen
4f3751dfea
Merge pull request #9316 from hvitved/dataflow/edges-get-a-successor-consistency
...
Data flow: Make `PathGraph::edges/2` and `PathNode::getASuccessor/1` consistent
2022-06-01 10:38:25 +02:00
Michael Nebel
9cc10e4511
Merge pull request #9257 from michaelnebel/java/mad-commons-io-sha
...
Java: Update commons-io SHA for model regeneration and update models.
2022-06-01 09:46:30 +02:00
Robert Marsh
42ec6350eb
Merge pull request #9349 from MathiasVP/fix-inconsistent-cfg
...
Swift: Fix three CFG inconsistencies
2022-05-31 14:38:08 -04:00
Ian Lynagh
6be4afcf36
Kotlin: extractValueParameter: Simplify typeSubstitution logic
...
The type substitution is now done in the wrapper, so the worker doesn't
need to be passed typeSubstitution.
2022-05-31 19:23:54 +01:00
Porcupiney Hairs
ae2bc1b410
Include suggested changes from review.
2022-05-31 23:10:57 +05:30
Ian Lynagh
21d69ae819
Kotlin: Remove extractFunction's location override
...
It wasn't being used.
2022-05-31 17:43:25 +01:00
Mathias Vorreiter Pedersen
e2ddfcd437
Merge pull request #9387 from github/geoffw0-patch-2
...
Swift: Update readme
2022-05-31 16:34:17 +01:00
Robert Marsh
bd095abea4
Merge pull request #9388 from MathiasVP/cfg-for-yield
...
Swift: CFG for `yield`
2022-05-31 11:22:21 -04:00
Nick Rolfe
f417c12c5e
Merge pull request #9332 from github/post-release-prep/codeql-cli-2.9.3
...
Post-release preparation for codeql-cli-2.9.3
2022-05-31 16:17:50 +01:00
Mathias Vorreiter Pedersen
6386daf44c
Merge branch 'main' into fix-inconsistent-cfg
2022-05-31 15:59:53 +01:00
Robert Marsh
78fd0385fc
Merge pull request #9355 from MathiasVP/not-all-functions-throw
...
Swift: Only construct exceptional edges for calls that may throw
2022-05-31 10:56:31 -04:00
Mathias Vorreiter Pedersen
5f9d03f7c6
Swift: CFG for 'yield'.
2022-05-31 15:45:43 +01:00
Chris Smowton
9b7597bcdb
Merge pull request #9377 from porcupineyhairs/goPam
...
Golang : Add Query To Detect PAM Authorization Bugs
2022-05-31 15:42:45 +01:00
Geoffrey White
f598b26b03
Merge pull request #9384 from MathiasVP/qlpacks-for-swift
...
Swift: Add qlpacks
2022-05-31 15:39:20 +01:00
Mathias Vorreiter Pedersen
547cecf143
Merge pull request #9385 from MathiasVP/swift-extract-yield-stmt
...
Swift: Extract `yield` statements
2022-05-31 15:33:35 +01:00
Mathias Vorreiter Pedersen
a175f49759
Merge pull request #3 from geoffw0/swiftsrc
...
Swift: Add swift-security-and-quality, swift-security-extended packs.
2022-05-31 15:02:33 +01:00
Mathias Vorreiter Pedersen
b5d229d4d8
Apply suggestions from code review
...
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com >
2022-05-31 15:01:36 +01:00
Geoffrey White
01091ae1b9
Swift: Add codeql-suites.
2022-05-31 14:52:53 +01:00
Asger F
f70f769bb6
Merge pull request #9266 from asgerf/js/madman-prep
...
JS: Some fixes to support proper analysis of d.ts files
2022-05-31 15:43:40 +02:00
Mathias Vorreiter Pedersen
1d120486b4
Swift: Extract 'yield' statements.
2022-05-31 14:43:09 +01:00
Mathias Vorreiter Pedersen
9af31bab2a
Swift: Add qlpacks.
2022-05-31 13:59:44 +01:00
Tamás Vajk
7f5dcfaf0f
Merge pull request #9379 from tamasvajk/kotlin-android-specific-return-types
...
Kotlin: Change return type of Android specific `ConcurrentHashMap.keySet`
2022-05-31 14:00:36 +02:00
Porcupiney Hairs
e0f74a51ac
Include suggested changes from review.
2022-05-31 17:17:54 +05:30
Chris Smowton
d4f9c75315
Remove dead code
2022-05-31 11:14:36 +01:00
Chris Smowton
cea909f03e
Autoformat
2022-05-31 11:14:00 +01:00
CodeQL CI
9dd20f113d
Merge pull request #8603 from github/max-schaefer/better-amd-modelling
...
Approved by asgerf, erik-krogh
2022-05-31 03:10:32 -07:00
Chris Smowton
8b32eaf05c
Copyedits
2022-05-31 11:05:40 +01:00
Geoffrey White
ce3488b1b5
Update Swift readme
2022-05-31 10:56:28 +01:00
github-actions[bot]
ed2f3409bc
Post-release preparation for codeql-cli-2.9.3
2022-05-31 09:54:55 +00:00
Geoffrey White
de1fdd3bc9
Merge pull request #9382 from github/geoffw0-patch-2
...
Swift: Added Bazel install step.
2022-05-31 10:44:52 +01:00
Anders Schack-Mulligen
9212886767
Merge pull request #9286 from aschackmull/java/perf-customnullguard
...
Java: Improve customNullGuard performance.
2022-05-31 11:36:01 +02:00
Jeroen Ketema
ed9e798a81
Merge pull request #9362 from jketema/braced
...
C++: Introduce relation for tracking braced initializers
2022-05-31 11:29:10 +02:00
Geoffrey White
27968b60a5
Added Bazel install step.
2022-05-31 10:25:42 +01:00
Erik Krogh Kristensen
6cfd790cda
Merge pull request #9356 from erik-krogh/getRouting
...
JS: rewrite js/sensitive-get-query to use routing trees
2022-05-31 11:08:54 +02:00
Anders Schack-Mulligen
e36c59b285
ReDoS: Sync.
2022-05-31 11:04:42 +02:00
Anders Schack-Mulligen
e016feeb5c
ReDoS: Improve performance in ExponentialBackTracking.qll.
2022-05-31 11:04:03 +02:00
Jeroen Ketema
ce26124c01
Update cpp/ql/lib/change-notes/2022-05-30-braced-initializers.md
...
Co-authored-by: Mathias Vorreiter Pedersen <mathiasvp@github.com >
2022-05-31 10:42:31 +02:00
Jeroen Ketema
e3046fb05b
C++: Fix typo in upgrade script
2022-05-31 10:37:46 +02:00
Tamas Vajk
90fdd7eaf9
Kotlin: Reuse codeQlWithHasQuestionMark
2022-05-31 08:47:25 +02:00
Erik Krogh Kristensen
95fae8155e
fix wrong comment
...
Co-authored-by: Asger F <asgerf@github.com >
2022-05-31 08:38:03 +02:00
Porcupiney Hairs
5c5e978d30
Remove local data flow query
2022-05-31 03:53:02 +05:30
Tamas Vajk
89ffefd45e
Kotlin: Change return type of Android specific ConcurrentHashMap.keySet
2022-05-30 23:45:38 +02:00
Jeroen Ketema
bb93179c45
Merge pull request #9279 from github/felicitymay-patch-1
...
Fix typo in recent docs update
2022-05-30 23:31:37 +02:00
Porcupiney Hairs
bd1ddc177e
Golang : Add query to detect JWT signing vulnerabilities
...
Supersedes github/codeql-go#705
2022-05-31 01:56:59 +05:30
Porcupiney Hairs
ae2cc378e5
Golang : Add Query To Detect PAM Authorization Bugs
2022-05-31 01:28:55 +05:30
Henry Mercer
a661a0cc7e
Merge pull request #9376 from github/henrymercer/internal-repo-preserve-invariant
...
Clean merge to preserve submodule invariant of internal repo
2022-05-30 20:28:43 +01:00
Henry Mercer
76375f8d73
Merge remote-tracking branch 'origin/main' into henrymercer/semmle-code-noop-merge
2022-05-30 20:14:22 +01:00
Erik Krogh Kristensen
6a6a63e1aa
Merge pull request #9354 from erik-krogh/jsStages
...
JS: collapse a few small stages
2022-05-30 20:31:54 +02:00
Henry Mercer
b1faba9880
Merge pull request #9359 from github/henrymercer/migrate-to-codeql-workspace
...
Migrate `.codeqlmanifest.json` to `codeql-workspace.yml`
2022-05-30 18:20:11 +01:00
Chris Smowton
1708719fdf
Merge pull request #9343 from smowton/smowton/fix/align-kotlin-java-generic-types
...
Kotlin: extract methods defined on collections types with their Java signatures
2022-05-30 17:52:58 +01:00
Mathias Vorreiter Pedersen
b88fe1b2b4
Swift: Add test case and accept changes.
2022-05-30 17:05:06 +01:00
Mathias Vorreiter Pedersen
eed42a4e14
Swift: Make a new scope for each KeyPath expression.
2022-05-30 17:05:06 +01:00
Mathias Vorreiter Pedersen
cd1800ec7e
Merge pull request #9371 from MathiasVP/extract-key-path-application
...
Swift: Extract KeyPath applications
2022-05-30 17:02:42 +01:00
Henry Mercer
99e6d2a925
Run relevant tests when codeql-workspace.yml is updated
2022-05-30 15:54:52 +01:00
Henry Mercer
ca764576be
Swift: Update mention of manifest file in docs
2022-05-30 15:54:52 +01:00
Andrew Eisenberg
e544a9b94b
Update codeql-workspace.yml
...
Co-authored-by: Henry Mercer <henrymercer@github.com >
2022-05-30 15:53:48 +01:00
Andrew Eisenberg
18c5474431
Add comment to codeql-workspace.yml
2022-05-30 15:53:48 +01:00
Andrew Eisenberg
c5dd8aa703
Convert .codeqlmanifest.json to codeql-workspace.yml
...
The semantics are the same, except one is json, the other is
yaml.
2022-05-30 15:53:48 +01:00
Mathias Vorreiter Pedersen
9175354bbd
Swift: Add test and accept changes.
2022-05-30 15:51:49 +01:00
Mathias Vorreiter Pedersen
52f0b0d8d8
Swift: Fix extraction of roots in 'KeyPathExpr'.
2022-05-30 15:46:54 +01:00
Mathias Vorreiter Pedersen
21527f66e1
Swift: Extract KeyPath applications and KeyPathDot expressions.
2022-05-30 15:46:18 +01:00
Jeroen Ketema
a833e77c30
C++: Update DB scheme stats
2022-05-30 16:26:26 +02:00
Jeroen Ketema
38be04461e
C++: Introduce relation for tracking braced initializers
2022-05-30 16:26:19 +02:00
Rasmus Wriedt Larsen
b6cc438390
Merge pull request #9368 from RasmusWL/test-model-api-graphs
...
Python: Port test model to API graphs
2022-05-30 15:45:13 +02:00
Mathias Vorreiter Pedersen
d8916568b6
Merge branch 'main' into fix-inconsistent-cfg
2022-05-30 14:07:10 +01:00
Mathias Vorreiter Pedersen
9b17493b3b
Merge branch 'main' into not-all-functions-throw
2022-05-30 14:03:29 +01:00
Asger F
c188aa87c7
Merge branch 'main' into js/madman-prep
2022-05-30 15:03:14 +02:00
Mathias Vorreiter Pedersen
7ca01443e8
Merge pull request #9342 from rdmarsh2/rdmarsh2/swift/dataflow-global-flow
...
Swift: initial interprocedural data flow implementation
2022-05-30 13:54:56 +01:00
Rasmus Wriedt Larsen
420dea0792
Python: Fix example TestCase
2022-05-30 14:48:06 +02:00
Rasmus Wriedt Larsen
08e64ea1b4
Python: Remove contrived test-case example
2022-05-30 14:45:34 +02:00
yoff
2492744a9b
Merge pull request #8443 from haby0/py/CsvInjection
...
Python: Add CSV injection model
2022-05-30 14:31:28 +02:00
Rasmus Wriedt Larsen
a8b4b6a374
Python: Move test-modeling to API-graphs
...
Notice that although we loose the contrived examples in `test.py`, we do
gain support for real-world test-case construction, which seems worth
the tradeoff.
2022-05-30 14:13:06 +02:00
Rasmus Wriedt Larsen
a5dc4f430c
Python: Expand test-filter tests
...
With no virtual environment enabled, none of the third-party library
test case are found.
2022-05-30 14:11:50 +02:00
Mathias Vorreiter Pedersen
ef31aec29e
Swift: Autoformat.
2022-05-30 12:58:12 +01:00
Michael Nebel
61151d8980
Java: Update workflows and scripts usages to only generate summaries and sinks.
2022-05-30 13:53:44 +02:00
Mathias Vorreiter Pedersen
425d66e454
Update swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll
2022-05-30 12:52:48 +01:00
Mathias Vorreiter Pedersen
2106d48785
Swift: Add 'Argument.getIndex()' and use it in 'DataFlowDispatch'.
2022-05-30 12:51:29 +01:00
Mathias Vorreiter Pedersen
0d8a9458c6
Merge branch 'main' into rdmarsh2/swift/dataflow-global-flow
2022-05-30 12:46:06 +01:00
yoff
cd46f31cba
Merge branch 'main' into py/CsvInjection
2022-05-30 13:41:31 +02:00
Michael Nebel
72dd1a6ec9
Java: Generate models without sources.
2022-05-30 13:40:14 +02:00
Rasmus Wriedt Larsen
7a6646dcaf
Merge pull request #8883 from erik-krogh/pyMaD
...
Python: add MaD implementation
2022-05-30 13:31:07 +02:00
Michael Nebel
a0ae8b3a97
Merge pull request #9361 from michaelnebel/java/capturemodels-metadata
...
Java: Update capture models meta data.
2022-05-30 13:22:09 +02:00
Asger F
5f42866de3
Merge pull request #9318 from asgerf/js/type-confusion-parmaeter-tampering-barrier
...
JS: Fix FP in js/type-confusion-through-parameter-tampering
2022-05-30 12:52:37 +02:00
Erik Krogh Kristensen
b700972e6f
fix bad join in XmlParers::getAResult
2022-05-30 12:37:51 +02:00
Max Schaefer
820dfac48c
Manually write out a transitive closure.
2022-05-30 12:37:50 +02:00
Max Schaefer
ea70aaff57
Improve detection of UMD modules.
...
We previously required the `define` to appear directly as an expression statement, but there are common patterns where this is not the case.
2022-05-30 12:37:50 +02:00
Max Schaefer
47e425a184
Improve inVoidContext to take conditional expressions into account.
2022-05-30 12:37:50 +02:00
Erik Krogh Kristensen
adb40f9360
Merge pull request #9289 from erik-krogh/es2022
...
JS: Support the remaining of the finished ES2022 proposals
2022-05-30 12:27:19 +02:00
Erik Krogh Kristensen
ab28b0a690
Merge pull request #9348 from erik-krogh/polyRegSyntax
...
JS: use syntactically correct JS in poly-redos example
2022-05-30 12:26:04 +02:00
Erik Krogh Kristensen
e557d8839b
have the Instance token just be an alias for ReturnValue
2022-05-30 12:21:42 +02:00
Erik Krogh Kristensen
c7a8008897
Merge pull request #9235 from kaeluka/extractor-update-typescript-4_7
...
JS: Update the extractor to use TypeScript 4.7
2022-05-30 12:02:06 +02:00
Erik Krogh Kristensen
63e637503d
rewrite js/sensitive-get-query to use routing trees
2022-05-30 11:55:09 +02:00
Chris Smowton
49d9d8e7d6
Remove unused imports
2022-05-30 09:59:11 +01:00
Chris Smowton
2f436c800b
Merge pull request #9357 from smowton/smowton/fix/extension-properties-backing-fields
...
Kotlin: Disambiguate the names and trap labels of backing fields of extension properties
2022-05-30 09:55:02 +01:00
Asger F
cc42f2f824
Merge pull request #8606 from asgerf/js/api-graph-api
...
JS/Python/Ruby: Document how API graphs should be interpreted
2022-05-30 10:49:14 +02:00
Michael Nebel
815dff338d
Java: Update capture models meta data.
2022-05-30 09:44:39 +02:00
Michael Nebel
6a4a4cbbe4
Java: Re-generate commons-io models.
2022-05-30 08:16:58 +02:00
Michael Nebel
48da8dde6f
Java: Do not derive new write-file sinks.
2022-05-30 08:16:58 +02:00
Michael Nebel
ad4d8304ed
Java: Update hand written summary for writeLines as the generated one will be ignored.
2022-05-30 08:16:58 +02:00
Michael Nebel
7e5dd7a065
Java: Manually prefix kind column with generated.
2022-05-30 08:16:58 +02:00
Michael Nebel
0f33c3188c
Java: Re-arrange import pattern for generated models.
2022-05-30 08:16:58 +02:00
Michael Nebel
71bcae068e
Java: Avoid generating new regex-use sinks.
2022-05-30 08:16:58 +02:00
Michael Nebel
ff928bbb45
Java: Update commons-io SHA for model regeneration.
2022-05-30 08:16:58 +02:00
Michael Nebel
7d171f86ea
Merge pull request #9335 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2022-05-29 13:33:10 +02:00
github-actions[bot]
31c91a6faa
Add changed framework coverage reports
2022-05-29 00:16:56 +00:00
Chris Smowton
6ea87cd718
Accept test changes
2022-05-27 22:05:57 +01:00
Mathias Vorreiter Pedersen
c734646099
Swift: Accept test changes.
2022-05-27 17:42:51 +01:00
Mathias Vorreiter Pedersen
6d5504412a
Swift: Only create a 'ThrowCompletion' for functions that actually can throw.
2022-05-27 17:42:51 +01:00
Henry Mercer
013b4c8768
Swift: Update mention of manifest file in docs
2022-05-27 17:31:47 +01:00
Andrew Eisenberg
ce2bf8477c
Update codeql-workspace.yml
...
Co-authored-by: Henry Mercer <henrymercer@github.com >
2022-05-27 17:31:47 +01:00
Andrew Eisenberg
a82fea59e9
Add comment to codeql-workspace.yml
2022-05-27 17:31:47 +01:00
Andrew Eisenberg
7ab3a418be
Convert .codeqlmanifest.json to codeql-workspace.yml
...
The semantics are the same, except one is json, the other is
yaml.
2022-05-27 17:31:47 +01:00
Mathias Vorreiter Pedersen
b9809b4219
Swift: CFG for opening existentials.
2022-05-27 17:29:22 +01:00
Mathias Vorreiter Pedersen
02c73d3c1c
Swift: Fix implicit-this alert.
2022-05-27 17:25:56 +01:00
Chris Smowton
9ea139566d
Disambiguate the names and trap labels of backing fields of extension properties
2022-05-27 16:27:48 +01:00
Chris Smowton
6eb2935469
Merge pull request #9220 from smowton/smowton/fix/promoted-companion-object-fields
...
Associate certain companion object fields with the parent class
2022-05-27 16:19:10 +01:00
Erik Krogh Kristensen
62fd3fd90f
add test that we detect the used type variable in an infer type
2022-05-27 14:15:27 +00:00
Asger F
7e76e9a23b
Merge branch 'main' into js/type-confusion-parmaeter-tampering-barrier
2022-05-27 15:55:42 +02:00
Asger F
468a4df215
Update javascript/ql/lib/semmle/javascript/security/dataflow/TypeConfusionThroughParameterTamperingQuery.qll
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2022-05-27 15:55:25 +02:00
Chris Smowton
9c62b349ec
Autoformat
2022-05-27 13:36:55 +01:00
Erik Krogh Kristensen
8c12a7289f
collapse a few small stages
2022-05-27 13:19:06 +02:00
Mathias Vorreiter Pedersen
2dcd7e16b1
Merge pull request #9353 from MathiasVP/swift-extract-throwing-and-async
...
Swift: Extract `isThrowing` and `isAsync`
2022-05-27 12:14:02 +01:00
Chris Smowton
a204c742d8
Associate certain companion object fields with the parent class
...
Specifically `const`, `lateinit` and `@JvmField` properties get a static field which belongs to the containing class not the companion object, such that Java can address them via the containing class name rather than have to navigate a companion object pointer.
2022-05-27 11:52:39 +01:00
Chris Smowton
a0d5d414b4
Kotlin: extract methods defined on collections types with their Java signatures
...
Collection, List and Map all define various methods which are either made more generic in Kotlin (e.g. `remove(Object) -> remove(E)`, `containsAll(Collection<?>) -> containsAll(Collection<E>)`), or are made invariant (e.g. `addAll(Collection<? extends E>) -> addAll(Collection<E>)`). This substitutes the types back to their Java signatures,
thereby avoiding differing trap labels and duplicated methods for these types and their descendents.
2022-05-27 11:51:46 +01:00
Mathias Vorreiter Pedersen
6815e731d2
Swift: Add test and accept output
2022-05-27 11:48:20 +01:00
Mathias Vorreiter Pedersen
45bbd24355
Swift: Extract whether a function type is throwing or async.
2022-05-27 11:48:01 +01:00
Alex Ford
5d4473bb2a
Merge pull request #8845 from alexrford/ruby/rbi-lib
...
Ruby: Add partial support for working with RBI (Ruby Interface) files
2022-05-27 11:43:44 +01:00
Henry Mercer
da02bcc4c6
Merge pull request #9352 from github/revert-9314-aeisenberg/manifest
...
Revert "Convert `.codeqlmanifest.json` file to `codeql-workspace.yml`"
2022-05-27 11:40:25 +01:00
Tom Bolton
5830db786e
Merge pull request #9285 from github/codeql-ci/js-atm-new-release
...
JS: Bump version numbers of ML-powered packs after 0.3.0 release
2022-05-27 11:39:45 +01:00
Henry Mercer
4091ba758d
Revert "Convert .codeqlmanifest.json file to codeql-workspace.yml"
2022-05-27 11:29:48 +01:00
Alex Ford
919555d168
Merge pull request #9341 from alexrford/ruby/activerecordinstance-public
...
Ruby: Make `ActiveRecordInstance` public and fix some misidentifications
2022-05-27 11:21:58 +01:00
Chris Smowton
55513e0dbb
Merge pull request #9350 from smowton/smowton/admin/mention-gradle-daemon
...
Docs: Note that Gradle builds should use `--no-daemon`
2022-05-27 10:37:33 +01:00
Rasmus Wriedt Larsen
5924e88a86
Python: Support read on Django file
2022-05-27 11:18:26 +02:00
Mathias Vorreiter Pedersen
a63378308d
Merge pull request #9340 from geoffw0/nocheckbeforeunsafeputuser
...
C++: Improve cpp/linux-kernel-no-check-before-unsafe-put-user
2022-05-27 10:17:46 +01:00
Chris Smowton
0925cf5c22
Docs: Note that Gradle builds should use --no-daemon
2022-05-27 10:06:35 +01:00
Mathias Vorreiter Pedersen
7d36bc1c73
Swift: Fix CFG for 'foreach' statements.
2022-05-27 10:01:12 +01:00
Mathias Vorreiter Pedersen
73c189957d
Swift: Fix CFG inconsistencies with StmtConditions.
2022-05-27 09:58:36 +01:00
Arthur Baars
e3ef258b0e
Merge pull request #9287 from aibaars/instance-variable-flow-2
...
Ruby: flow through getters/setters
2022-05-27 10:49:20 +02:00
Mathias Vorreiter Pedersen
4383aef1d2
Merge pull request #9328 from MathiasVP/swift-to-string
...
Swift: Improve `toString` implementations for Ast classes
2022-05-27 09:34:34 +01:00
Mathias Vorreiter Pedersen
795c0110e5
Swift: Accept more test changes.
2022-05-27 09:17:52 +01:00
Erik Krogh Kristensen
fef87db739
use syntactically correct JS in poly-redos example
2022-05-27 10:08:30 +02:00
Mathias Vorreiter Pedersen
52a10c826a
Merge branch 'main' into swift-to-string
2022-05-27 09:06:36 +01:00
Andrew Eisenberg
57b9e6ee40
Merge pull request #9314 from github/aeisenberg/manifest
...
Convert `.codeqlmanifest.json` file to `codeql-workspace.yml`
2022-05-26 11:39:45 -07:00
Chris Smowton
f7d9238cda
Merge pull request #9331 from smowton/smowton/fix/kotlin-jar-file-entry-mtimes
...
Kotlin: use the same mtimes as Java
2022-05-26 19:37:16 +01:00
Robert Marsh
32e4c496f6
Swift: Dataflow through Phi nodes
2022-05-26 17:55:25 +00:00
Alex Ford
30f24697b4
Ruby: add missing qldoc
2022-05-26 18:50:57 +01:00
Robert Marsh
507fdef028
Swift: add more data flow tests
2022-05-26 17:33:12 +00:00
Andrew Eisenberg
b456334472
Update codeql-workspace.yml
...
Co-authored-by: Henry Mercer <henrymercer@github.com >
2022-05-26 10:21:55 -07:00
Andrew Eisenberg
5a1663efd3
Add comment to codeql-workspace.yml
2022-05-26 10:06:24 -07:00
Andrew Eisenberg
434259b296
Convert .codeqlmanifest.json to codeql-workspace.yml
...
The semantics are the same, except one is json, the other is
yaml.
2022-05-26 10:03:55 -07:00
Robert Marsh
81ac648065
Swift: flow out of calls via return statements
2022-05-26 16:58:53 +00:00
Alex Ford
4e0e4f9b5b
Ruby: make ActiveRecordInstance public
2022-05-26 17:54:02 +01:00
Alex Ford
fd8f1dc88f
Ruby: fix some misidentification of ActiveRecordModelInstantiations
2022-05-26 17:54:01 +01:00
Robert Marsh
ae6d16a40f
Swift: flow into callees via params
2022-05-26 16:53:42 +00:00
Robert Marsh
25c8b8141c
Swift: add params to CFG
2022-05-26 16:48:24 +00:00
Anna Railton
4cf3467ad7
Merge pull request #9338 from github/annarailton-patch-1
...
ATM: add `workflow_dispatch` to ATM JS tests
2022-05-26 14:25:48 +01:00
Geoffrey White
2bcf7e17c8
Understand syscalls better.
2022-05-26 14:01:09 +01:00
Anna Railton
202d2e037d
Add workflow_dispatch to Action
...
This is so we can trigger scheduled runs of these tests
2022-05-26 13:07:57 +01:00
Geoffrey White
e3ea7751d1
C++: Define sources better so that we catch all the test cases.
2022-05-26 12:44:17 +01:00
Robert Marsh
3213549a73
Merge pull request #9329 from MathiasVP/fixes-for-9291
...
Swift: Fixups for #9291
2022-05-26 07:25:24 -04:00
Chris Smowton
1f2248c1c8
Warn if jar file path not in expected form
2022-05-26 11:59:23 +01:00
Chris Smowton
3bd581a052
Kotlin: use the same mtimes as Java
...
Previously Kotlin's use of IntelliJ's VirtualFile interface meant we got the containing JAR file's mtime, not that of the individual file entry.
2022-05-26 11:59:23 +01:00
Tom Hvitved
ae1f5bbe25
Merge pull request #9334 from hvitved/ruby/dataflow/hash-splat-literal
2022-05-26 10:36:04 +02:00
Mathias Vorreiter Pedersen
c7cc8d2592
Swift: Fix copy-paste error.
2022-05-25 21:36:24 +01:00
Robert Marsh
da90440ea3
Merge pull request #9333 from rdmarsh2/rdmarsh2/swift/dataflow-local-flow
...
Swift: local dataflow
2022-05-25 15:59:50 -04:00
Robert Marsh
aa77ea6bef
Swift: minimal tests for interprocedural flow
2022-05-25 19:24:34 +00:00
Robert Marsh
9f64622f31
Swift: data flow configurations working
2022-05-25 19:23:43 +00:00
Robert Marsh
d326b3a91c
Swift: global dataflow WIP
2022-05-25 18:54:47 +00:00
Robert Marsh
bba3564187
Swift: adjust for changes in main
2022-05-25 18:52:47 +00:00
Robert Marsh
91b34d5e8f
Swift: make LambdaCallKind a TODO
2022-05-25 18:26:38 +00:00
Robert Marsh
765e1e1115
Swift: autoformat
2022-05-25 18:26:38 +00:00
Robert Marsh
cf22ade9f3
Swift: initial local data flow implementation
2022-05-25 18:26:37 +00:00
Robert Marsh
117a1ad2f4
Swift: DataFlow expr and parameter nodes
2022-05-25 18:26:37 +00:00
Tom Hvitved
b3ce2d4a2b
Ruby: Data flow for hash-splat expressions in hash literals
2022-05-25 19:55:28 +02:00
Tom Hvitved
47051ec8c9
Merge pull request #9320 from hvitved/ruby/hash-splat-flow
...
Ruby: Flow through hash-splat parameters
2022-05-25 19:31:09 +02:00
Nick Rolfe
d5c8188625
Merge pull request #9330 from github/nickrolfe/ruby-typos
...
Ruby: fix spelling errors
2022-05-25 17:56:50 +01:00
Erik Krogh Kristensen
d199173923
add a getAPrimaryQlClass predicate to ExpressionWithTypeArguments
2022-05-25 16:10:13 +00:00
Nick Rolfe
385e442f7f
Ruby: fix spelling errors
2022-05-25 16:38:48 +01:00
Mathias Vorreiter Pedersen
fafdb016fa
Swift: Fixup based on review comments in #9291 .
2022-05-25 16:10:44 +01:00
Mathias Vorreiter Pedersen
f17afa8a11
Swift: Accept test changes.
2022-05-25 16:01:42 +01:00
Mathias Vorreiter Pedersen
dc2ba5b410
Swift: Implement better 'toString' overrides for all AST nodes.
2022-05-25 15:59:45 +01:00
Mathias Vorreiter Pedersen
0b6e35a2a9
Merge pull request #9291 from MathiasVP/swift-ipa-the-cfg
...
Swift: CFG for property reads and writes
2022-05-25 15:57:32 +01:00
Erik Krogh Kristensen
361b2aa6bb
Merge pull request #9325 from erik-krogh/CWE-940
...
JS: add CWE-940 to js/missing-origin-check
2022-05-25 16:41:40 +02:00
Arthur Baars
033df767ef
Ruby: allow fields in flow summaries
2022-05-25 16:01:04 +02:00
Arthur Baars
af428a1ac2
Address comments
2022-05-25 16:01:04 +02:00
Arthur Baars
b0a97f9b01
Ruby: flow through getters/setters
2022-05-25 16:01:04 +02:00
Asger F
a60caced98
JS: Update TRAP output
2022-05-25 15:59:58 +02:00
Nick Rolfe
79fb9e8fd2
Merge pull request #9159 from github/nickrolfe/join_order_tweak
...
Ruby: tweak join order in `API::Impl::edge`
2022-05-25 14:57:24 +01:00
Asger F
5964be4463
Merge branch 'main' into js/type-confusion-parmaeter-tampering-barrier
2022-05-25 15:53:24 +02:00
Asger F
893f4ab8fb
Merge pull request #9288 from asgerf/js/resource-exhaustion-no-buffer.from
...
JS: Remove Buffer.from sink from js/resource-exhaustion
2022-05-25 15:51:54 +02:00
Tom Hvitved
ce4959287a
Ruby: Flow through hash-splat expressions
2022-05-25 15:40:08 +02:00
Nick Rolfe
8cd261af0e
Merge pull request #9324 from hvitved/dataflow/prohibits-use-use-fix-join
...
Data flow: Fix bad join in `prohibitsUseUseFlow`
2022-05-25 14:39:06 +01:00
Mathias Vorreiter Pedersen
80fad348bb
Swift: Implement CFG for property reads, writes, and observers.
2022-05-25 13:46:14 +01:00
Mathias Vorreiter Pedersen
67cc1b503b
Swift: Implement step 3 from the previous commit message.
2022-05-25 13:44:59 +01:00
Mathias Vorreiter Pedersen
1f4924f978
Swift: Create a custom "AST" version of the public CFG classes. This is
...
necessary because the CFG library doesn't support the following
two requirements simultaneously:
1. Traverse AST classes by virtual dispatch
2. Construct ControlFlowElements from non-AST classes
Because the CFG trees derive from the a base type that must be a
subtype of `ControlFlowElement`. So if we make `ControlFlowElement`
an IPA type, we cannot write:
```
class AssignTree extends PostOrderTree instanceof AssignExpr { ... }
```
because `AssignExpr` is not a subtype of PostOrderTree (since
PostOrderTree is now a subtype of the new IPA type).
To fix this, Tom suggested the following (which is implemented in
this PR):
1. Create a copy of the CFG tree classes (i.e., Pre/PostOrderTree,
LeafTree, etc.) and call them AstPreOrderTree/AstPostOrderTree,
AstLeafTree, etc.
2. For each tree AstTree from step 1, create a instance of the
internal CFG library's appropriate class.
3. In `ControlFlowGraphImpl`, proceed as normal with virtual
dispatch using `instanceof`, but extend the AstTree classes
from step 1 instead of the CFG's own tree classes.
This works because each AstTree implements one of the CFG
library's tree classes (as per step 2).
This commit performs step 1 and 2. Step 3 will be the next commit.
2022-05-25 13:39:48 +01:00
Mathias Vorreiter Pedersen
ab268514a1
Swift: Create a custom IPA type for 'ControlFlowElement's and fixup various type annotations.
2022-05-25 13:39:48 +01:00
Tom Hvitved
4f95abc4f6
Python: Update expected test output
2022-05-25 14:39:37 +02:00
Tom Hvitved
bcdef98392
Data flow: Sync files
2022-05-25 14:39:37 +02:00
Tom Hvitved
a4023b8a1d
Data flow: Make PathGraph::edges/2 and PathNode::getASuccessor/1 consistent
2022-05-25 14:39:37 +02:00
Tom Hvitved
42f05dadc4
Data flow: Sync files
2022-05-25 14:21:22 +02:00
Tom Hvitved
3d072abcff
Data flow: Fix bad join in prohibitsUseUseFlow
...
Before
```
Tuple counts for FlowSummaryImpl::Private::Steps::prohibitsUseUseFlow#1de78b88#ff@fdf8bdrq:
6099 ~0% {2} r1 = SCAN FlowSummaryImpl::Private::isParameterPostUpdate#1de78b88#fff OUTPUT In.2, In.0
787252695 ~2% {3} r2 = JOIN r1 WITH project#DataFlowImplCommon::ParamNode::isParameterOf#dispred#f0820431#fff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, true, Lhs.1
5360462712 ~0% {4} r3 = JOIN r2 WITH FlowSummaryImpl::Private::Steps::summaryLocalStep#1de78b88#ffb_021#join_rhs ON FIRST 2 OUTPUT Rhs.2, Lhs.2, true, Lhs.0
7132 ~2% {2} r4 = JOIN r3 WITH FlowSummaryImpl::Private::Steps::summaryLocalStep#1de78b88#ffb ON FIRST 3 OUTPUT Lhs.0, Lhs.3
5869 ~25% {1} r5 = JOIN r4 WITH DataFlowImplCommon::Cached::clearsContentCached#4f8df883#ff ON FIRST 1 OUTPUT Lhs.1
1263 ~9% {1} r6 = JOIN r4 WITH DataFlowImplCommon::Cached::expectsContentCached#4f8df883#ff ON FIRST 1 OUTPUT Lhs.1
7132 ~52% {1} r7 = r5 UNION r6
29593 ~26% {2} r8 = JOIN r7 WITH project#FlowSummaryImpl::Private::Steps::summaryArgParam0#1de78b88#ffff#2_201#join_rhs ON FIRST 1 OUTPUT Rhs.1, Rhs.2
return r8
```
After
```
Tuple counts for FlowSummaryImpl::Private::Steps::prohibitsUseUseFlow#1de78b88#ff@aa7a37lj:
6099 ~4% {3} r1 = SCAN FlowSummaryImpl::Private::isParameterPostUpdate#1de78b88#fff OUTPUT In.0, true, In.2
8434 ~5% {2} r2 = JOIN r1 WITH FlowSummaryImpl::Private::Steps::summaryLocalStep#1de78b88#ffb_120#join_rhs ON FIRST 2 OUTPUT Rhs.2, Lhs.2
5869 ~5% {3} r3 = JOIN r2 WITH DataFlowImplCommon::Cached::clearsContentCached#4f8df883#ff ON FIRST 1 OUTPUT Lhs.0, true, Lhs.1
1278 ~6% {3} r4 = JOIN r2 WITH DataFlowImplCommon::Cached::expectsContentCached#4f8df883#ff ON FIRST 1 OUTPUT Lhs.0, true, Lhs.1
7147 ~6% {3} r5 = r3 UNION r4
7147 ~57% {2} r6 = JOIN r5 WITH FlowSummaryImpl::Private::Steps::summaryLocalStep#1de78b88#ffb_120#join_rhs ON FIRST 2 OUTPUT Rhs.2, Lhs.2
5892 ~26% {1} r7 = JOIN r6 WITH project#DataFlowImplCommon::ParamNode::isParameterOf#dispred#f0820431#fff ON FIRST 2 OUTPUT Lhs.0
29589 ~26% {2} r8 = JOIN r7 WITH project#FlowSummaryImpl::Private::Steps::summaryArgParam0#1de78b88#ffff#2_201#join_rhs ON FIRST 1 OUTPUT Rhs.1, Rhs.2
return r8
```
2022-05-25 14:21:22 +02:00
Erik Krogh Kristensen
ed907f6f63
add CWE-940 to js/missing-origin-check
2022-05-25 14:15:48 +02:00
yoff
a726340bb3
Merge branch 'main' into py/CsvInjection
2022-05-25 13:18:46 +02:00
Anders Schack-Mulligen
deddc52666
Merge pull request #9317 from github/release-prep/2.9.3
...
Release preparation for version 2.9.3
2022-05-25 12:43:36 +02:00
Tom Hvitved
a7b39ebeca
Ruby: Flow through hash-splat parameters
2022-05-25 12:37:22 +02:00
Erik Krogh Kristensen
efa895e912
update expected output
2022-05-25 10:33:39 +00:00
Erik Krogh Kristensen
f38d1f9a4e
merge main into ts47
2022-05-25 10:13:25 +00:00
Nick Rolfe
134cf4e0e1
Ruby: tweak join order in API::Impl::edge
2022-05-25 10:54:43 +01:00
Tom Bolton
67572bb770
Merge pull request #9193 from github/tombolton/add-counting-queries
...
JS: Add individual per-security-query counting queries
2022-05-25 10:02:28 +01:00
Erik Krogh Kristensen
009ba4c280
update query id to the updated id
2022-05-25 10:55:33 +02:00
yoff
aadfa8eacd
Merge branch 'main' into py/CsvInjection
2022-05-25 10:43:08 +02:00
Michael Nebel
e9d371c650
Merge pull request #8600 from michaelnebel/csharp/dotnetruntimemodels
...
C#: Dotnet Runtime models.
2022-05-25 10:33:09 +02:00
AlexDenisov
8b131adeb1
Merge pull request #9283 from github/alexdenisov/swift-integration-tests
...
Swift: add integration tests
2022-05-25 10:04:08 +02:00
Anders Schack-Mulligen
673355df65
Fix markdown lists
2022-05-25 10:02:48 +02:00
Asger F
877a9d8bcc
JS: Fix FP in js/type-confusion-through-parameter-tampering
2022-05-25 09:53:46 +02:00
github-actions[bot]
1f1b364feb
Release preparation for version 2.9.3
2022-05-25 07:46:48 +00:00
Asger F
4913a7a911
Merge branch 'main' into js/resource-exhaustion-no-buffer.from
2022-05-25 09:25:00 +02:00
Michael Nebel
9cab92b16f
C#: Update flow summaries test after rebase. The rebase included a fix to the isAutoGenerated predicate, which means that a summary is only considered autogenerated, if no hand-written version exist. This affects the printing as well.
2022-05-25 08:28:15 +02:00
Michael Nebel
5b405bb4cf
C#: Update FlowSummaries test with generated printing (needed due to rebase).
2022-05-25 08:28:15 +02:00
Michael Nebel
ba7238d6e2
C#: Update XML Injectiont test output after rebase (query has been turned into a path-problem and the output is now affected by the added summaries for NameValueCollection).
2022-05-25 08:28:15 +02:00
Michael Nebel
75532432af
C#: Update flow summaries test (note that the test doesn't correctly print the generated flag at the moment).
2022-05-25 08:28:15 +02:00
Michael Nebel
c8ede58704
C#: Flow summaries has now been added for Exception stack trace, but not for ToString. The latter will be encoded as an extra taintstep in the analysis. To reduce noise for all uses of an exception itself an isSanitizerIn is introduced.
2022-05-25 08:28:15 +02:00
Michael Nebel
4d6d1c8376
C#: Since NameValueCollection now has a flow summary for the string indexer it is no longer consider an unsafe external api, which is why it has disappared from the result.
2022-05-25 08:28:14 +02:00
Michael Nebel
ee027f845c
C#: Since NameValueCollection now has a flow summary for the indexer it is considered a SafeExternalApiCallable and will thus not be included in the result of the test.
2022-05-25 08:28:14 +02:00
Michael Nebel
268230ef19
C#: Add QlDoc to the Generated file.
2022-05-25 08:28:14 +02:00
Michael Nebel
e2d6cd20c7
C#: Update tests due to new summaries for ProcessStartInfo.
2022-05-25 08:28:14 +02:00
Michael Nebel
9b8636aa23
C#: Update test because we now have a flow summary the string indexer for NameValueCollection.
2022-05-25 08:28:14 +02:00
Michael Nebel
d9c7ba471d
C#: Update taint steps test as the generated models now include a model for the getters for KeyValuePair (we only had manual summaries for the constructor).
2022-05-25 08:28:14 +02:00
Michael Nebel
f8e729025f
C#: Add generated Dotnet Runtime summary models that allows to up two reads and two stores and update flow summaries test.
2022-05-25 08:28:14 +02:00
Michael Nebel
3b62b45ea8
C#: Add generated framework models to ExternalFlow.
2022-05-25 08:28:14 +02:00
Tom Hvitved
efda248bea
Merge pull request #9315 from michaelnebel/swift/dataflowsync
...
Swift: Sync changes to DataFlowImplCommon from PR #9024 .
2022-05-25 08:24:15 +02:00
Michael Nebel
5f3a039c65
Swift: Sync changes to DataFlowImplCommon from PR #9024 .
2022-05-25 08:05:22 +02:00
Erik Krogh Kristensen
2da001ebd7
bump TypeScript version to stable release
2022-05-24 22:55:59 +02:00
Robert Marsh
8cc509e5e9
Merge pull request #9275 from MathiasVP/swift-add-dataflow-lib
...
Swift: Add shared dataflow library
2022-05-24 15:11:42 -04:00
Robert Marsh
54ac36718c
Merge pull request #9284 from MathiasVP/more-cfg-for-exprs
...
Swift: CFG for `TypeExpr`, `MemberRefExpr`, `DefaultArgumentExpr` and `ForceValueExpr`
2022-05-24 14:51:26 -04:00
Chris Smowton
98ef22358e
Merge pull request #9213 from smowton/smowton/fix/inherited-single-abstract-method
...
Kotlin: fix implementation of SAM classes that inherit their abstract method
2022-05-24 18:22:55 +01:00
Ian Lynagh
2e1db7ddcd
Merge pull request #9290 from igfoo/igfoo/kotlin1.7
...
Kotlin: Add support for the 1.7 RC
2022-05-24 16:16:19 +01:00
Nick Rolfe
dd52a70454
Merge pull request #9292 from github/nickrolfe/cfg_scope
...
Ruby: rename CfgScope::Range_ to CfgScopeImpl
2022-05-24 15:53:16 +01:00
Michael Nebel
daace0fe68
Merge pull request #9270 from michaelnebel/csharp/summarized-callable-fix
...
C#: Summarized callable
2022-05-24 16:36:44 +02:00
Jeroen Ketema
1075a141a4
Merge pull request #9293 from jketema/query-typo
...
C++: Fix missing closing quote in `cpp/potential-buffer-overflow` qldoc
2022-05-24 16:16:57 +02:00
Ian Lynagh
81e876a27b
Kotlin: Update build.gradle to include the 1.7.0 RC
2022-05-24 15:14:17 +01:00
Ian Lynagh
d7c17b2bac
Kotlin: Add more withHasQuestionMark.kt's
2022-05-24 15:12:29 +01:00
Ian Lynagh
398f86bcc3
Kotlin: Build system tweaks
2022-05-24 15:11:35 +01:00
Ian Lynagh
f46a7c0a0f
Kotlin: Add 1.7.0 RC
2022-05-24 15:11:13 +01:00
Ian Lynagh
846edf825a
Kotlin: Use withHasQuestionMark wrapper
2022-05-24 15:10:39 +01:00
Ian Lynagh
807f03a878
Kotlin: Add withHasQuestionMark for older releases
2022-05-24 15:10:39 +01:00
Ian Lynagh
4448ba1111
Kotlin: Add compatibility source for 1.7.0-RC
2022-05-24 15:10:39 +01:00
Ian Lynagh
078733c5fe
Merge pull request #9263 from tamasvajk/kotlin-versions
...
Kotlin: Add support for versions 1.5.0, 1.5.10, and 1.5.21
2022-05-24 15:10:09 +01:00
tombolton
91fa17a05e
simplify imports in counting queries
2022-05-24 15:02:26 +01:00
tombolton
7e32614c25
refactor counting code into a library
2022-05-24 15:02:26 +01:00
tombolton
33964383d7
add individual per-security-query counting queries
2022-05-24 15:02:26 +01:00
Jeroen Ketema
f93fde564b
C++: Fix missing closing quote in cpp/potential-buffer-overflow qldoc
2022-05-24 15:36:37 +02:00
Nick Rolfe
4b4a15c1b6
Ruby: rename CfgScope::Range_ to CfgScopeImpl
2022-05-24 14:34:44 +01:00
Chris Smowton
edb678f7d0
Rename function
2022-05-24 14:15:40 +01:00
Tom Hvitved
728ccafe2b
Merge pull request #9024 from hvitved/dataflow/content-flow-lib
...
Data flow: Introduce `ContentDataFlow.qll`
2022-05-24 15:09:16 +02:00
Tom Hvitved
d61f6453d0
Merge pull request #8942 from hvitved/ruby/dataflow/hashes
...
Ruby: Data-flow through hashes
2022-05-24 14:48:55 +02:00
Asger F
ced1d21405
JS: Add getters for DeclarationSpace members
2022-05-24 14:30:36 +02:00
Asger F
039a7ba828
JS: Handle .d.mts files when generating module bindings
2022-05-24 14:30:36 +02:00
Asger Feldthaus
a5f2c949d3
JS: Add UnionOrIntersectionTypeExpr
2022-05-24 14:30:36 +02:00
Asger F
ec55c84abf
JS: Whitespace fixes in ASTExtractor
2022-05-24 14:30:36 +02:00
Asger F
d7e3e9e5db
JS: Fix extraction of identifiers in EXPORT_BASE context
...
This is needed to ensure that the base of the RHS of an ImportEqualsDeclaration is bound to a namespace. That is, B below should be bound to a namespace:
import A = B.C.D;
2022-05-24 14:30:36 +02:00
Asger F
665fa2af59
JS: Add test for export base scope
2022-05-24 14:30:36 +02:00
Asger F
c8bb0e2117
JS: Treat d.ts as a single extension in Folder.getJavaScriptFile
2022-05-24 14:30:36 +02:00
Asger F
987a830029
JS: Add test for import of d.ts file
2022-05-24 14:30:36 +02:00
Asger F
2e858db848
JS: Declare variables from ambient declarations
...
fixup
2022-05-24 14:30:36 +02:00
Asger F
74af9067a1
JS: Add node_modules to .gitignore
2022-05-24 14:29:11 +02:00
Tom Hvitved
1ae8087379
Update ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2022-05-24 14:27:59 +02:00
Tom Hvitved
daf81ae90d
Address review comments
2022-05-24 14:27:59 +02:00
Tom Hvitved
ab46c075f7
Ruby: Add change note
2022-05-24 14:27:58 +02:00
Tom Hvitved
63c70b9e7a
Address review comments
2022-05-24 14:27:58 +02:00
Tom Hvitved
faf24a4f18
Ruby: Data-flow through hashes
2022-05-24 14:27:55 +02:00
Asger F
a955bd3695
JS: Change note
2022-05-24 14:18:06 +02:00
Asger F
7d4a191a32
JS: Simplify
2022-05-24 14:18:06 +02:00
Asger F
db4b6d620a
JS: Remove Buffer.from as sink for js/resource-exhaustion
2022-05-24 14:18:05 +02:00
Erik Krogh Kristensen
82c6c22d50
make a model for hasOwnProperty calls and similar
2022-05-24 14:13:53 +02:00
Arthur Baars
6781a76b96
Merge pull request #9206 from aibaars/instance-variable-flow
...
Ruby: flow through instance variables
2022-05-24 14:02:33 +02:00
Erik Krogh Kristensen
2a97dd9f6f
add support for Object.hasOwn(obj, key)
2022-05-24 13:59:25 +02:00
Tamás Vajk
730f54ade2
Merge pull request #9280 from tamasvajk/kotlin-map-kj-properties
...
Kotlin: Fix missing kotlin to java property mapping
2022-05-24 13:16:29 +02:00
Anders Schack-Mulligen
b688aabd19
Java: Improve customNullGuard performance.
2022-05-24 13:05:41 +02:00
Chris Smowton
ae56b823e0
Merge pull request #9282 from github/smowton/admin/go-tests-owner
...
Change owner of Go-related workflows
2022-05-24 11:47:09 +01:00
Erik Krogh Kristensen
1717d17fb3
add flow step for Array.prototype.at
2022-05-24 12:41:27 +02:00
github-actions[bot]
1fa2fd73f2
JS: Bump patch version of ML-powered library and query packs post-release
2022-05-24 10:40:45 +00:00
Erik Krogh Kristensen
fc25d14af7
add change note
2022-05-24 12:37:28 +02:00
Erik Krogh Kristensen
572f247fd9
bump the supported ECMAScript version to 2022
2022-05-24 12:34:29 +02:00
github-actions[bot]
53a25c8c42
JS: Bump minor version of ML-powered library and query packs
2022-05-24 10:34:26 +00:00
github-actions[bot]
1287925676
JS: Bump patch version of ML-powered model pack post-release
2022-05-24 10:34:26 +00:00
github-actions[bot]
171fe98084
JS: Bump ML model pack dependency of ML-powered model building and query packs
2022-05-24 10:34:26 +00:00
github-actions[bot]
e519304268
JS: Bump minor version of ML-powered model pack
2022-05-24 10:33:45 +00:00
Chris Smowton
71017a3b44
Alphabetically sort workflow codeowners
2022-05-24 11:20:51 +01:00
Erik Krogh Kristensen
2423c77b0c
Merge pull request #9281 from erik-krogh/jsQL
...
JS: various QL-for-QL fixes
2022-05-24 12:12:31 +02:00
Asger F
87cbf7b216
JS: Update ATM code
2022-05-24 11:57:30 +02:00
Asger F
631527fe49
JS: Rename Node.{getASource -> asSource, getASink -> asSink}
2022-05-24 11:57:30 +02:00
Asger F
bc601261ed
JS: Use 'ql' language for markdown snippets
2022-05-24 11:57:30 +02:00
Asger F
f80f8b6630
JS: Update a comment mentioning getARhs
2022-05-24 11:57:30 +02:00
Asger F
18dc39484d
Update javascript/ql/lib/semmle/javascript/ApiGraphs.qll
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2022-05-24 11:57:30 +02:00
Asger Feldthaus
1e96b1e559
JS: Fix typo
2022-05-24 11:57:30 +02:00
Asger Feldthaus
777d344dde
JS: Fix up qldoc for getAValueReachingSink
2022-05-24 11:57:30 +02:00
Asger Feldthaus
e2858b7b64
JS: Update ATM code
2022-05-24 11:57:30 +02:00
Asger Feldthaus
8da96ed403
JS: Update doc comment
2022-05-24 11:57:30 +02:00
Asger F
1ae97d9d54
Apply suggestions from code review
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2022-05-24 11:57:30 +02:00
Asger Feldthaus
9fad4b883b
JS: Autoformat
2022-05-24 11:57:30 +02:00
Asger Feldthaus
76ba78294f
JS: Make API::EntryPoint overrides optional
2022-05-24 11:57:30 +02:00
Asger Feldthaus
ce9c3b3eb5
JS: Also rename predicates on API::EntryPoint
2022-05-24 11:57:30 +02:00
Asger Feldthaus
19a5db9f89
JS: Rename getARhs -> getASink
2022-05-24 11:57:30 +02:00
Asger Feldthaus
4c6192670e
JS: Rename getAnImmediateUse -> getASource
2022-05-24 11:57:30 +02:00
Asger F
a7b73f44b2
Update javascript/ql/lib/semmle/javascript/ApiGraphs.qll
...
Co-authored-by: Calum Grant <42069085+calumgrant@users.noreply.github.com >
2022-05-24 11:57:30 +02:00
Asger F
73baa49c5d
Update javascript/ql/lib/semmle/javascript/ApiGraphs.qll
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2022-05-24 11:57:30 +02:00
Asger Feldthaus
82c35e6f65
Mention that the interaction and be with any external codebase
2022-05-24 11:57:29 +02:00
Asger Feldthaus
6a12864dab
JS: Document how API graphs should be interpreted
2022-05-24 11:57:29 +02:00
Ian Lynagh
07e450d513
Merge pull request #9269 from igfoo/igfoo/cfg
...
Kotlin: Fix CFG
2022-05-24 10:53:00 +01:00
Alex Denisov
fa09078976
Swift: do not keep trap files for tests
2022-05-24 11:48:45 +02:00
Alex Denisov
8e8da66325
Swift: share .gitignore across all tests
2022-05-24 11:48:06 +02:00
Chris Smowton
fd60ab420d
Merge pull request #9278 from github/dependabot/github_actions/actions/setup-go-3
...
Bump actions/setup-go from 1 to 3
2022-05-24 10:24:31 +01:00
Mathias Vorreiter Pedersen
3e1a6a777e
Swift: Accept test changes.
2022-05-24 10:22:06 +01:00
Mathias Vorreiter Pedersen
dda60abfef
Swift: Add CFG for a couple more expressions.
2022-05-24 10:21:04 +01:00
Erik Krogh Kristensen
b2d3a7dca5
add change-note for the public renamed predicate
2022-05-24 11:20:08 +02:00
Alex Denisov
528f6f73c5
Swift: add integration tests
2022-05-24 11:12:35 +02:00
Mathias Vorreiter Pedersen
7752a38ee5
Merge pull request #9274 from MathiasVP/swift-extract-semantics-and-accessor-kinds
...
Swift: Extract semantics and accessor kinds
2022-05-24 10:12:30 +01:00
Chris Smowton
bd06a071c4
Change owner of Go-related workflows
2022-05-24 10:11:36 +01:00
Erik Krogh Kristensen
a404a8c61a
use more set literals instead of big disjunctions
2022-05-24 11:09:10 +02:00
Erik Krogh Kristensen
b48806968c
delete redundant import
2022-05-24 11:02:41 +02:00
Erik Krogh Kristensen
395ec106b9
remove unused field
2022-05-24 11:02:18 +02:00
Mathias Vorreiter Pedersen
21641eb1cd
Swift: Make the 'semantics.ql' test plantform-independent.
2022-05-24 10:00:14 +01:00
Erik Krogh Kristensen
d58fe8e193
add explicit this
2022-05-24 10:59:13 +02:00
Erik Krogh Kristensen
d1ad08ecb5
fix misspellings in predicate names
2022-05-24 10:57:13 +02:00
Tom Hvitved
6345816acf
Rework ContentDataFlow implementation
2022-05-24 10:34:06 +02:00
Mathias Vorreiter Pedersen
be453142b8
Merge pull request #8730 from geoffw0/reachesperf
...
C++: Better join order for reachesWithoutAssignment.
2022-05-24 09:22:21 +01:00
Jeroen Ketema
05f09919b0
Merge pull request #9276 from jketema/upgrade-script-script
...
Support Go and Swift in the `prepare-db-upgrade` script
2022-05-24 10:09:31 +02:00
Tamas Vajk
5a54218ac7
Kotlin: Fix missing kotlin to java property mapping
2022-05-24 10:03:17 +02:00
Tamas Vajk
19400249a9
Kotlin: Add test for missing kotlin to java property mapping
2022-05-24 10:02:32 +02:00
Mathias Vorreiter Pedersen
a0659072b5
Swift: Add tests and accept test changes.
2022-05-24 09:00:34 +01:00
Mathias Vorreiter Pedersen
cf5f1e593e
Swift: Extract new entities.
2022-05-24 08:57:05 +01:00
Mathias Vorreiter Pedersen
cdb081eaec
Swift: Update schema and update generated files.
2022-05-24 08:57:05 +01:00
Felicity Chapman
4ea892f2d2
Fix typo
2022-05-24 08:10:19 +01:00
Michael Nebel
42be60ea57
C#: Address codereview comments.
2022-05-24 08:21:39 +02:00
Michael Nebel
a8b103b89c
Java: Update dependencies.
2022-05-24 08:21:39 +02:00
Michael Nebel
94664f11f5
C#/Java/Ruby: Sync files.
2022-05-24 08:21:39 +02:00
Michael Nebel
eed02a2a9f
C#: Fix issue with isAutoGenerated predicate and make sure that data flow only use relevant summaries.
2022-05-24 08:21:38 +02:00
dependabot[bot]
dfa9d9ff85
Bump actions/setup-go from 1 to 3
...
Bumps [actions/setup-go](https://github.com/actions/setup-go ) from 1 to 3.
- [Release notes](https://github.com/actions/setup-go/releases )
- [Commits](https://github.com/actions/setup-go/compare/v1...v3 )
---
updated-dependencies:
- dependency-name: actions/setup-go
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-05-24 03:39:16 +00:00
Arthur Baars
8248f607e4
Merge pull request #9277 from github/aibaars/go-test-workflow
...
Go: trigger CI jobs on Go related changes only
2022-05-23 23:51:34 +02:00
Aditya Sharad
7853ea607f
Merge pull request #9243 from github/adityasharad/merge-codeql-go-docs
...
Docs: Update references to github/codeql-go
2022-05-23 14:37:23 -07:00
Arthur Baars
7a85ab1690
Go: trigger CI jobs on Go related changes only
2022-05-23 21:25:27 +02:00
Erik Krogh Kristensen
f8281b43b1
autoformat
2022-05-23 19:58:48 +02:00
Erik Krogh Kristensen
aa01cf11c2
Merge pull request #9125 from erik-krogh/exportObj
...
JS: recognize functions that return object of methods as library input
2022-05-23 19:57:34 +02:00
Erik Krogh Kristensen
0c10927adc
Merge pull request #9261 from erik-krogh/passport
...
JS: remove support for passport in the session-fixation query
2022-05-23 19:56:42 +02:00
Aditya Sharad
42f2fc2287
Apply suggestions from code review
...
Co-authored-by: Felicity Chapman <felicitymay@github.com >
2022-05-23 10:55:50 -07:00
Jeroen Ketema
34df9dc835
Support Go and Swift in the prepare-db-upgrade script
2022-05-23 19:09:00 +02:00
Mathias Vorreiter Pedersen
9b67912da2
Updated sync-identical-files.
2022-05-23 18:04:32 +01:00
Mathias Vorreiter Pedersen
f46fc34481
Swift: Add skeleton for shared dataflow library.
2022-05-23 18:03:47 +01:00
Mathias Vorreiter Pedersen
b681a10bfe
Swift: Add shared SSA library.
2022-05-23 18:01:43 +01:00
Erik Krogh Kristensen
b6a4f43737
expand qldoc for getNumArgument
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2022-05-23 18:51:33 +02:00
Arthur Baars
cf2eb0d3a1
Merge branch 'main' into instance-variable-flow
2022-05-23 18:48:51 +02:00
Chuan-kai Lin
d3ebc814f5
Merge pull request #8631 from github/cklin/merge-codeql-go
...
Merge codeql-go repository into codeql
2022-05-23 09:22:28 -07:00
Mathias Vorreiter Pedersen
9b0d84c1a3
Merge pull request #9268 from MathiasVP/swift-add-cfg-library
...
Swift: Extend AST classes and add control-flow library
2022-05-23 16:37:51 +01:00
Harry Maclean
905a37c273
Merge pull request #9137 from hmac/hmac/cfg-ql-class
...
Ruby: Add getAPrimaryQlClass to CfgNodes classes
2022-05-23 15:37:51 +01:00
Mathias Vorreiter Pedersen
358a8aba7a
Merge pull request #8994 from HansmannThibaut/main
...
C/C++ : Wrong Uint access
2022-05-23 15:31:23 +01:00
Mathias Vorreiter Pedersen
4ba29845e9
Swift: Fix Code Scanning alerts.
2022-05-23 15:18:36 +01:00
Ian Lynagh
8e64978ffd
Kotlin: Autoformat
2022-05-23 14:51:41 +01:00
Geoffrey White
dcbd5dd98a
Merge branch 'main' into reachesperf
2022-05-23 14:49:32 +01:00
Taus
3745526d69
Merge pull request #9108 from RasmusWL/promote-pam
...
Python: Promote `py/pam-auth-bypass`
2022-05-23 15:27:12 +02:00
Mathias Vorreiter Pedersen
ba28632c96
Update cpp/ql/src/experimental/Best Practices/WrongUintAccess.qhelp
2022-05-23 14:11:13 +01:00
CodeQL CI
04ca9cfaf4
Merge pull request #9234 from asgerf/js/api-graph-accessors
...
Approved by erik-krogh
2022-05-23 06:08:50 -07:00
Erik Krogh Kristensen
aadbc989ce
fix typo in comment
...
Co-authored-by: Asger F <asgerf@github.com >
2022-05-23 15:07:29 +02:00
Harry Maclean
ae3a30256b
Ruby: Add getAPrimaryQlClass to CfgNode
2022-05-23 14:02:23 +01:00
Tom Hvitved
64be958c52
Merge pull request #9262 from hvitved/ruby/local-source-node-antijoin
...
Ruby: Eliminate bad `isLocalSourceNode` antijoin
2022-05-23 14:36:03 +02:00
Tamas Vajk
ccc6d2501a
Kotlin: adjust build scripts to include versions 1.5.0, 1.5.10, and 1.5.21
2022-05-23 14:19:53 +02:00
Tamas Vajk
0dfbe7adfb
Kotlin: Add 1.5.21 specific files
2022-05-23 14:19:53 +02:00
Tamas Vajk
9df9d3ad03
Kotlin: Add 1.5.10 specific files
2022-05-23 14:19:53 +02:00
Tamas Vajk
83a1f687a1
Kotlin: Add 1.5.0 specific files
2022-05-23 14:19:52 +02:00
Erik Krogh Kristensen
ba844aa0ab
Merge branch 'main' into exportObj
2022-05-23 14:18:31 +02:00
yoff
23d64ffa04
Merge pull request #9135 from tausbn/python-modernise-py-jinja2-autoescape-false
...
Python: Modernise py/jinja2/autoescape-false
2022-05-23 14:18:06 +02:00
Mathias Vorreiter Pedersen
2882c42698
Swift: Sync identical files.
2022-05-23 13:13:26 +01:00
Mathias Vorreiter Pedersen
6540e1e8bf
Swift: Share 'ControlFlowGraphImplShared.qll' for Swift with Ruby and C#.
2022-05-23 13:12:45 +01:00
Mathias Vorreiter Pedersen
e98728b788
Swift: Fix casing on import alias.
2022-05-23 13:08:09 +01:00
Mathias Vorreiter Pedersen
83bcb53199
Swift: Add tests accept test changes.
2022-05-23 13:05:55 +01:00
Tamás Vajk
487425670e
Merge pull request #9229 from tamasvajk/kotlin-df-fix-list
...
Kotlin: extract non-private members of class supertypes
2022-05-23 14:04:31 +02:00
Mathias Vorreiter Pedersen
9f8fbd7aa7
Swift: Add control-flow library.
2022-05-23 12:59:06 +01:00
Mathias Vorreiter Pedersen
26f0d3ac43
Swift: Add helper predicates on AST classes
2022-05-23 12:51:51 +01:00
Paolo Tranquilli
06a8cf6f1e
Merge pull request #9198 from github/redsun82/swift-self-contained-cpp-code-gen
...
Swift: make C++ code generation more self-contained
2022-05-23 13:45:58 +02:00
Asger F
0929f5eb49
JS: Update test assertions to new syntax
2022-05-23 13:12:52 +02:00
Asger Feldthaus
33dac5e95f
JS: API graph support for accessors (and classes)
2022-05-23 13:12:52 +02:00
Tom Hvitved
9cc9991c74
C#: Update ContentDataFlow test
...
Illustrates missing flow when the sink is inside a method that is also part of
a `subpath`.
2022-05-23 13:05:28 +02:00
Paolo Tranquilli
1e9fcfb338
Merge pull request #9265 from github/redsun82/swift-rm-codeqlmanifest
...
Swift: remove `.codeqlmanifest`
2022-05-23 13:00:58 +02:00
Erik Krogh Kristensen
7a3bbede1b
remove support for passport in the session-fixation query
2022-05-23 12:55:11 +02:00
Paolo Tranquilli
63f5a86699
Merge pull request #9264 from github/redsun82/swift-fix-ndebug-build
...
Swift: fix extractor built with `NDEBUG`
2022-05-23 12:50:49 +02:00
Paolo Tranquilli
a3f6682bbb
Swift: remove .codeqlmanifest
...
The extractor pack entry in there has been moved to the root manifest.
2022-05-23 12:49:08 +02:00
Paolo Tranquilli
ea6a249fee
Swift: fix extractor built with NDEBUG
...
There was a call with side effects in an `assert`, that was therefore
not being called with `NDEBUG` turned on, changing extractor results.
2022-05-23 12:35:54 +02:00
Ian Lynagh
62ece16cf4
Kotlin: Accept test changes
2022-05-23 11:27:22 +01:00
Ian Lynagh
42da7c6c58
Kotlin: Fix CFG
2022-05-23 11:27:22 +01:00
Arthur Baars
965f83e198
Reformat ControlFlowGraphImpl.qll
2022-05-23 12:22:47 +02:00
Arthur Baars
eabf2ed2d3
Apply suggestions from code review
...
Co-authored-by: Tom Hvitved <hvitved@github.com >
2022-05-23 12:18:48 +02:00
Tom Hvitved
d6b0772f7c
Ruby: Improve performance of instanceVariableSelfSynthesis
2022-05-23 12:08:41 +02:00
Arthur Baars
d86983b7c8
Ruby: use InstanceVariableRead/WriteAccess CFG nodes
2022-05-23 12:03:11 +02:00
Arthur Baars
5fa4f07f7d
Improve QLDoc
2022-05-23 11:59:28 +02:00
Arthur Baars
7ed60b19a2
Ruby: improve test case
2022-05-23 11:59:12 +02:00
Arthur Baars
29ea1b2f24
Ruby: rename getSelfVariableAccess to getReceiver
2022-05-23 11:30:29 +02:00
Arthur Baars
f6ca3921f9
Add change note
2022-05-23 10:59:54 +02:00
Tom Hvitved
bbdedf5f14
Ruby: Eliminate bad isLocalSourceNode antijoin
...
Gets rid of
```
Tuple counts for DataFlowPrivate::Cached::isLocalSourceNode#462ff392#f#antijoin_rhs@dd2f927s:
20905019 ~3% {2} r1 = JOIN DataFlowPrivate::Cached::TExprNode#462ff392#ff_1#higher_order_body WITH boundedFastTC(DataFlowPrivate::Cached::localFlowStepTypeTracker#462ff392#ff_10#higher_order_body,DataFlowPrivate::Cached::TExprNode#462ff392#ff_1#higher_order_body) ON FIRST 1 OUTPUT Rhs.1, Lhs.0
10420128 ~1496% {1} r2 = JOIN r1 WITH DataFlowPrivate::Cached::TExprNode#462ff392#ff_1#higher_order_body ON FIRST 1 OUTPUT Lhs.1
480918 ~8% {1} r3 = JOIN r1 WITH DataFlowPrivate::Cached::entrySsaDefinition#462ff392#f ON FIRST 1 OUTPUT Lhs.1
10901046 ~1218% {1} r4 = r2 UNION r3
return r4
```
2022-05-23 10:54:17 +02:00
Tamas Vajk
4732793fb6
Change type tests
...
Linux and MacOS produced different results, so the queried types are now limited to ones that are visible in the source code.
2022-05-23 10:39:22 +02:00
Tamas Vajk
d3e64f5135
Kotlin: extract non-private members of class supertypes
2022-05-23 10:39:22 +02:00
Tamas Vajk
b0c6db4cfc
Kotlin: add missing dataflow test for List::iterator
2022-05-23 10:39:22 +02:00
Tamas Vajk
ab920d31dc
Repro for kotlin-java difference with generic types
2022-05-23 10:39:22 +02:00
Michael Nebel
bf958ff5bb
Merge pull request #9255 from michaelnebel/csharp/test-clearscontent
...
C#: Remove default clears content.
2022-05-23 10:30:30 +02:00
Michael Nebel
c82ab6813f
Merge pull request #9256 from michaelnebel/csharp/test-ranking
...
C#: Rank summaries and source code in dataflow callables.
2022-05-23 10:29:52 +02:00
Anders Schack-Mulligen
f2218944f6
Merge pull request #9214 from hvitved/dataflow/lambda-fp-flow
...
Data flow: Do not discard call context when computing reverse lambda flow through jumps
2022-05-23 10:02:51 +02:00
Michael Nebel
217c414b6e
C#: Now that SummarizedCallableDefaultClears content has been removed, we need to explicitly say that fields are cleared.
2022-05-23 08:58:09 +02:00
Michael Nebel
ddde1d4607
C#: Remove default clears content.
2022-05-22 15:16:44 +02:00
Michael Nebel
f141336f64
C#: Fake location of methods as we want to use the defined summaries for testing purposes.
2022-05-22 15:14:58 +02:00
Michael Nebel
9f611d79ac
C#: Rank summaries and source code such that only one is used.
2022-05-22 15:14:19 +02:00
Chris Smowton
5119de8d22
Merge pull request #9238 from atorralba/atorralba/remove-xxe-sinks
...
Java: Remove org.dom4j.DocumentHelper:parseText as XXE sink
2022-05-21 17:33:06 +01:00
Erik Krogh Kristensen
7971b54771
Merge pull request #8891 from erik-krogh/qlMergeFix
...
QL: point the dataset measure workflow to a merge_stats.py file that exists
2022-05-20 22:33:59 +02:00
Aditya Sharad
4d74282175
Actions: Avoid cloning codeql-go when building query list docs
2022-05-20 12:10:21 -07:00
Aditya Sharad
beddd306f5
Docs: Update references to github/codeql-go
...
github/codeql-go is being merged into github/codeql.
Update references to `codeql-go` within the CodeQL CLI docs.
Add Go to the list of mentioned languages where applicable.
Leave an explanatory note in the setup instructions about the
previous requirement to check out `github/codeql-go`, and
mention this is no longer necessary.
The remaining references are to historical commits,
which will continue to exist.
2022-05-20 12:10:21 -07:00
Chuan-kai Lin
7f96319b37
Clean up direct references to codeql-go
...
This commit removes special handling of the github/codeql-go repository in the
ql-for-ql-dataset_measure.yml and the query-list.yml workflows.
2022-05-20 10:23:48 -07:00
Chuan-kai Lin
827c7ab153
Go: fix search and tool paths for 'make test'
2022-05-20 10:22:47 -07:00
Arthur Baars
7bc6c10f5b
Go: fix search-path for 'make test'
2022-05-20 10:22:47 -07:00
Chuan-kai Lin
c58b5397c2
Go: delete test qhelp file
...
There shouldn't be qhelp files in the ql/test tree.
https://github.com/github/codeql/pull/8631#issuecomment-1087316116
2022-05-20 10:22:47 -07:00
Chuan-kai Lin
1276c41e83
codeql-go merge prep: integrate go/ into codeql
2022-05-20 10:22:47 -07:00
Chuan-kai Lin
097d5189e9
Merge branch 'main' into cklin/merge-codeql-go-prep
2022-05-20 10:22:19 -07:00
Chuan-kai Lin
aa514fff32
codeql-go merge prep: move into go/ directory
2022-05-20 10:07:19 -07:00
Arthur Baars
439dcc0731
Merge pull request #9241 from aibaars/fix-history
...
Kotlin changes
2022-05-20 17:31:57 +02:00
Arthur Baars
f3f0e06127
Merge branch 'main' into fix-history
2022-05-20 17:20:42 +02:00
Paolo Tranquilli
f2bc73bf8f
Merge pull request #9239 from github/redsun82/swift-visitors
...
Swift: transfer all visitors
2022-05-20 16:38:06 +02:00
Arthur Baars
68aeb2ba85
Update test output
2022-05-20 16:30:58 +02:00
Arthur Baars
d9c2b78aa2
Ruby: flow through instance variables
2022-05-20 16:30:58 +02:00
Paolo Tranquilli
fc165c1975
Swift: remove IDE generated comment header
2022-05-20 16:25:33 +02:00
Paolo Tranquilli
f52a849ab8
Merge branch 'main' into redsun82/swift-self-contained-cpp-code-gen
2022-05-20 16:16:35 +02:00
Tamás Vajk
144937a753
Merge pull request #9154 from tamasvajk/kotlin-error-warning-1
...
Kotlin: Adjust diagnostic message severity
2022-05-20 16:12:39 +02:00
Paolo Tranquilli
e6f2ab003c
Swift: remove empty DB-CHECK.expected files
2022-05-20 16:01:56 +02:00
Paolo Tranquilli
b0668ee6c2
Swift: remove unused decl properties
2022-05-20 15:42:28 +02:00
Paolo Tranquilli
553930d9e3
Swift: type visitor
...
This transfers the current state of `TypeVisitor` from the
proof-of-concept.
2022-05-20 15:42:20 +02:00
Paolo Tranquilli
922608c65a
Swift: expression visitor
...
This transfers the current status of `ExprVisitor` from the
proof-of-concept, together with some changes required for swift 5.6.
2022-05-20 15:41:27 +02:00
Paolo Tranquilli
3f45b73d62
Swift: pattern visitor
...
This transfers the current state of `PatternVisitor` from the
proof-of-concept.
2022-05-20 15:41:27 +02:00
Paolo Tranquilli
19506dae74
Swift: statement visitor
...
This transfers the current state of `StmtVisitor` in the PoC, plus some
changes required for the update to swift 5.6.
Also `getLabel` in `SwiftDispatcher` got renamed to `createLabel`, and
is now correctly outputting the label assignment to the trap file.
2022-05-20 15:41:27 +02:00
Paolo Tranquilli
d6ced16aa8
Swift: declaration visitor
...
This transfers the current state of `DeclVisitor` from the
proof-of-concept.
TODO: make the `declarations` tests in `extractor-tests` more
comprehensive.
2022-05-20 15:41:22 +02:00
Paolo Tranquilli
da7e700a8f
Merge pull request #9185 from github/redsun82/swift-tbd-rework
...
Swift: move TBD code to ql
2022-05-20 15:39:31 +02:00
Stephan Brandauer
cdceb66b07
add test for moduleSuffixes
2022-05-20 15:10:13 +02:00
Ian Lynagh
6652c27591
Merge pull request #9236 from igfoo/igfoo/kotlinc
...
Kotlin: Use 'which' to find kotlinc
2022-05-20 14:06:59 +01:00
Tamas Vajk
7aafc5f88c
Kotlin: Adjust diagnostic message severity
...
Make extraction messages `warning` if code is still extracted regardless of the reported issue. Make extraction messages `error` if some code is not extracted.
2022-05-20 14:55:16 +02:00
Ian Lynagh
73759705ae
Merge pull request #9121 from github/igfoo/mjson
...
Kotlin: Write the log file as Line-delimited JSON
2022-05-20 13:51:20 +01:00
Tony Torralba
98f70dc7d3
Remove org.dom4j.DocumentHelper:parseText as XXE sink
2022-05-20 14:45:26 +02:00
Tony Torralba
aba4a9aa4a
Merge pull request #9233 from atorralba/atorralba/fix-field-init-test
...
Kotlin: Fix test to correctly highlight lack of flow from field init
2022-05-20 14:37:22 +02:00
Stephan Brandauer
d6abb2e6bd
add new supported file types to versions-compilers.rst
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2022-05-20 14:34:53 +02:00
Stephan Brandauer
cb4b2e983b
delete test of removed feature
2022-05-20 14:33:07 +02:00
Ian Lynagh
3fd61581b3
Kotlin: Call the right kotlinc
2022-05-20 12:59:04 +01:00
Ian Lynagh
44efb34447
Kotlin: Use 'which' to find kotlinc
...
This means we handle kotlinc.batr and kotlinc.cmd on Windows.
2022-05-20 12:44:55 +01:00
Stephan Brandauer
813fbf27de
support for .mts and .cts file extensions
2022-05-20 13:33:52 +02:00
Ian Lynagh
4eddb6224b
Kotlin: Format a query
2022-05-20 12:07:35 +01:00
Ian Lynagh
df9f75832c
Kotlin: Fix diagnostics test
2022-05-20 12:07:35 +01:00
Ian Lynagh
f7fa00ef6c
Kotlin: Accept test output
2022-05-20 12:07:35 +01:00
Ian Lynagh
d6f8342431
Kotlin: Write the log file as Line-delimited JSON
2022-05-20 12:07:35 +01:00
Ian Lynagh
b5ad6f9c04
Kotlin: Add a LogMessage class
2022-05-20 12:07:35 +01:00
Ian Lynagh
d900c3d994
Merge pull request #9221 from smowton/smowton/admin/handle-missing-kotlinc-gracefully
...
Kotlin: Handle missing kotlinc gracefully
2022-05-20 12:06:06 +01:00
Erik Krogh Kristensen
204e01fc24
change getNumArgument to only count positional arguments
2022-05-20 12:43:06 +02:00
Ian Lynagh
d2cb1aa89c
Merge pull request #9218 from igfoo/igfoo/geninst
...
Kotlin: Avoid "generic specialisation" label collisions
2022-05-20 11:42:22 +01:00
Ian Lynagh
9844ae703e
Merge pull request #9219 from igfoo/igfoo/livelits
...
Improve LiveLiterals
2022-05-20 11:42:16 +01:00
Anders Schack-Mulligen
8beef45599
Merge pull request #9195 from aschackmull/java/perf-local-flow
...
Java: Performance fixes for local flow relation
2022-05-20 12:38:02 +02:00
Tony Torralba
775b53b7b4
Fix test to correctly highlight lack of flow from field init
2022-05-20 12:36:10 +02:00
Paolo Tranquilli
09967bfd42
Swift: add comment about CRTP
2022-05-20 12:35:58 +02:00
Paolo Tranquilli
f5b2c31a3c
Swift: rename DispatcherWrapper to VisitorBase
2022-05-20 12:25:45 +02:00
Paolo Tranquilli
da00bf99a1
Swift: move TBD code to ql
...
This allows to avoid bypassing label type correcness in the extractor,
and allows to independently resolve TBD extractions, as with this
approach TBD nodes do have the correctly typed trap label. The TBD
status is now a predicate on the QL side.
This requires:
* a default visit using the correct type, which is achieved via macro
metaprogramming in `VisitorBase.h`, following the way
`swift::ASTVisitor` is programmed
* a mapping from labels to corresponding binding trap entries. The
functor is defined in `TrapTagTraits.h` and instantiated in generated
`TrapEntries.h`
* Binding trap entries for TBD unknown entities must not have any other
field than the `id` (after all, we are supposed to not extract them
yet). This is why all unextracted fields in `schema.yml` have been
commented out, and will be uncommentend when visitors are added
2022-05-20 09:52:27 +02:00
Michael Nebel
20af134ff0
Merge pull request #9210 from michaelnebel/dataflow/summarizedcallablerefactor
...
DataFlow - SummarizedCallable refactor
2022-05-20 09:32:30 +02:00
Tamás Vajk
3407b0f055
Merge pull request #9152 from tamasvajk/kotlin-fix-parcelize-reflection-1
...
Kotlin: Fix extraction of reflective call generated by Parcelize
2022-05-20 09:06:21 +02:00
Chris Smowton
d9f65fe34f
Handle missing kotlinc gracefully
2022-05-19 21:54:18 +01:00
Chris Smowton
e80254b0a6
Fix generated implementation of an inherited single abstract method
...
For example, UnaryOperator<T> extends Function<T, T> without overriding / defining its own `apply` method.
2022-05-19 20:57:54 +01:00
Erik Krogh Kristensen
a5b11e88b4
update doc to make it clear that moduleImport(..) does not refer to PyPI names
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2022-05-19 20:00:43 +02:00
Ian Lynagh
f918b2e763
Merge pull request #9217 from igfoo/igfoo/tweak_logging
...
Kotlin: Tweak logging
2022-05-19 18:31:40 +01:00
Tony Torralba
5498f41248
Apply code review suggestion to increase precision in getValue
2022-05-19 17:35:34 +01:00
Tony Torralba
bc84ff2031
Improve docs of LiveLiteral
...
Also remove transitive closure from calls
2022-05-19 17:35:27 +01:00
Ian Lynagh
e153f30c01
Kotlin: Avoid "generic specialisation" label collisions
...
We had a global set of labels for generic specialisations that we'd
extracted, but these labels could contain references to other labels,
and thus you can get false collisions between labels for different TRAP
files. We now only keep the set for a single TRAP file, and live with
the extra TRAP duplication that we get from that.
2022-05-19 17:29:41 +01:00
Ian Lynagh
9e3cde001a
Kotlin: Tweak logging
...
Makes it easier to filter out the peak memory info
2022-05-19 16:59:52 +01:00
Chris Smowton
01aaa6ccbf
Merge pull request #9123 from smowton/smowton/fix/type-variable-in-scope-consistency
...
Kotlin: fix cases where type variables were used out of scope
2022-05-19 16:57:41 +01:00
Tom Hvitved
3ebd4af24e
C#: Fix another test
2022-05-19 16:23:31 +02:00
Chris Smowton
c9232c075c
Autoformat
2022-05-19 15:18:10 +01:00
Stephan Brandauer
67697e1066
update meta information and release note for typescript 4.7 upgrade
2022-05-19 15:45:27 +02:00
Stephan Brandauer
0f3448dc24
update tests for typescript 4.7
2022-05-19 15:45:19 +02:00
Tom Hvitved
909ad2a61a
Address review comment
2022-05-19 15:37:18 +02:00
Tom Hvitved
f83deb6571
Data flow: Sync files
2022-05-19 15:20:43 +02:00
Tom Hvitved
a18aef23f9
Data flow: Do not discard call context when computing reverse lambda flow through jumps
2022-05-19 15:19:41 +02:00
Tom Hvitved
ea703bc49a
Ruby: Add test that illustrates false negative lambda flow
2022-05-19 15:19:34 +02:00
Ian Lynagh
d18e03cf9a
Merge pull request #9212 from igfoo/igfoo/kotlin_mem
...
Kotlin: Log peak memory usge before and after extractor
2022-05-19 14:01:07 +01:00
Ian Lynagh
e319ab1b70
Kotlin: Format a query
2022-05-19 13:56:04 +01:00
Chris Smowton
1039e29b90
Adjust test result
2022-05-19 13:42:28 +01:00
Michael Nebel
575b8376f3
C#: Update Flow summaries QL test code based on refactor.
2022-05-19 14:41:24 +02:00
Chris Smowton
4f08981586
Expand warning message to note that there are known Java extractor bugs relating to this query
2022-05-19 13:37:18 +01:00
Ian Lynagh
9b40724dcb
Kotlin: Log peak memory usge before and after extractor
...
Ideally this would be in a more JSON-friendly format, and also in the
database, but this at least makes the information available.
2022-05-19 13:36:11 +01:00
AlexDenisov
480c6b985b
Merge pull request #9211 from github/redsun82/swift-no-pip-install
...
remove `pip install` mention from README.md
2022-05-19 13:55:14 +02:00
Tom Hvitved
0a52420581
C#: Add ContentDataFlow test
2022-05-19 13:28:56 +02:00
Tom Hvitved
2b2ac06128
Data flow: Sync files
2022-05-19 13:28:56 +02:00
Tom Hvitved
bd9b6567c7
Data flow: Introduce ContentDataFlow.qll
2022-05-19 13:28:56 +02:00
Michael Nebel
ff1e6637ac
C#: Fix issue with summaryElement predicate.
2022-05-19 13:06:24 +02:00
Chris Smowton
e722c99218
Autoformat
2022-05-19 11:55:31 +01:00
Chris Smowton
4f54bb66b8
Accept consistency check failure
...
The Java extractor assigns a type with unbound type variables to the result of ImmutableSortedMap.of calls.
2022-05-19 11:55:31 +01:00
Chris Smowton
ea9aa59627
Add test
2022-05-19 11:55:31 +01:00
Chris Smowton
8a90ddefbb
Accept test changes
...
These are mainly moving the source locations and type specialisations in SAM-converted methods.
2022-05-19 11:55:31 +01:00
Chris Smowton
ada31f3075
Distinguish result type parameter names
...
This makes debugging a little easier.
2022-05-19 11:55:31 +01:00
Chris Smowton
49c9c36daf
Type-variable-in-scope consistency query: account for all enclosing elements that declare type parameters.
2022-05-19 11:55:31 +01:00
Chris Smowton
4e15f5f8c7
Fix extracted type arguments of kotlin.jvm.functions.FunctionN
...
Previously we accidentally extracted an argument type instead of the result type.
2022-05-19 11:55:31 +01:00
Chris Smowton
102cdcdab8
Fix type substitution and source locations in SAM-converted generic interface implementations
...
For example, in implementing Producer<T> by an actual lambda of type () -> Int, the return type should be Int, not T. This produced type-variable-out-of-scope consistency check failures.
2022-05-19 11:55:31 +01:00
Chris Smowton
048a530aac
Type parameter scoping check: distinguish type arguments from type parameters
...
I had forgotten that the Java QL lib regards a ParameterizedType as either an instantiation Generic<String>, or the unbound declaration Generic<T>.
2022-05-19 11:55:31 +01:00
Chris Smowton
b09b769932
Extract type parameters without substituting their parent functions
...
Otherwise references to type variables declared on kotlin.Xyz.someFunction can refer to its Java equivalent java.Xyz.someFunction if it has one.
2022-05-19 11:55:31 +01:00
Chris Smowton
d291e0cf10
Fix typeParametersInScope consistency query
...
The selection of type variables mentioned in a particular class previously didn't work as intended, so the consistency query would always pass.
2022-05-19 11:55:31 +01:00
Paolo Tranquilli
b66f1b27b0
remove pip install mention from README.md
...
It is not needed any more since pip requirements were coded in bazel.
2022-05-19 12:47:20 +02:00
Anders Schack-Mulligen
651d9d0a44
Java: Ensure cached predicates are in the same stage.
2022-05-19 11:39:41 +02:00
Michael Nebel
22b9ef2e7b
Java: Adapt ExternalApi to refactor.
2022-05-19 11:30:36 +02:00
Anders Schack-Mulligen
0e830f6052
C#/Ruby/Java: Fix pragmas.
2022-05-19 11:26:38 +02:00
Michael Nebel
94a72ec051
Java: Refactor SummarizedCallable.
2022-05-19 11:10:58 +02:00
Michael Nebel
73802cbd6d
Ruby: Refactor SummarizedCallable.
2022-05-19 11:04:18 +02:00
Michael Nebel
be79f20ef1
C#: Refactor SummarizedCallable.
2022-05-19 11:03:50 +02:00
Stephan Brandauer
b928ca518f
update dependency version to 4.7.1-rc
2022-05-19 10:47:08 +02:00
Erik Krogh Kristensen
fff70da650
Merge pull request #9182 from erik-krogh/useStringComp
...
use string equality instead of regexps to compare constant strings
2022-05-19 10:42:37 +02:00
Tom Hvitved
eef5022e3d
Merge pull request #9014 from michaelnebel/csharp/dataflowcallablerefactor
...
C#: Dataflow callable refactoring.
2022-05-19 09:02:38 +02:00
Erik Krogh Kristensen
215a6a72cc
Merge branch 'main' into useStringComp
2022-05-18 10:55:31 +02:00
Rasmus Wriedt Larsen
6611e5b4b8
Merge branch 'main' into promote-pam
2022-05-18 10:35:39 +02:00
Anders Schack-Mulligen
a4dac9fd2b
Merge pull request #9201 from Marcono1234/marcono1234/NumericType-type-qll
...
Java: Move `NumericType` to `Type.qll`
2022-05-18 10:31:40 +02:00
Rasmus Wriedt Larsen
b54de13d97
Python: Apply suggestions from code review
...
Co-authored-by: Taus <tausbn@github.com >
2022-05-18 10:30:29 +02:00
Tom Hvitved
209a1e4bd8
Merge pull request #9202 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2022-05-18 10:26:55 +02:00
Tom Hvitved
5e57e82997
Merge pull request #9191 from hvitved/ruby/taint-tracking-stage
...
Ruby: Force cached taint tracking predicates to be evaluated in data flow stage
2022-05-18 09:54:38 +02:00
Anders Schack-Mulligen
af7df79289
Autoformat
2022-05-18 09:38:11 +02:00
Anders Schack-Mulligen
a4a004a322
Java: Simplify recursion prevention.
2022-05-18 09:27:55 +02:00
Anders Schack-Mulligen
d4c9fddae3
Java: Use fastTC.
2022-05-18 09:27:54 +02:00
Anders Schack-Mulligen
48ab5b2403
C#/Ruby/Java: Fix references.
2022-05-18 09:27:54 +02:00
Anders Schack-Mulligen
829eb7f7a5
C#/Ruby: Sync FlowSummaryImpl.
2022-05-18 09:27:48 +02:00
Anders Schack-Mulligen
25fda206b2
Java: Prevent accidental recursion through AdditionalValueStep.
2022-05-18 09:25:23 +02:00
Anders Schack-Mulligen
1d3b3204df
Merge pull request #9190 from hvitved/dataflow/summary-arg-param-no-materialize
...
Data flow: Do not materialize `summaryArgParam`
2022-05-18 09:17:57 +02:00
Erik Krogh Kristensen
7245591468
Merge pull request #7763 from erik-krogh/unused-field
...
QL: add unused-field query
2022-05-18 09:15:16 +02:00
Tom Hvitved
23ee033a57
C#: Review fixes
2022-05-18 07:48:21 +02:00
Michael Nebel
df6d86b9aa
C#: Use getUnderlyingCallable instead of asCallable.
2022-05-18 07:48:21 +02:00
Michael Nebel
6f7af11517
C#: Needs to be updated as SummaryParameterNodes are printed slightly different.
2022-05-18 07:48:21 +02:00
Michael Nebel
b41bb3fe08
C#: System.Web.HttpResponse.Write is now considered safe (known) and will this not show up as untrusted external API.
2022-05-18 07:48:21 +02:00
Michael Nebel
97c6d7884d
C#: Source and Sink models are now also considered summarized callables and thus considered safe as they are known external APIs.
2022-05-18 07:48:21 +02:00
Michael Nebel
aeadad62be
C#: Improve implementation.
2022-05-18 07:48:21 +02:00
Michael Nebel
26e2cad528
C#: Improve getCallable.
2022-05-18 07:48:21 +02:00
Michael Nebel
f78def5316
C#: Hide SummaryParamterNodes from path explanations.
2022-05-18 07:48:21 +02:00
Michael Nebel
220526f305
C#: Fix issues with summarized callables parameter types and other casting issues.
2022-05-18 07:48:21 +02:00
Michael Nebel
2c414b2201
C#: Add Summary parameter nodes.
2022-05-18 07:48:21 +02:00
Michael Nebel
0e3fc464a3
C#: Use SummarizedCallable external instead of the internal.
2022-05-18 07:48:20 +02:00
Michael Nebel
b578fcb069
C#: Use the external SummarizedCallable implementation.
2022-05-18 07:48:20 +02:00
Michael Nebel
4f7297715d
C#: Also extract callable from FlowSummary SummarizedCallable in DataFlowCallable.
2022-05-18 07:48:20 +02:00
Michael Nebel
3fa990a984
C#: Make sure that all callables with a summary are added to the external SummarizedCallable class.
2022-05-18 07:48:20 +02:00
Michael Nebel
4810419dfd
C#: Extend SummarizedCallable from FlowSummaryImpl.
2022-05-18 07:48:20 +02:00
Michael Nebel
eb022118f3
C#: Fix issue in ExternalApi.
2022-05-18 07:48:20 +02:00
Michael Nebel
68055bc022
C#: Update flow summaries test code.
2022-05-18 07:48:20 +02:00
Michael Nebel
c8a7354086
C#: Refactor to align implementation between languages.
2022-05-18 07:48:20 +02:00
Michael Nebel
0d61a2c797
C#: Add QL doc to SummarizedCallable.
2022-05-18 07:48:20 +02:00
Michael Nebel
2f2ca18898
C#: Update dependencies.
2022-05-18 07:48:20 +02:00
Michael Nebel
e70a283cfd
C#: Initial refactor of SummarizedCallable and DataFlowCallable (dependencies needs to be updates).
2022-05-18 07:48:19 +02:00
github-actions[bot]
91694b4bac
Add changed framework coverage reports
2022-05-18 00:15:25 +00:00
Marcono1234
c53d315697
Java: Move NumericType to Type.qll
2022-05-18 01:40:17 +02:00
Cornelius Riemenschneider
415c3d1c72
Merge pull request #740 from github/criemen/lua-tracing-config
...
Update Lua tracing config.
2022-05-18 01:03:16 +02:00
Cornelius Riemenschneider
d352253b02
Merge pull request #9187 from github/criemen/lua-tracing-configs
...
Update Lua tracing configs.
2022-05-18 01:03:15 +02:00
Erik Krogh Kristensen
d5f0446940
exclude self parameter from the API-graph edge for keywordParameter
2022-05-17 22:34:38 +02:00
Mathias Vorreiter Pedersen
5d625d6156
Merge pull request #9188 from MathiasVP/fix-GetAPrimaryQlClassConsistency-for-swift
2022-05-17 20:47:24 +01:00
Erik Krogh Kristensen
6c7c9b6a4b
Merge pull request #9082 from erik-krogh/countZero
...
QL: add query warning about `count(...) = 0`.
2022-05-17 21:46:58 +02:00
Mathias Vorreiter Pedersen
a6ac14f4de
QL: Allow class + 'Base' in 'ql/primary-ql-class-consistency'.
2022-05-17 16:54:12 +01:00
Paolo Tranquilli
3a46db3f81
Swift: make C++ code generation more self-contained
...
This is solving a papercut, where the C++ build was relying on the
local dbscheme file to be up-to-date, even if all the information for
building is actually in `schema.yml`. This made a pure C++ development
cycle with changes to `schema.yml` clumsy, as it required a further
dbscheme generation step.
Now for C++ the dbscheme is generated internally in the build files, and
thus a change in `schema.yml` is reflected immediately in the C++ build.
A `swift/codegen` step for checked in generated code (including the
dbscheme) is still required, but a developer can do it just before
running QL tests or committing, instead of during each C++
recompilation.
Some directory reorganization was also carried out, moving specific
generator modules to a new `generators` python package, and only leaving
the two drivers at the top level.
2022-05-17 17:05:16 +02:00
Paolo Tranquilli
fbe7c5be81
Swift: move TBD code to ql
...
This allows to avoid bypassing label type correcness in the extractor,
and allows to independently resolve TBD extractions, as with this
approach TBD nodes do have the correctly typed trap label. The TBD
status is now a predicate on the QL side.
This requires:
* a default visit using the correct type, which is achieved via macro
metaprogramming in `VisitorBase.h`, following the way
`swift::ASTVisitor` is programmed
* a mapping from labels to corresponding binding trap entries. The
functor is defined in `TrapTagTraits.h` and instantiated in generated
`TrapEntries.h`
* Binding trap entries for TBD unknown entities must not have any other
field than the `id` (after all, we are supposed to not extract them
yet). This is why all unextracted fields in `schema.yml` have been
commented out, and will be uncommentend when visitors are added
2022-05-17 16:31:10 +02:00
Tony Torralba
53f32f5a97
Merge pull request #9186 from atorralba/atorralba/kotlin-inline-expectations-tests
...
Kotlin: Add support for InlineExpectationsTest
2022-05-17 15:28:03 +02:00
Cornelius Riemenschneider
3b4d04dcc4
Update Lua tracing config.
2022-05-17 13:18:56 +00:00
Cornelius Riemenschneider
3836d1550a
Update Lua tracing configs.
2022-05-17 13:18:28 +00:00
Taus
ea32299ab0
Python: Use API-graph flow for boolean tracking
...
Introduces a false positive, but arguably that false positive should
have been there with the local flow as well.
2022-05-17 13:14:55 +00:00
Erik Krogh Kristensen
86e97c32d6
fix all ql/use-string-compare
2022-05-17 14:11:05 +02:00
Taus
ba8d73c2be
Python: Use API::CallNode
2022-05-17 12:00:17 +00:00
Geoffrey White
629e90f14b
Merge pull request #9176 from geoffw0/xxe9
...
C++: Clean up the XXE query QL.
2022-05-17 12:40:39 +01:00
Erik Krogh Kristensen
440e6214f0
CPP: correctly escape underscores in calls to .matches()
2022-05-17 13:21:02 +02:00
Erik Krogh Kristensen
e32a04fc06
QL: add use-string-compare query
2022-05-17 13:20:49 +02:00
Tony Torralba
dbf249b199
Accept only EOL comments as Kotlin expectation comments
2022-05-17 13:05:51 +02:00
Tom Hvitved
f1f96b7e5c
Ruby: Force cached taint tracking predicates to be evaluated in data flow stage
2022-05-17 12:54:26 +02:00
Tom Hvitved
284357d2a0
Data flow: Do not materialize summaryArgParam
2022-05-17 12:50:01 +02:00
Erik Krogh Kristensen
03da62713c
fix typo identified by QL-for-QL
2022-05-17 12:32:40 +02:00
Erik Krogh Kristensen
bb289e29b9
sync typo fix to JS/RB
2022-05-17 12:26:31 +02:00
Erik Krogh Kristensen
818975dc56
sync upstream typo fixes
2022-05-17 12:25:52 +02:00
Erik Krogh Kristensen
5d1c41c269
Merge branch 'main' into pyMaD
2022-05-17 12:23:03 +02:00
Erik Krogh Kristensen
2868eb61ea
add test for Parameter[any] and Parameter[any-named]
2022-05-17 12:08:53 +02:00
Geoffrey White
246093d375
C++: Move the two implementation imports.
2022-05-17 11:03:21 +01:00
Arthur Baars
fcb3b82bde
Merge pull request #9178 from aibaars/update-tree-sitter-ruby
...
Ruby: update tree-sitter-ruby
2022-05-17 11:47:41 +02:00
Erik Krogh Kristensen
f273ccf73b
add explicit test of what Parameter[0] matches
2022-05-17 11:17:15 +02:00
Erik Krogh Kristensen
ce21d7e5a8
use test-sink for sinks in the MaD test
2022-05-17 11:13:59 +02:00
Erik Krogh Kristensen
aef592fec8
make a more realistic test for self-parameter
2022-05-17 11:13:35 +02:00
Mathias Vorreiter Pedersen
1280d43e36
Merge pull request #9141 from github/post-release-prep/codeql-cli-2.9.2
...
Post-release preparation for codeql-cli-2.9.2
2022-05-17 10:01:37 +01:00
Mathias Vorreiter Pedersen
0b0161f261
Merge pull request #737 from github/post-release-prep/codeql-cli-2.9.2
...
Post-release preparation for codeql-cli-2.9.2
2022-05-17 10:01:21 +01:00
Tony Torralba
2b6d7bb3d8
Add support for InlineExpectationsTest to Kotlin
2022-05-17 10:55:00 +02:00
Tamás Vajk
3b07fe70a1
Merge pull request #9174 from tamasvajk/kotlin-fix-isUnspecialised
...
Kotlin: Fix parent class lookup from field initializers in `isUnspecialised`
2022-05-17 10:48:52 +02:00
Erik Krogh Kristensen
55ffdb4aa1
make most imports in ApiGraphModelsSpecific.qll private
2022-05-17 10:34:17 +02:00
Erik Krogh Kristensen
1f8e7c39f4
fix typo in comment
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2022-05-17 10:32:31 +02:00
Erik Krogh Kristensen
7abb7552a7
Merge pull request #9184 from erik-krogh/actionInjection
...
JS: change @id from js/actions/injection to js/actions/command-injection
2022-05-17 10:24:51 +02:00
Anders Schack-Mulligen
4f5ccfd76c
Merge pull request #9181 from Marcono1234/marcono1234/FloatingPointLiteral-rename
...
Java: Rename `FloatingPointLiteral` to `FloatLiteral`
2022-05-17 10:08:49 +02:00
Tom Hvitved
f2e28c311a
Merge pull request #9180 from hvitved/csharp/entity-framework-sql-sinks
...
C#: Add missing EntityFramework SQL sinks
2022-05-17 09:50:49 +02:00
Erik Krogh Kristensen
2550988006
change @id from js/actions/injection to js/actions/command-injection
2022-05-17 09:25:05 +02:00
Tamás Vajk
350d137b2e
Merge pull request #9145 from tamasvajk/kotlin-useless-param
...
Kotlin: Respect `override` modifier in useless parameter query
2022-05-17 08:43:59 +02:00
Tamás Vajk
fcb3d78eae
Merge pull request #9146 from tamasvajk/kotlin-inner-class-static
...
Kotlin: exclude Kotlin source from 'inner class could be static' check
2022-05-17 08:43:39 +02:00
Tamás Vajk
26553cefc5
Merge pull request #9149 from tamasvajk/kotlin-maybe-null
...
Kotlin: Exclude operands of `NotNullExpr` from NullMaybe query
2022-05-17 08:43:24 +02:00
Tamás Vajk
d8c22901c9
Merge pull request #9150 from tamasvajk/kotlin-MissingInstanceofInEquals
...
Kotlin: Add more type check casts to MissingInstanceofInEquals query
2022-05-17 08:43:06 +02:00
Marcono1234
4e1a73f4d9
Java: Rename FloatingPointLiteral to FloatLiteral
...
"Floating point" refers to both `double` and `float`, and is also used by
the JLS in this way. Therefore the old CodeQL class name for `float` literals
was misleading.
2022-05-16 22:06:04 +02:00
Tom Hvitved
15449b701f
C#: Add missing EntityFramework SQL sinks
2022-05-16 20:57:40 +02:00
Arthur Baars
05dce09037
Ruby: update tree-sitter-ruby
2022-05-16 19:08:46 +02:00
Geoffrey White
cf932eb21c
C++: Repair typo fix from main.
2022-05-16 16:46:14 +01:00
Geoffrey White
7b1cd70300
Merge branch 'main' into xxe9
2022-05-16 16:45:24 +01:00
Nick Rolfe
c518150b49
Merge pull request #9132 from github/nickrolfe/misspelling
...
QL for QL: generalise non-US spelling query
2022-05-16 16:03:36 +01:00
Paolo Tranquilli
9abb3f0066
Merge pull request #9172 from github/redsun82/swift-variant-in-label-store
...
Swift: replace `getCanonicalPointer` with `std::variant`
2022-05-16 16:21:47 +02:00
Paolo Tranquilli
16e3b5bfc4
Swift: make monostate explicit
2022-05-16 15:51:43 +02:00
Erik Krogh Kristensen
23981cb323
Merge pull request #7626 from erik-krogh/CWE-377
...
JS: add query for detecting insecure temporary files
2022-05-16 15:25:17 +02:00
Tamas Vajk
d4cf877259
Rework parent lookup in isUnspecialised
2022-05-16 14:59:28 +02:00
Geoffrey White
9f3fa1c45d
C++: Consistent QLDoc.
2022-05-16 13:48:57 +01:00
Geoffrey White
b4a840e3ef
C++: Make the checks happy.
2022-05-16 13:36:41 +01:00
Geoffrey White
9976825234
C++: Slightly more logical layout.
2022-05-16 12:51:04 +01:00
Geoffrey White
19d1578733
C++: Clean up.
2022-05-16 12:49:01 +01:00
Geoffrey White
b332659fcb
C++: Split the XXE query into library files.
2022-05-16 12:41:41 +01:00
Geoffrey White
0ffd0b23ca
C++: Create an XmlLibrary class to clean up the code in XXE.ql.
2022-05-16 12:17:20 +01:00
Tamas Vajk
8ebdaf1fc2
Kotlin: Fix parent class lookup from field initializers
2022-05-16 12:14:28 +02:00
Tamas Vajk
de133e80a9
Kotlin: add diagnostic test for 'Unexpected specialised instance of generic anonymous class'
2022-05-16 12:13:33 +02:00
Tom Hvitved
a9f6d203cd
Merge pull request #8971 from aibaars/safe-nagivation
...
Ruby: add safe navigation operator
2022-05-16 10:53:56 +02:00
Tamas Vajk
47ec38c35a
Kotlin: Exclude Kotlin files altogether from NullMaybe query
2022-05-16 10:52:20 +02:00
Mathias Vorreiter Pedersen
cee7aed81f
Merge pull request #9142 from geoffw0/xxe8
...
C++: Fixes some typos and increases the XXE query precision.
2022-05-16 09:45:33 +01:00
Anders Schack-Mulligen
83f817ca45
Merge pull request #9134 from aschackmull/dataflow/perf-std-order
...
Dataflow: Improve standard order through easier type check elimination.
2022-05-16 10:05:17 +02:00
Paolo Tranquilli
1b9dcac2dd
Swift: replace getCanonicalPointer with std::variant
...
This turned out easier than expected previously. `llvm::PointerUnion`
was also considered, which would have less memory footprint, but it
would require more effort as it is lacking the same implicit conversions
and operators that `std::variant` provides.
Also renamed `ToTag<E>` to `TrapTagOf<E>` and introduced a derived
convenience functor `TrapLabelOf<E>`.
2022-05-16 09:59:36 +02:00
Tamás Vajk
f7d2b2767c
Merge pull request #9151 from tamasvajk/kotlin-comments-variables-1
...
Kotlin: Handle variables as comment owners
2022-05-16 09:32:19 +02:00
Tony Torralba
616b12d011
Merge pull request #8956 from atorralba/atorralba/intent-redirection-sanitizer-fix
...
Java: Fix Intent Redirection sanitizer
2022-05-16 09:21:04 +02:00
thibaut hansmann
e150a39fa0
C/C++ : fix name of cpp file + fix autoformat
2022-05-15 14:27:46 +02:00
Chris Smowton
ae83190629
Merge pull request #9164 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2022-05-14 08:44:37 +01:00
github-actions[bot]
1d39726604
Add changed framework coverage reports
2022-05-14 00:19:04 +00:00
Chris Smowton
77461f7ad6
Merge pull request #730 from owen-mc/bugfix/build/go-mod-tidy
...
Run `go mod tidy -e` before building
2022-05-13 19:40:05 +01:00
Chris Smowton
32e294955a
Merge pull request #734 from cokeBeer/main
...
fix https://github.com/github/codeql/issues/9097
2022-05-13 19:38:55 +01:00
Chris Smowton
07c2f6e514
Merge pull request #9155 from smowton/smowton/fix/field-initializer-flow
...
Kotlin: Fix initializer field flow by extracting field finality
2022-05-13 18:41:55 +01:00
Chris Smowton
305ddb2169
Accept test changes
2022-05-13 17:44:26 +01:00
Chris Smowton
fbdd5a13c5
Autoformat
2022-05-13 17:40:58 +01:00
Chris Smowton
c76a774e35
Accept test changes
2022-05-13 17:40:58 +01:00
Chris Smowton
498d3700bd
Update java/ql/test/kotlin/library-tests/field-initializer-flow/test.ql
...
Co-authored-by: Tony Torralba <atorralba@users.noreply.github.com >
2022-05-13 17:40:58 +01:00
Chris Smowton
81baca2c17
Fix initializer field flow by extracting field finality
2022-05-13 17:40:58 +01:00
Chris Smowton
2930bd4cc2
Only attempt go.mod updating if go >= 1.16
...
Prior to this (a) Go will attempt to update go.mod/sum anyhow, and (b) the `mod tidy -e` option isn't available.
2022-05-13 17:32:00 +01:00
AlexDenisov
eacb9f1dba
Merge pull request #9144 from github/alexdenisov/introduce-visitors
...
Swift: Introduce visitors
2022-05-13 17:57:47 +02:00
cokeBeer
7f21c0c3b7
fix format
2022-05-13 23:36:50 +08:00
Ian Lynagh
7ef9a19085
Merge pull request #9131 from github/igfoo/capture_output
...
Kotlin: Don't use capture_output or text
2022-05-13 15:59:14 +01:00
Tony Torralba
168a184602
Merge pull request #9127 from atorralba/atorralba/sensitive-info-log-improvs
...
Java: Sensitive Info Log query improvements
2022-05-13 16:57:32 +02:00
Alex Denisov
1b75034634
Swift: simplify CRTP monkey-patching
2022-05-13 16:54:15 +02:00
Alex Denisov
f857cd11c4
Swift: add comments about SwiftDispatcher lifetime
2022-05-13 16:47:45 +02:00
Ian Lynagh
153fd3a221
Kotlin: Fix diagnostics test
2022-05-13 15:36:30 +01:00
Ian Lynagh
98b0463e09
Kotlin: Accept test output
2022-05-13 15:36:30 +01:00
Ian Lynagh
b94597568a
Kotlin: Write the log file as Line-delimited JSON
2022-05-13 15:36:30 +01:00
Ian Lynagh
3ae5e1a5f7
Kotlin: Add a LogMessage class
2022-05-13 15:36:30 +01:00
Alex Denisov
acbe9ff9f9
Swift: introduce visitors
2022-05-13 16:26:41 +02:00
AlexDenisov
4e9706470d
Merge pull request #9112 from AlexDenisov/alexdenisov/introduce-dispatcher
...
Swift: introduce dispatcher
2022-05-13 16:26:26 +02:00
Alex Denisov
43199fa723
Swift: clarify getCanonicalPointer
2022-05-13 16:14:16 +02:00
Alex Denisov
35467bc252
Swift: rely on llvm::sys::fs::real_path to get absolute path
2022-05-13 16:13:30 +02:00
cokeBeer
aa2d4450ad
add v1modulePath()
2022-05-13 21:24:58 +08:00
cokeBeer
75f2edd220
add v2modulePath()
2022-05-13 21:22:23 +08:00
cokeBeer
808dde2fc1
add v2modulePath()
2022-05-13 21:21:16 +08:00
Alex Denisov
043b1b9c4a
Swift: resolve symlinks
2022-05-13 15:20:30 +02:00
Alex Denisov
d7f4c6fb0b
Swift: add a comment about lifetime
2022-05-13 15:20:30 +02:00
Alex Denisov
c92576690f
Swift: change the return types of getCanonicalPointer
2022-05-13 15:20:30 +02:00
Alex Denisov
2f00945a23
Swift: change the return types of getCanonicalPointer
2022-05-13 15:20:30 +02:00
Alex Denisov
039aaec6b7
Swift: make TrapLabelStore store untyped label internally
2022-05-13 15:20:30 +02:00
Alex Denisov
e584afb895
Swift: fix format
2022-05-13 15:20:30 +02:00
Alex Denisov
7b9f88637e
Swift: describe TrapTagTraits API and implementation
2022-05-13 15:20:30 +02:00
Alex Denisov
efa4565af2
Swift: move generated code to generated directory
2022-05-13 15:20:29 +02:00
Tony Torralba
b9f3b3bd37
Apply code review suggestion
2022-05-13 15:09:06 +02:00
cokeBeer
252b19063e
Merge branch 'github:main' into main
2022-05-13 20:23:24 +08:00
Tamas Vajk
ef08554adb
Fix extraction of reflective call generated by Parcelize
2022-05-13 14:01:37 +02:00
Tamas Vajk
7376ec5d42
Handle variables as comment owners
2022-05-13 13:58:06 +02:00
Tamas Vajk
7d5844a9a4
Kotlin: Add more type check casts to MissingInstanceofInEquals query
2022-05-13 13:52:52 +02:00
Tamas Vajk
e2efef7bd7
Kotlin: Add more type check tests for MissingInstanceofInEquals query
2022-05-13 13:50:59 +02:00
Paolo Tranquilli
f52119dc81
Merge branch 'main' into alexdenisov/introduce-dispatcher
2022-05-13 13:44:01 +02:00
Tamas Vajk
c2a8965c90
Kotlin: Exclude operands of NotNullExpr from NullMaybe query
2022-05-13 13:42:10 +02:00
Tamas Vajk
e5d78687aa
Kotlin: Add test for NullMaybe query
2022-05-13 13:41:25 +02:00
Paolo Tranquilli
d531631a3a
Merge pull request #9147 from github/redsun82/swift-codegen-artifacts
...
Swift: publish C++ generated code as artifacts
2022-05-13 13:36:25 +02:00
Paolo Tranquilli
ccc77fa4a6
Merge branch 'main' into alexdenisov/introduce-dispatcher
2022-05-13 13:23:21 +02:00
Ian Lynagh
624cd41bd5
Merge pull request #9136 from igfoo/igfoo/qldoc
...
Kotlin: QLDoc tweaks from intrigus
2022-05-13 12:17:28 +01:00
Chris Smowton
7daba0bf55
Merge pull request #9122 from smowton/smowton/admin/update-kotlin
...
Kotlin: Apply changes since https://github.com/github/codeql/pull/9109 branched away from kotlin-main
2022-05-13 12:00:03 +01:00
Chris Smowton
e91a51aae6
Merge pull request #9113 from github/smowton/admin/claim-golang-support
...
Claim Go 1.18 support
2022-05-13 11:58:53 +01:00
Paolo Tranquilli
7a8ab7d2f5
Swift: merge generated headers into one artifact
2022-05-13 12:25:48 +02:00
Paolo Tranquilli
8cb9fd7eec
Swift: publish C++ generated code as artifacts
2022-05-13 11:48:27 +02:00
Chris Smowton
211580e608
Merge pull request #738 from hvitved/xml-dbscheme-files-folders
...
Drop redundant columns from `files` and `folders` relations in `xml.dbscheme`
2022-05-13 10:35:45 +01:00
Tamas Vajk
631ba8adcf
Kotlin: exclude Kotlin source from 'inner class could be static' check
2022-05-13 11:20:28 +02:00
Tamas Vajk
cd17e2eb28
Kotlin: add potentially static inner class test
2022-05-13 11:19:29 +02:00
Tamas Vajk
5ce2573cc1
Kotlin: Respect override modifier in useless parameter query
2022-05-13 11:08:35 +02:00
Tamas Vajk
6af4b74528
Kotlin: add useless parameter test for generic override
2022-05-13 11:07:22 +02:00
Tony Torralba
39fd1b48fc
Merge pull request #9143 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2022-05-13 09:37:29 +02:00
github-actions[bot]
05070fb6c4
Add changed framework coverage reports
2022-05-13 00:19:40 +00:00
Chris Smowton
5ec9390482
Autoformat
2022-05-12 22:37:54 +01:00
Chris Smowton
63dadd88aa
Revert "Identify data classes during extraction"
...
This reverts commit a61ba65c9f2182a578a7f4dbdb1c1657197f16cd, pending
adding a proper upgrade script for the DB change.
2022-05-12 22:37:30 +01:00
Tony Torralba
e3c2656ef1
Update java/ql/lib/semmle/code/java/frameworks/KotlinStdLib.qll
2022-05-12 22:37:06 +01:00
Tamas Vajk
cc92c6517b
Fix labels of extension function parameters
2022-05-12 22:37:06 +01:00
Tamas Vajk
a0f4960e31
Add test case for extension function called from java
2022-05-12 22:37:06 +01:00
Tamas Vajk
ccaafd74f3
Fix declaring type of companion field
2022-05-12 22:37:06 +01:00
Tamas Vajk
a8cf0383cf
Add test for companion field declaring type
2022-05-12 22:37:06 +01:00
Tamas Vajk
8b1a7c845c
Fix return type of <clinit> methods
2022-05-12 22:37:06 +01:00
Tamas Vajk
de003fd122
Add test for return type of <clinit> methods
2022-05-12 22:37:06 +01:00
Tamas Vajk
b0ee557a51
Fix expected test files
2022-05-12 22:37:06 +01:00
Tamas Vajk
59581439dd
Fix colliding property accessor and function names
2022-05-12 22:37:06 +01:00
Tamas Vajk
a51c2c496f
Add test with colliding property accessor and function names
2022-05-12 22:37:06 +01:00
Tamas Vajk
857a74cf14
Adjust class label generation to handle classes in field initializers
2022-05-12 22:37:06 +01:00
Tamas Vajk
394ec56d9d
Add test case for local class declaration in field initializer
2022-05-12 22:37:06 +01:00
Chris Smowton
4ceb2f13c4
Add test
2022-05-12 22:37:06 +01:00
Chris Smowton
2600dcd182
Fix extracting type accesses relating to proprerty getters/setters and SAM-converted methods
...
These should be handled the same as regular methods: extract type accesses for parameters and methods only if we're extracting "from source", i.e. at some point we're descended from extractFileContents.
2022-05-12 22:37:06 +01:00
Chris Smowton
301fa11450
Only extract parameter and method type-accesses once
...
Previously we extracted them whenever something was non-external, but this led to re-extraction when an instance of a generic type defined in source was extracted multiple times.
2022-05-12 22:37:06 +01:00
Chris Smowton
8d970a3cbd
Don't extract private members of instantiated or external classes
...
This is both consistent with the Java extractor's behaviour, and prevents us from trying to refer to anonymous types (e.g. anonymous objects that directly initialize properties) out of scope.
2022-05-12 22:37:06 +01:00
Tamas Vajk
fbae0f5053
Revert dataflow changes, extract actual iterator function
2022-05-12 22:37:06 +01:00
Tamas Vajk
538e05995a
Fix dataflow for kotlin.Array.iterator()
2022-05-12 22:37:03 +01:00
Tamas Vajk
776322bac2
Add foreach dataflow tests
2022-05-12 22:36:28 +01:00
Chris Smowton
7e17074b41
Allow arithmetic functions not mapping to Java equivalents
2022-05-12 22:36:28 +01:00
Chris Smowton
b1849f5f0a
Expand error message
2022-05-12 22:36:28 +01:00
Chris Smowton
22e48ca39a
Accept test changes
2022-05-12 22:36:28 +01:00
Chris Smowton
16af811b69
Allow imprecise matching for Kotlin -> Java method translation
...
This allows the particular case of Collection.toArray(IntFunction<T>) to match, since both Java and Kotlin functions take an IntFunction<T> but they use different function-local type variables.
This would also allow toArray(Array<T>) to work similarly.
2022-05-12 22:36:28 +01:00
Chris Smowton
77056c9bff
Add test expectations
2022-05-12 22:36:28 +01:00
Chris Smowton
71d2e7be3e
Don't replace own callables, and use a more exact replacement-finding test
2022-05-12 22:36:28 +01:00
Chris Smowton
ce87a89009
Replace Map and similar functions with their Java cousins
...
This didn't appear to be necessary because the Kotlin and Java versions of Map (for example) are designed to be compatible, but in certain cases their functions have the same erasure but not the same type (e.g. Map.getOrDefault(K, V) vs. Map.getOrDefault(Object, V).
These have different erasures which was leading to callable-binding inconsistencies.
2022-05-12 22:36:28 +01:00
Tamas Vajk
fa0bd0366c
Fix extension property labels
2022-05-12 22:36:28 +01:00
Tamas Vajk
25fce5f6bb
Identify data classes during extraction
2022-05-12 22:36:28 +01:00
Chris Smowton
1e78f2893c
Add test for special method getters
2022-05-12 22:36:28 +01:00
Chris Smowton
134f88fe8e
Accept test results
2022-05-12 22:36:27 +01:00
Chris Smowton
12e3401ae0
Map special getters onto their correct JVM names
...
These include Collection.size() for example, which has a Kotlin property called `size` but whose getter is not named `getSize()`.
These would normally be accounted for using `@JvmName`, but some core methods are lowered by a special compiler pass instead.
2022-05-12 22:36:27 +01:00
Chris Smowton
cb6941d212
Account for JVM type equivalency when recognising unspecialised types
...
(As before, these are not really unspecialised, they are instantiated by their own type parameters, but this replicates the behaviour of the Java extractor)
2022-05-12 22:36:27 +01:00
github-actions[bot]
11c95c576e
Post-release preparation for codeql-cli-2.9.2
2022-05-12 18:21:57 +00:00
Tom Hvitved
e68a727f9a
Drop redundant columns from files and folders relations in xml.dbscheme
2022-05-12 20:21:48 +02:00
github-actions[bot]
b7cbd8fd75
Post-release preparation for codeql-cli-2.9.2
2022-05-12 18:21:38 +00:00
Geoffrey White
776857e08b
C++: Change note.
2022-05-12 18:26:32 +01:00
Geoffrey White
7a35a346dc
C++: Increase query precision to 'high'.
2022-05-12 17:46:16 +01:00
Geoffrey White
0ad6289618
C++: Fix typos.
2022-05-12 16:32:20 +01:00
Nick Rolfe
6c52831143
Java: sync spelling correction in shared qll
2022-05-12 16:11:29 +01:00
Nick Rolfe
1115227f9d
Merge remote-tracking branch 'origin/main' into nickrolfe/misspelling
2022-05-12 16:10:27 +01:00
Nick Rolfe
320b6a1942
QL for QL: don't check spelling of deprecated nodes
2022-05-12 16:07:17 +01:00
Nick Rolfe
70666f6351
QL for QL: fix typos in comments
2022-05-12 16:03:39 +01:00
Nick Rolfe
8caad12011
Ruby: fix typos in comments
2022-05-12 16:02:20 +01:00
Nick Rolfe
2efa38aaa6
Python: fix typos in comments
2022-05-12 16:02:20 +01:00
Nick Rolfe
2ed42c327c
JS: fix typos in comments
2022-05-12 16:02:19 +01:00
Mathias Vorreiter Pedersen
39551fd84d
Merge pull request #9114 from geoffw0/xxe7
...
C++: Repair support for createLSParser in the CWE-611 XXE query.
2022-05-12 15:47:53 +01:00
Jeroen Ketema
941485d66f
Merge pull request #9130 from jketema/cpp17-init
...
C++: Handle C++17 if and switch initializers
2022-05-12 16:37:44 +02:00
Harry Maclean
64206a1c29
Ruby: Add getAPrimaryQlClass to CfgNodes classes
2022-05-12 15:32:36 +01:00
Anders Schack-Mulligen
8c8440a58a
Merge pull request #9101 from hvitved/dataflow/include-hidden
...
Data flow: Add `Configuration::includeHiddenNodes()`
2022-05-12 15:36:12 +02:00
Geoffrey White
df30d2286c
Merge branch 'main' into xxe7
2022-05-12 14:35:16 +01:00
Nick Rolfe
128fac4414
Java: fix typos in comments
2022-05-12 14:28:49 +01:00
Nick Rolfe
a50601c367
C#: fix typos in comments
2022-05-12 14:28:40 +01:00
Nick Rolfe
76cf8d1659
C++: fix typos in comments
2022-05-12 14:28:26 +01:00
Nick Rolfe
844eef173c
QL for QL: add predicate for other typos not in the shared typo db
2022-05-12 14:25:39 +01:00
Ian Lynagh
75ca116ef9
Kotlin: QLDoc tweaks from intrigus
2022-05-12 14:12:01 +01:00
Jeroen Ketema
723f3b09fe
C++: Address review comments
2022-05-12 15:09:06 +02:00
Ian Lynagh
02101fab6a
Kotlin: Don't use capture_output or text
...
Older python versions don't support them
2022-05-12 14:08:19 +01:00
Taus
a0f8e2f0b1
Python: Modernise py/jinja2/autoescape-false
...
A simple rewrite to use API graphs instead.
The handling of falsy values is potentially a bit more restrictive now,
as it only accounts for local flow. We should probably figure out a
better way of capturing this pattern, but I felt that this was out of
scope for the present PR.
2022-05-12 12:55:42 +00:00
Erik Krogh Kristensen
762f7bf7fe
Merge pull request #9115 from erik-krogh/fileAndFolder
...
JS: resolve main module when there is a folder with the same name as the main file
2022-05-12 14:55:28 +02:00
Jeroen Ketema
72823e9576
Apply suggestions from code review
...
Co-authored-by: Mathias Vorreiter Pedersen <mathiasvp@github.com >
2022-05-12 14:54:43 +02:00
Taus
e8b7262712
Merge pull request #9133 from tausbn/devcontainer-install-test-extension-dependencies
...
Devcontainer: Install test dependencies
2022-05-12 14:51:18 +02:00
Joe Farebrother
59e400d2e0
Merge pull request #7723 from joefarebrother/redos
...
Java: Add ReDoS queries
2022-05-12 13:50:38 +01:00
Erik Krogh Kristensen
fb077bec66
sync AccessPathSyntax changes
2022-05-12 14:46:54 +02:00
Erik Krogh Kristensen
dea5596289
update MaD test to reflect that dotted module names don't work
2022-05-12 14:45:29 +02:00
Erik Krogh Kristensen
31e9876de7
Merge branch 'main' into pyMaD
2022-05-12 14:43:16 +02:00
Erik Krogh Kristensen
4bef451156
Merge pull request #9021 from erik-krogh/actions
...
JS: promote `js/actions/injection` out of experimental
2022-05-12 14:38:38 +02:00
Anders Schack-Mulligen
adb56dfa39
Dataflow: Improve standard order through easier type check elimination.
2022-05-12 14:31:38 +02:00
Nick Rolfe
6058352fb0
QL for QL: add small test for misspelling query
2022-05-12 13:17:32 +01:00
Nick Rolfe
4321b5e1fa
QL for QL: generalise non-US spelling query
...
1. Catch common misspelling as well.
2. Also check names of classes, predicates, etc.
2022-05-12 13:17:32 +01:00
Taus
12b34bcf04
Devcontainer: Install test dependencies
...
These _should_ get installed automatically if missing, by in my
experience this can be a bit flaky. Installing theme here should make
this a bit more robust.
2022-05-12 12:17:04 +00:00
Rasmus Wriedt Larsen
7cd51d6147
Merge pull request #9126 from RasmusWL/moduleimport-with-dots
...
Python: Fully disallow `API::moduleImport` of module with dots
2022-05-12 14:16:25 +02:00
Alex Denisov
d0e2e2bec8
Swift: introduce SwiftDispatcher
2022-05-12 14:09:44 +02:00
Alex Denisov
8f8ece63e7
Swift: add extractor test for declarations
2022-05-12 14:09:44 +02:00
Alex Denisov
cfd242e489
Swift: add human readable string representation for Location and UnkownAstNode
2022-05-12 14:09:44 +02:00
AlexDenisov
dd900e622c
Merge pull request #9107 from redsun82/swift-arena
...
Swift: `TrapOutput`
2022-05-12 14:09:18 +02:00
Mathias Vorreiter Pedersen
3423729f4c
Merge pull request #736 from github/release-prep/2.9.2
...
Release preparation for version 2.9.2
2022-05-12 12:55:44 +01:00
Rasmus Wriedt Larsen
795adf0566
Python: Fix API::moduleImport("foo.bar")
2022-05-12 13:33:00 +02:00
Rasmus Wriedt Larsen
3844c5b5c0
Python: Add change-note
2022-05-12 13:32:59 +02:00
Rasmus Wriedt Larsen
f8253f5fef
Python: Fully disallow API::moduleImport of module with dots
...
Inspired by discussion about this for MaD in
https://github.com/github/codeql/pull/8883#discussion_r865858084
2022-05-12 13:30:26 +02:00
Rasmus Wriedt Larsen
597a8414d9
Python: Add test of API::moduleImport with dots
...
This is currently semi-works -- the import is allowed, but doesn't
always work when used :|
2022-05-12 13:29:16 +02:00
Nick Rolfe
234a36ff61
Merge pull request #9119 from github/nickrolfe/non-us-spelling-fixes
...
Fix non-US spellings and the corresponding query
2022-05-12 12:29:14 +01:00
Erik Krogh Kristensen
fef4455ccc
apply suggestion from doc review
...
Co-authored-by: Steve Guntrip <12534592+stevecat@users.noreply.github.com >
2022-05-12 13:28:45 +02:00
Jeroen Ketema
e23e5e5b12
C++: Add change notes for C++17 if and switch initializers
2022-05-12 12:56:50 +02:00
Jeroen Ketema
894380d701
C++: Update stats file
2022-05-12 12:56:50 +02:00
Jeroen Ketema
97bba115da
C++: Add upgrade and downgrade script
2022-05-12 12:56:50 +02:00
Jeroen Ketema
71c019e126
C++: Handle C++17 switch initializers
2022-05-12 12:56:50 +02:00
Jeroen Ketema
ebbd9c5b90
C++: Handle C++17 if initializers
2022-05-12 12:56:50 +02:00
github-actions[bot]
edbd5dd77a
Release preparation for version 2.9.2
2022-05-12 10:17:26 +00:00
Tony Torralba
f0a0ac100b
Add live literals as sanitizers for sensitive logging
2022-05-12 11:57:44 +02:00
Tom Hvitved
0a7892797e
Merge pull request #8938 from hvitved/ruby/with-without-mad-tokens
...
Ruby: Introduce `With(out)Element` MaD input tokens
2022-05-12 11:49:51 +02:00
Tony Torralba
5db8306fef
Stop considering usernames sensitive info
...
Require variables to be static to be considered constants
2022-05-12 11:46:52 +02:00
Nick Rolfe
12a43b6fae
C++: fix another use of AnalysedString
2022-05-12 10:38:13 +01:00
Harry Maclean
e8972b814f
Merge pull request #8635 from hmac/hmac/io-popen
...
Ruby: Model IO.popen
2022-05-12 21:17:55 +12:00
Nick Rolfe
a86b5a1586
C++: fix changenote formatting
2022-05-12 09:26:30 +01:00
Erik Krogh Kristensen
9050f9999c
recognize functions that return object of methods as library input
2022-05-12 09:56:19 +02:00
Erik Krogh Kristensen
b1e8b3332c
resolve main module when there is a folder with the same name as the main file
2022-05-12 08:20:30 +02:00
cokeBeer
ebcb040050
update fix
2022-05-12 09:53:49 +08:00
cokeBeer
c70358033d
update fix
2022-05-12 09:31:35 +08:00
Nick Rolfe
7cd6dc1a74
CPP: add changenote for AnalysedString -> AnalyzedString
2022-05-11 18:16:26 +01:00
Nick Rolfe
e1b277386a
Fix non-US spellings: s/analyse/analyze
2022-05-11 17:48:27 +01:00
Nick Rolfe
2d246a4034
QL for QL: fix checking spelling of 'analyze' in multi-line comments
...
`.` does not match a newline in `regexpMatch`, so we were missing some
comments.
2022-05-11 17:43:39 +01:00
Nick Rolfe
0af1976b74
JS: fix typos in qldoc comment
2022-05-11 17:42:43 +01:00
Paolo Tranquilli
ddb567b639
Swift: remove Tag nested alias in TrapLabel
2022-05-11 17:44:00 +02:00
Alex Ford
196c68b0bd
Merge remote-tracking branch 'origin/main' into ruby/rbi-lib
2022-05-11 16:31:39 +01:00
Paolo Tranquilli
f1413f29c6
Swift: move back file opening code
2022-05-11 16:53:51 +02:00
Alex Ford
a114050a6e
Ruby: document ConstantReadAccessAsRbiType class
2022-05-11 15:03:41 +01:00
Tom Hvitved
5df87d526c
Sync files
2022-05-11 15:17:27 +02:00
Tom Hvitved
884d3b2ff4
Ruby: Introduce With(out)Element MaD input tokens
2022-05-11 15:17:27 +02:00
Rasmus Wriedt Larsen
044829c3bb
Python: Add @security-severity to py/pam-auth-bypass
...
The value 8.1 was calculated by our internal tool. This corresponds to a
'High' severity, which from my gut feeling seems reasonable for
authorization bypass.
2022-05-11 14:57:21 +02:00
Geoffrey White
94e190c63a
C++: getClassAndName.
2022-05-11 13:47:51 +01:00
Paolo Tranquilli
a46582d7d5
Swift: replace friend in TrapLabel with unsafeCreateFromExplicitId
2022-05-11 14:42:55 +02:00
Rasmus Wriedt Larsen
0956d506de
Python: Actually promote py/pam-auth-bypass
...
🤦
2022-05-11 13:44:47 +02:00
Chris Smowton
d9e7d34e03
Merge pull request #735 from github/smowton/admin/generics-change-note
...
Add change note announcing generics support
2022-05-11 12:06:09 +01:00
Paolo Tranquilli
e679612a5a
Swift: move most of TrapArena to TrapFile
2022-05-11 12:32:14 +02:00
Geoffrey White
f27c2f3031
C++: Fix more capitalization.
2022-05-11 11:27:57 +01:00
Arthur Baars
e1e13b599a
Fix CFG
2022-05-11 12:09:17 +02:00
Geoffrey White
00f7453fcb
C++: Fix capitalization.
2022-05-11 11:08:03 +01:00
Arthur Baars
d91b1891f1
Add change note
2022-05-11 12:06:08 +02:00
Arthur Baars
dbd9c1859d
Add more test cases for &. operator
2022-05-11 12:06:08 +02:00
Arthur Baars
76f806159c
Ruby: desugar safe navigation calls
2022-05-11 12:06:08 +02:00
Arthur Baars
c9f7568ca3
Ruby: add Call::isSafeNavigation
2022-05-11 12:06:08 +02:00
Geoffrey White
3dddc560a1
C++: Add LSParser specific transformer.
2022-05-11 11:02:01 +01:00
Geoffrey White
e3be7749ea
C++: Repair the LSParser sinks.
2022-05-11 11:02:01 +01:00
Geoffrey White
8852043558
C++: Additional test cases.
2022-05-11 11:01:26 +01:00
Chris Smowton
72022e65d5
Copyedit
2022-05-11 10:46:16 +01:00
Chris Smowton
7530943e07
Add change note announcing generics support
2022-05-11 10:42:58 +01:00
Paolo Tranquilli
e63d079322
Swift: transfer TrapArena
2022-05-11 11:28:38 +02:00
Chris Smowton
d41da9eabb
Claim Go 1.18 support
...
As of https://github.com/github/codeql-go/pull/686 landing we support extracting generics, dataflow analysis in programs that use generics, etc. Note this hasn't gone out in a release yet but I would expect it to be in 2.9.2.
2022-05-11 10:26:22 +01:00
Chris Smowton
440b3118cb
Merge pull request #686 from owen-mc/extract-generics
...
Extract generics
2022-05-11 10:14:58 +01:00
Erik Krogh Kristensen
f5329a3d1b
PY: fix ql/field-only-used-in-charpred warning
2022-05-11 09:54:55 +02:00
Erik Krogh Kristensen
94a9b3e873
fix all ql/counting-to-zero in some languages
2022-05-11 09:54:53 +02:00
Erik Krogh Kristensen
7149b98bb4
add ql/counting-to-zero
2022-05-11 09:51:56 +02:00
cokeBeer
2b51b4206e
fix https://github.com/github/codeql/issues/9097
2022-05-11 11:22:23 +08:00
Rasmus Wriedt Larsen
c890f9c4ac
Python: Fix change-note
2022-05-10 18:08:43 +02:00
Rasmus Wriedt Larsen
f68b281762
Python: Add change-note
2022-05-10 18:04:52 +02:00
Rasmus Wriedt Larsen
7e87e18b32
Python: Adjust name/description/select of PamAuthorization.ql
...
Thought that calling out the actual vulnerability would make things
easier for our end users :)
2022-05-10 18:02:17 +02:00
Rasmus Wriedt Larsen
c84f693151
Python: Adjust PamAuthorization examples
...
They did not have proper formatting (only 2 spaces), and I restructured
them a bit more so they look like code in the wild
2022-05-10 18:00:20 +02:00
Rasmus Wriedt Larsen
0c534444ad
Python: Format .qhelp file
...
99% of our .qhelp files have manually wrapped lines, so just wanted to
keep things consistent
2022-05-10 17:59:21 +02:00
Chris Smowton
c0fbd03133
Add qldoc for getTermInIntersection
2022-05-10 14:52:10 +01:00
Chris Smowton
3129c3dd69
Remove commented-out debug code
2022-05-10 14:52:10 +01:00
Chris Smowton
d330033908
Make objects-map-changed warning non-fatal
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
3c4b5202e3
Fix type aliases for instantiated generic types
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
d098bdc7f8
Reintroduce noinlined predicate to fix performance
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
ac081dc47a
Make TypeParamParent map global
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
8477053c90
Test calling generic functions from other files
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
7f1f428b41
Remove invalid code in test
...
"type declarations inside generic functions are not currently supported"
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
aa62fabe26
Fix another place where type could be nil
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
06d139848d
Fix panic when type is unknown
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
2e8b9a9a7d
Fix extractor crash when missing type information
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
ba147e8661
Test calls through variables
...
The tests which involve a flow through a receiver with a non-trivial access path
currently don't give the right result. This should be
fixed in a follow-up issue.
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
4a9aeacb69
Find callee through function instantiation
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
3790c4eb4d
Control flow for generic function instantiations
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
0dee215e8c
Update CodeQL tests to go 1.18.1
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
a8a351f6ae
Improve comment
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
20562cb43d
Add missing this. to member predicate calls
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
5257c4ab45
Add control flow test
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
26d4acd3b6
generic function instantions aren't type exprs
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
ce9c9cfe9d
CallExpr.getCalleeExpr should get uninstantiated function
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
7a7ca619b3
Add data flow tests for generic structs, methods and functions
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
4e71ab5cfc
Update comment above first extraction of packages
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
25b91d8155
Update tests
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
8c15199ca9
Use generic struct field not instantiated one in Uses
...
We do not extract instantiated named types, and instead use the generic
type. But fields of the underlying struct of an instantiated named types
are obtained from the Uses map. We solve this keeping track of which
objects should be overridden by which other objects.
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
8276ca04b4
Use generic method not instantiated one in Uses
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
253ca2bb67
Address review comments 2
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
59aa7426ec
Add comments about entities without a parent scope
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
9abc7ea617
Address review comments 1
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
4828430fd4
Extract all object types before emitting them
...
Note that `extractObjectType` calls `extractType` which may add
additional objects to the list that `ForEachObject` loops over, so
we should emit object types as a second pass.
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
4fa972fdc5
Rename variable for clarity
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
1da5399652
Fix obvious test failures
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
0194eb98d7
Add an upgrade and downgrade script
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
4d9937d1c6
Add tests
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
63d1663eb2
bug fix: label pointer-typed receivers correctly
...
We were trying to convert the object's type to a named type
to iterate through its methods, forgetting that it could also be
a pointer to a named type.
This bug was exposed because we no longer extract an object's
type before extracting it (unless it is a receiver), and when we
extracted a named type we extract its methods and when
extracting a method we extract its receiver and we always give
it the correct label in that situation.
2022-05-10 14:52:10 +01:00
Owen Mansel-Chan
92c331402d
Extract type parameters in types, not just decls
2022-05-10 14:52:09 +01:00
Owen Mansel-Chan
213fa1fec2
Break out of loop when a match has been found
2022-05-10 14:52:09 +01:00
Owen Mansel-Chan
982f11f8c7
Make ScopedObjectID take a function
...
This is so that ExtractType() won't be called except in the case
of a receiver variable, which is important for extracting type
parameters.
2022-05-10 14:52:09 +01:00
Owen Mansel-Chan
f908a6f1dc
Rename parm to param for clarity
2022-05-10 14:52:09 +01:00
Owen Mansel-Chan
1e08201632
Extract type param declarations
2022-05-10 14:52:09 +01:00
Owen Mansel-Chan
3510f2cdcd
Support non-basic interfaces in extractor
2022-05-10 14:52:09 +01:00
Owen Mansel-Chan
a05a525755
Extract generic type instantiations to new table
2022-05-10 14:52:09 +01:00
Owen Mansel-Chan
e84db95f9c
Extract generic function instantiations to new table
2022-05-10 14:52:09 +01:00
Owen Mansel-Chan
b8ab46d969
Add QL class for type parameter types
2022-05-10 14:52:09 +01:00
Owen Mansel-Chan
3952b1c07a
Extract type parameter types (and update dbscheme)
2022-05-10 14:52:09 +01:00
Owen Mansel-Chan
f7dcb11816
Extract uninstantiated generic types only
2022-05-10 14:52:09 +01:00
Owen Mansel-Chan
7f0a37913f
Use Go 1.18
2022-05-10 14:52:09 +01:00
Tom Hvitved
712fe002b9
Data flow: Sync files
2022-05-10 12:41:10 +02:00
Tom Hvitved
bfabfc3601
Data flow: Add Configuration::includeHiddenNodes()
2022-05-10 12:40:46 +02:00
Harry Maclean
a6cab022f6
Ruby: Add missing import
2022-05-10 17:32:01 +12:00
Harry Maclean
7b63493fa9
Ruby: Fix identification IO.open args
2022-05-10 17:32:00 +12:00
Harry Maclean
79c6dc1af0
Refactor IO/File modelling
...
The main goal here is to get rid of the duplicate definitions of module
`IO`, which currently exist in both `frameworks/core/IO.qll` and
`frameworks/Files.qll`.
We do this by moving the classes inside `Files::IO` to `core/IO.qll`,
but moving most of the actual definitions of those classes to an
internal module `core.internal.FileOrIO`. This means both `Files.qll`
and `IO.qll` can depend on them without leaking them to end users.
2022-05-10 17:32:00 +12:00
Harry Maclean
2d12ad6238
Ruby: Model IO.popen
...
This method is very similar to `Kernel.system`: it executes its
arguments as a system command in various ways.
2022-05-10 17:32:00 +12:00
Erik Krogh Kristensen
fc1ab06c1c
autoformat
2022-05-09 12:39:38 +02:00
thibaut hansmann
f3f2e59472
C/C++ : Fix remove the useless variable
2022-05-09 12:01:42 +02:00
Mathias Vorreiter Pedersen
ef7363c48e
Merge pull request #732 from github/post-release-prep/codeql-cli-2.9.1
...
Post-release preparation for codeql-cli-2.9.1
2022-05-06 13:15:10 +01:00
github-actions[bot]
fea657ce01
Post-release preparation for codeql-cli-2.9.1
2022-05-05 19:05:56 +00:00
Alex Ford
4844e4f454
ruby: replace the dataflow layer RBI library with the AST layer version
2022-05-05 18:40:12 +01:00
Alex Ford
bedb1d4584
ruby: Add AST layer version of the RBI library
2022-05-05 18:37:56 +01:00
Alex Ford
961f867bed
Ruby: fix getAssociatedMethod predicate to include class methods
2022-05-05 18:09:42 +01:00
Alex Ford
1e3ab52e1f
ruby: tidy up methodSignatureSuccessorNodeRanked predicate
2022-05-05 18:09:42 +01:00
Alex Ford
08fa397877
ruby: new rbi test case
2022-05-05 18:09:27 +01:00
Erik Krogh Kristensen
efe306733e
move path-injection MaD to PathInjectionCustomizations.qll
2022-05-05 16:51:39 +02:00
thibaut hansmann
3006935141
C/C++ : FIx the research for UInt16, 32 and 64 + Fix 2 first line of the query
2022-05-05 15:22:50 +02:00
thibaut hansmann
c15c216c47
C/C++ : change Variable and ArrayType name + Add detection for Uint 32 and 64
2022-05-05 14:27:50 +02:00
Erik Krogh Kristensen
2292dc5a45
Merge pull request #12 from RasmusWL/move-tests-back
...
Move tests back into `frameworks/` folder
2022-05-05 14:23:05 +02:00
Rasmus Wriedt Larsen
dfe99b0b51
Python: Apply suggestions from code review
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2022-05-05 14:14:44 +02:00
Rasmus Wriedt Larsen
0a589bed4e
Python: Add inline test of MaD sinks
...
This enables us to keep the framework modeling tests under `/frameworks`
folder
I had hoped to use `mad-sink[<kind>]` syntax, but that was not allowed
:(
Maybe it oculd be allowed in the future, but for now I'll stick with the
more ugly solution of `mad-sink__<kind>`
2022-05-05 13:11:43 +02:00
Erik Krogh Kristensen
0c0e280637
update the qhelp to mention that the GITHUB_TOKEN only sometimes has write-access
2022-05-05 12:12:29 +02:00
Erik Krogh Kristensen
c0152a46bc
rename getAReferencedExpression to getASimpleReferenceExpression and add examples of what it can parse
2022-05-05 11:02:47 +02:00
Erik Krogh Kristensen
dc1dc2a33a
parse the uses field in the getters instead of the charpred
2022-05-05 10:40:08 +02:00
Erik Krogh Kristensen
9ea0f71581
convert TODO to a note in Actions::Uses
2022-05-05 10:28:00 +02:00
Erik Krogh Kristensen
1f00ba812a
move YAMLMappingLikeNode to the standard library
2022-05-05 10:22:52 +02:00
Rasmus Wriedt Larsen
6ae5ef9f3b
Revert "move most of asyncpg test into SqlInjection after moving MaD sql-injection sink"
...
This reverts commit 4b9c9b0c8d .
2022-05-05 10:20:41 +02:00
Joe Farebrother
64227c9109
Fix codescanning alerts
2022-05-04 15:58:30 +01:00
Joe Farebrother
c7d30087d1
Fix issue with named backrefs; add needed import
2022-05-04 15:41:42 +01:00
Joe Farebrother
2d82dfba38
Reorder backreference predicates
2022-05-04 15:41:41 +01:00
Joe Farebrother
9078e13f1c
Apply reveiw suggestions
...
- make java imports private
- qdoc fixes
- reorder predicates
- simplifications
2022-05-04 15:41:41 +01:00
Joe Farebrother
b854a2185e
Fix use of sinkModel
2022-05-04 15:41:41 +01:00
Joe Farebrother
b08f22c24d
Remove unnecassary import
2022-05-04 15:41:41 +01:00
Joe Farebrother
66ab2bca75
Update PrintAst test output
2022-05-04 15:41:41 +01:00
Joe Farebrother
eec57d4f25
Simplify dataflow logic by using only one configuration, and expessing more sinks with models-as-data
2022-05-04 15:41:41 +01:00
Joe Farebrother
2a80540157
Sync shared files
2022-05-04 15:41:40 +01:00
Joe Farebrother
5e3ba130dc
Add a test for deeply nested sequences
2022-05-04 15:41:40 +01:00
Joe Farebrother
4ed2e8d1fd
Update tests to account for only regexes with quantifiers being considered
2022-05-04 15:41:40 +01:00
Joe Farebrother
e5ca924240
Allow quantifiers invoving {}; add comments
2022-05-04 15:41:40 +01:00
Chris Smowton
bc17d4b91f
Break the recursion between seqChild, RegExpTerm and TRegExpSequence
2022-05-04 15:41:40 +01:00
Chris Smowton
0d13864bc8
Restrict polynomial ReDoS' strings-parsed-as-regexes search to those that could possibly be interesting
...
In practice for polynomial ReDoS this means those regexes containing at least one potentially-infinite quantifier (* or +).
2022-05-04 15:41:39 +01:00
Joe Farebrother
0f606d987d
Remove redundant super call.
...
Co-authored-by: Tony Torralba <atorralba@users.noreply.github.com >
2022-05-04 15:41:39 +01:00
Joe Farebrother
522a8aff6f
Fix filename case
2022-05-04 15:41:39 +01:00
Joe Farebrother
3d65a9cafc
Update shared files
2022-05-04 15:41:39 +01:00
Joe Farebrother
375ded4ede
Move check to exlude test cases so that it also covers exponential redos
2022-05-04 15:41:39 +01:00
Joe Farebrother
1605d36ddf
Refine polynomial redos sources to exclude length limited methods
2022-05-04 15:41:39 +01:00
Joe Farebrother
04edc10f1e
Exclude regexes from test code
2022-05-04 15:41:38 +01:00
Joe Farebrother
6794268a3c
Split PolynomialRedos definition into a library to avoid duplication in the tests
2022-05-04 15:41:38 +01:00
Joe Farebrother
c1290d9e2b
Sync shared redos library files.
2022-05-04 15:41:38 +01:00
Joe Farebrother
5555985ad6
Distingush between whether or not a regex is matched against a full string
...
Also some fixes and additional tests
2022-05-04 15:41:38 +01:00
Joe Farebrother
0a5268aeb4
Sync shared library changes across languages.
2022-05-04 15:41:38 +01:00
Joe Farebrother
bb562643c6
Support possessive quantifiers, which cannot backtrack.
...
They are approximated by limiting them to up to one repetition (effectively making *+ like ? and ++ like a no-op).
2022-05-04 15:41:37 +01:00
Joe Farebrother
49374b877a
Fix parsing of alternations in character classes
2022-05-04 15:41:37 +01:00
Joe Farebrother
5ba6bafbef
Use occursInRegex more ccnsistently throughout
2022-05-04 15:41:37 +01:00
Chris Smowton
f5809a7440
ReDoS performance fixes
2022-05-04 15:41:37 +01:00
Joe Farebrother
2d963176bf
Fix change note
2022-05-04 15:41:37 +01:00
Joe Farebrother
9bd3916800
Add change note
2022-05-04 15:41:37 +01:00
Joe Farebrother
3ce0c2c23b
Add more regex use functions in String
2022-05-04 15:41:36 +01:00
Joe Farebrother
5364001aa2
Update docs to be about Java
2022-05-04 15:41:36 +01:00
Joe Farebrother
c312b4b6b0
Add missing qldoc
2022-05-04 15:41:36 +01:00
Joe Farebrother
57ba8a4d1b
Improve handling of hex escapes; and support some named character classes
2022-05-04 15:41:36 +01:00
Joe Farebrother
5143585080
Fix to PolynomialRedos not finding results and to test cases not finding that
2022-05-04 15:41:36 +01:00
Joe Farebrother
91887ab229
Sync shared files
2022-05-04 15:41:36 +01:00
Joe Farebrother
e23162d91b
Add test cases for PolynomialRedos dataflow logic; make fixes
2022-05-04 15:41:35 +01:00
Joe Farebrother
5a4316d945
Add test cases for exponential redos query
2022-05-04 15:41:35 +01:00
Joe Farebrother
457cf41825
Support more escaped characters
2022-05-04 15:41:35 +01:00
Joe Farebrother
4b845d5dac
Move test cases to their own directory to avoid conflict
2022-05-04 15:41:35 +01:00
Joe Farebrother
9f4da65030
Improve calculation of locations of regex terms
2022-05-04 15:41:35 +01:00
Joe Farebrother
dd200e29d4
Improve char set depth calculation
2022-05-04 15:41:35 +01:00
Joe Farebrother
e797d2195c
Topologically sort RegexString
2022-05-04 15:41:34 +01:00
Joe Farebrother
bc109521aa
Simplify octal handling
2022-05-04 15:41:34 +01:00
Joe Farebrother
9e88c67c19
Add more test cases; make some fixes
2022-05-04 15:41:34 +01:00
Joe Farebrother
aa1337db86
Apply style suggestions from code review
2022-05-04 15:41:34 +01:00
Joe Farebrother
e954db293a
Convert snake case predicates to camel case
2022-05-04 15:41:34 +01:00
Joe Farebrother
5b61de67de
Implement style/doc suggestions from code review
2022-05-04 15:41:33 +01:00
Joe Farebrother
28649da187
Add parser tests; fix some parser issues.
...
[temporarily renamed existing regex/Test.java during rebasing to avoid conflict]
2022-05-04 15:41:33 +01:00
Joe Farebrother
8e1918216e
Add PrintAst support for regex terms
2022-05-04 15:41:33 +01:00
Joe Farebrother
ca422a2186
Use explicit this
2022-05-04 15:41:33 +01:00
Joe Farebrother
f9f7a01f57
Add Java ReDoS libraries to identical-files.json
2022-05-04 15:41:33 +01:00
Joe Farebrother
11e465f2ac
Implement remaining syntax differences
2022-05-04 15:41:33 +01:00
Joe Farebrother
7530902ad7
Add approximate support for nested character classes.
...
This shouldn't fail to parse on any correctly formed character class; but may give incorrect contents when nested classes are involved.
2022-05-04 15:41:33 +01:00
Joe Farebrother
d04c99b0be
Support quote sequences
2022-05-04 15:41:32 +01:00
Joe Farebrother
59945cd8b3
Add dataflow logic to PolynomialRedDoS
2022-05-04 15:41:30 +01:00
Joe Farebrother
37240f01d2
Copy Redos queries from python
...
Todo: Implement dataflow for polynomialredos; update docs to reference java rather than python
2022-05-04 15:40:58 +01:00
Joe Farebrother
a8f7a4459e
Port redos libraries from Python
2022-05-04 15:40:56 +01:00
Erik Krogh Kristensen
8e2b00d209
make the big disjunctions more readable by using a set literal
2022-05-04 16:15:17 +02:00
Erik Krogh Kristensen
31a4de902e
add missing security severity
2022-05-04 16:15:17 +02:00
Erik Krogh Kristensen
7530923af3
add missing qldoc
2022-05-04 16:14:59 +02:00
Erik Krogh Kristensen
d8cc82bdb1
add change-note
2022-05-04 16:14:59 +02:00
Erik Krogh Kristensen
df4bfef8c7
expand the qhelp for js/actions/injection
2022-05-04 16:14:59 +02:00
Erik Krogh Kristensen
48fb01f9f7
set js/actions/injection as a high precision warning query
2022-05-04 16:14:54 +02:00
Erik Krogh Kristensen
2a65d1d3ec
move js/actions/injection out of experimental
2022-05-04 16:14:19 +02:00
Erik Krogh Kristensen
fc6eedd07a
generalize the file pattern for github/actions related YAML
2022-05-04 16:14:19 +02:00
Erik Krogh Kristensen
bc470b89f1
leave a deprecated alias for Actions.qll
2022-05-04 16:14:19 +02:00
Erik Krogh Kristensen
9db67d4988
move the Actions API out of experimental
2022-05-04 16:14:19 +02:00
Alex Ford
1af5c680fa
ruby: drop the CallableCfgNode classes
2022-05-04 14:07:04 +01:00
Alex Ford
687602b6f1
ruby: drop a TODO
2022-05-04 14:06:37 +01:00
Alex Ford
4210973ade
ruby: drop unnecessary getExpr
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2022-05-04 14:04:34 +01:00
Owen Mansel-Chan
570d3f47c4
Use os.Stat instead of os.File.Stat
2022-05-04 10:11:53 +01:00
Erik Krogh Kristensen
4b9c9b0c8d
move most of asyncpg test into SqlInjection after moving MaD sql-injection sink
2022-05-04 10:59:02 +02:00
Erik Krogh Kristensen
a812d4dd34
move the MaD sql-injection sink to SqlInjectionCustomizations.qll
2022-05-04 10:59:02 +02:00
Erik Krogh Kristensen
571fc3e73b
Revert "deprecate SqlConstruction"
...
This reverts commit c0eca0d09a .
2022-05-04 10:59:02 +02:00
Erik Krogh Kristensen
1062aae21c
add test that the foo.bar package syntax works
2022-05-04 10:58:59 +02:00
Erik Krogh Kristensen
ead978187d
adjust the source-type for remote-flow from MaD
2022-05-03 22:53:41 +02:00
Erik Krogh Kristensen
8ffc05c84b
count both named and positional arguments in the WithArity filter
2022-05-03 21:21:57 +02:00
Owen Mansel-Chan
22ccbbaae8
Run go mod tidy -e if go.mod exists
2022-05-03 14:57:13 +01:00
Erik Krogh Kristensen
c0eca0d09a
deprecate SqlConstruction
2022-05-02 12:58:21 +02:00
Erik Krogh Kristensen
6c67e51ec3
add test for the .Call token
2022-05-02 12:58:21 +02:00
Erik Krogh Kristensen
9c3d45a16a
last test of taint steps
2022-05-02 12:58:21 +02:00
Erik Krogh Kristensen
894252dfa7
third test of taint steps
2022-05-02 12:58:21 +02:00
Erik Krogh Kristensen
0f1e070d82
second test of taint steps
2022-05-02 12:58:21 +02:00
Erik Krogh Kristensen
649df1dd31
simple taint-flow test
2022-05-02 12:58:21 +02:00
Erik Krogh Kristensen
a8790412dd
add support for the Argument[any] and Argument[any-named] tokens
2022-05-02 12:58:21 +02:00
Erik Krogh Kristensen
b1fa7f86a8
add support for the any argument tokens
2022-05-02 12:58:15 +02:00
Erik Krogh Kristensen
413d182bcf
add support for named parameters
2022-05-02 12:56:44 +02:00
Erik Krogh Kristensen
c1d3738fb8
fix API-graphs such that the first parameter is the first non-self parameter
2022-05-02 12:52:02 +02:00
Erik Krogh Kristensen
547047ef19
add self parameters to API-graphs, and add support for self parameters in MaD
2022-05-02 12:50:31 +02:00
Erik Krogh Kristensen
dc38aa8a96
add support for the Method[name] token
2022-05-02 12:50:29 +02:00
Erik Krogh Kristensen
ea01bcf5ec
have the Instance token be an alias for Subclass.ReturnValue
2022-05-02 12:45:21 +02:00
Erik Krogh Kristensen
46acce0ad4
add support for the Subclass token
2022-05-02 12:45:21 +02:00
Erik Krogh Kristensen
a02e812de8
add test for the Instance token
2022-05-02 12:45:21 +02:00
Erik Krogh Kristensen
682cab3737
add test for awaited
2022-05-02 12:45:21 +02:00
Erik Krogh Kristensen
48408ca45d
Add TODO list
2022-05-02 12:45:21 +02:00
Erik Krogh Kristensen
8d60336396
add tests for callsite filters
2022-05-02 12:45:21 +02:00
Erik Krogh Kristensen
20992af037
add test for parameter syntax
2022-05-02 12:45:21 +02:00
Erik Krogh Kristensen
35b143a1a5
add tests for argument syntax
2022-05-02 12:45:21 +02:00
Erik Krogh Kristensen
86a9bc6aca
add test for keyword arguments
2022-05-02 12:45:21 +02:00
Erik Krogh Kristensen
d4b882519a
convert most of the asyncpg model to MaD
2022-05-02 12:45:21 +02:00
Erik Krogh Kristensen
1c2c9159a9
initial MaD implementation for Python
2022-05-02 12:45:19 +02:00
thibaut hansmann
83e26f41c0
C/C++ : Wrong Uint access
2022-05-01 14:53:52 +02:00
Erik Krogh Kristensen
4585e8a874
QL: point the dataset measure workflow to a merge_stats.py file that exists
2022-04-29 15:31:07 +02:00
Tony Torralba
12320aa5d2
Fix Intent Redirection sanitizer
2022-04-29 12:19:49 +02:00
Erik Krogh Kristensen
dfe2140902
slight simplification
2022-04-29 11:22:12 +02:00
Owen Mansel-Chan
ee94eb5962
Merge pull request #727 from cklin/fix-ql-comments-syntax
...
Fix Beego references
2022-04-29 09:19:24 +01:00
Chuan-kai Lin
d2fccbea95
Fix Beego references
2022-04-28 12:52:21 -07:00
Mathias Vorreiter Pedersen
ff677cd756
Merge pull request #726 from github/release-prep/2.9.1
...
Release preparation for version 2.9.1
2022-04-28 14:45:19 +01:00
github-actions[bot]
bcd2c009e3
Release preparation for version 2.9.1
2022-04-28 11:58:54 +00:00
Mathias Vorreiter Pedersen
b8165d47b7
Merge pull request #724 from github/post-release-prep/codeql-cli-2.9.0
...
Post-release preparation for codeql-cli-2.9.0
2022-04-25 22:53:17 +01:00
Alex Ford
b956616a56
Ruby: fix alert
2022-04-25 11:25:57 +01:00
Alex Ford
869d827768
Revert "Ruby: extract rbi files"
...
This reverts commit ba9342e0f38f4468d04bad987a8f69e95fdbdd5f.
2022-04-24 22:48:52 +01:00
Alex Ford
de35bd987a
Ruby: extract rbi files
2022-04-24 22:48:52 +01:00
Alex Ford
ad3a9b19e4
Ruby: test files for RBI library
2022-04-24 22:48:52 +01:00
Alex Ford
e03ce8f9f2
Ruby: add experimental library to support RBI files
2022-04-24 22:48:52 +01:00
Alex Ford
e3e02c98ea
Ruby: Add ExprNodes::CallableCfgNode and ExprNodes::MethodBaseCfgNode
2022-04-24 22:27:20 +01:00
github-actions[bot]
59cc2898c9
Post-release preparation for codeql-cli-2.9.0
2022-04-21 19:22:17 +00:00
Mathias Vorreiter Pedersen
d2d92fad36
Merge pull request #723 from github/release-prep/2.9.0
...
Release preparation for version 2.9.0
2022-04-21 17:14:45 +01:00
Owen Mansel-Chan
6f91cc1cb1
Merge pull request #719 from owen-mc/bugfix/find-callee-through-function-variables
...
Look for callees through function variables
2022-04-21 17:00:59 +01:00
github-actions[bot]
355f4c6186
Release preparation for version 2.9.0
2022-04-21 14:48:55 +00:00
Owen Mansel-Chan
5f3b913d7f
Add change note
2022-04-21 11:34:51 +01:00
Owen Mansel-Chan
62489e1afd
Fix viableCallable for function variables
2022-04-21 11:32:08 +01:00
Owen Mansel-Chan
69c9099a24
Look for callees through function variables
2022-04-21 11:32:07 +01:00
Owen Mansel-Chan
373017ab9d
Add tests for callees through function variables
2022-04-21 11:32:07 +01:00
Owen Mansel-Chan
528a735a0d
Improve CallNode.getCalleeName
...
Note that any results from expr.getTarget().getName() are also results
from expr.getCalleeName(), so it was redundant to have a disjunction of
both of them.
2022-04-21 11:30:28 +01:00
Owen Mansel-Chan
b6702b644d
Improve documentation of CallExpr.getCalleeName
2022-04-21 11:30:27 +01:00
Geoffrey White
cdce72b87c
C++: Better join order for reachesWithoutAssignment.
2022-04-12 17:34:02 +01:00
Chris Smowton
a8eeef6ef8
Merge pull request #718 from owen-mc/fix-incorrect-integer-conversion-for-type-assertions
...
Integer conversion should ignore type assertions
2022-04-12 12:44:43 +01:00
Owen Mansel-Chan
f9f21e9891
Integer conversion should ignore type assertions
2022-04-12 10:58:07 +01:00
Edoardo Pirovano
b953fe39c2
Merge pull request #716 from github/edoardo/3.5-mergeback
...
Merge `rc/3.5` branch into `main`
2022-04-08 20:43:15 +01:00
Dave Bartolomeo
e3b7ba6b1f
Revert "Bump version of suite-helpers dependency"
...
This reverts commit 49e568ed44 .
2022-04-08 14:06:59 -04:00
Dave Bartolomeo
49e568ed44
Bump version of suite-helpers dependency
2022-04-08 13:11:33 -04:00
Owen Mansel-Chan
f196538953
Merge pull request #714 from owen-mc/fix-get-enclosing-callable
...
Extend DataFlowCallable to include file scopes
2022-04-08 17:02:35 +01:00
Edoardo Pirovano
16c0f11c00
Bump minor version of packs
2022-04-08 15:51:34 +01:00
Owen Mansel-Chan
b9ff1ccd45
Add change note
2022-04-08 15:23:24 +01:00
Ian Lynagh
6f6e8bfbd1
Merge pull request #713 from github/post-release-prep/codeql-cli-2.8.5
...
Post-release preparation for codeql-cli-2.8.5
2022-04-08 15:09:08 +01:00
Owen Mansel-Chan
76a0a51f39
Merge pull request #715 from owen-mc/print-empty-interface-with-single-space
...
Pretty-print empty interface without double space
2022-04-08 11:46:04 +01:00
Owen Mansel-Chan
880afea959
Pretty-print empty interface without double space
2022-04-08 06:09:56 +01:00
Owen Mansel-Chan
603c1d518e
Extend DataFlowCallable to include file scopes
...
The motivation is so that getEnclosingCallable() can cope with
nodes that are not in a callable.
2022-04-05 16:00:53 +01:00
github-actions[bot]
469af4c501
Post-release preparation for codeql-cli-2.8.5
2022-04-01 16:21:57 +00:00
Ian Lynagh
837d1fbe38
Merge pull request #712 from github/release-prep/2.8.5
...
Release preparation for version 2.8.5
2022-04-01 14:07:16 +01:00
github-actions[bot]
950519c884
Release preparation for version 2.8.5
2022-04-01 10:39:24 +00:00
Chris Smowton
314bd20eb2
Merge pull request #711 from rverme/patch-1
...
Address incorrectly referenced parameter in QLdoc
2022-04-01 11:22:57 +01:00
rverme
9b6dd60615
Address incorrectly reference parameter in QLdoc
...
The qldoc of the predicate `isParameterOf` mentions the parameter `fd` that does not exists and is possible replaced by `c`
2022-04-01 09:37:56 +02:00
Erik Krogh Kristensen
06fdaacd82
just look at the field name in the "detect uses of the field in an inbetween class"-check
2022-03-31 15:30:56 +02:00
Erik Krogh Kristensen
fa651d2f60
remove the override restriction from ql/unused-field
2022-03-31 15:30:19 +02:00
Ian Lynagh
e9acb4f8e8
Merge pull request #706 from github/post-release-prep/codeql-cli-2.8.4
...
Post-release preparation for codeql-cli-2.8.4
2022-03-30 16:35:29 +01:00
haby0
1e6893e230
Update python/ql/src/experimental/semmle/python/security/injection/CsvInjection.qll
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2022-03-30 22:54:30 +08:00
Owen Mansel-Chan
79e6f7876b
Merge pull request #710 from owen-mc/delete-consistency
...
Delete unused file DataFlowImplConsistency
2022-03-30 15:15:55 +01:00
haby0
8f2013c32e
Simplify StartsWithCheck
2022-03-30 19:04:03 +08:00
Owen Mansel-Chan
8a3a58ca76
Delete unused file DataFlowImplConsistency
2022-03-30 11:03:46 +01:00
haby0
bf8c7a2ea7
Added Sanitizer Guard
2022-03-29 14:29:33 +08:00
github-actions[bot]
9ba21923a3
Post-release preparation for codeql-cli-2.8.4
2022-03-21 19:36:39 +00:00
Ian Lynagh
30bd1a6eb6
Merge pull request #704 from github/release-prep/2.8.4
...
Release preparation for version 2.8.4
2022-03-21 16:27:35 +00:00
github-actions[bot]
b96eba9875
Release preparation for version 2.8.4
2022-03-21 13:26:27 +00:00
Erik Krogh Kristensen
f3ca6bbc2e
PY: update expected output after fixing bug in flask model
2022-03-17 09:42:30 +01:00
Erik Krogh Kristensen
879680057e
fix all ql/unused-field warnings
2022-03-17 09:41:42 +01:00
Erik Krogh Kristensen
d5fd0d6724
add ql/unused-field query
2022-03-17 09:40:16 +01:00
haby0
e11c74c580
Delete redundant comments
2022-03-15 15:25:08 +08:00
haby0
4195eef9ba
Add CSV injection model
2022-03-15 15:15:38 +08:00
Arthur Baars
be412b1b5d
Merge pull request #702 from github/post-release-prep/codeql-cli-2.8.3
...
Post-release preparation for codeql-cli-2.8.3
2022-03-14 21:04:37 +01:00
github-actions[bot]
4bd2553a7f
Post-release preparation for codeql-cli-2.8.3
2022-03-11 09:23:25 +00:00
Arthur Baars
77b879f480
Merge pull request #701 from github/release-prep/2.8.3
...
Release preparation for version 2.8.3
2022-03-11 08:07:57 +01:00
github-actions[bot]
e7cf172119
Release preparation for version 2.8.3
2022-03-10 19:43:52 +00:00
Owen Mansel-Chan
807ef2e5ef
Merge pull request #700 from smowton/smowton/fix/filepath-clean
...
Treat path.Clean and filepath.Clean alike re: tainted path sanitization
2022-03-09 06:18:26 +00:00
Chris Smowton
e8084233b8
Treat path.Clean and filepath.Clean alike re: tainted path sanitization
2022-03-08 16:42:59 +00:00
Tamás Vajk
30c80622ed
Merge pull request #699 from github/post-release-prep/codeql-cli-2.8.2
...
Post-release preparation for codeql-cli-2.8.2
2022-03-01 11:44:45 +01:00
github-actions[bot]
dd3fc2d477
Post-release preparation for codeql-cli-2.8.2
2022-03-01 09:24:17 +00:00
Tamás Vajk
3125f49853
Merge pull request #698 from github/release-prep/2.8.2
...
Release preparation for version 2.8.2
2022-02-24 20:08:04 +01:00
Tamas Vajk
8d329c55ab
Fix typo in change logs
2022-02-24 16:10:44 +01:00
github-actions[bot]
3840ce8444
Release preparation for version 2.8.2
2022-02-24 14:56:57 +00:00
Chris Smowton
b1cdde6913
Merge pull request #697 from github/smowton/admin/move-change-note
...
Move new-query change note to src pack
2022-02-24 12:43:48 +00:00
Chris Smowton
60bd4648a1
Re-add change note to src pack
2022-02-24 11:06:00 +00:00
Chris Smowton
28c3c0090e
Move new query change note to src pack
2022-02-24 11:00:11 +00:00
Chris Smowton
106ee5b8a2
Merge pull request #696 from asgerf/asgerf/dot-separated-access-paths
...
Go: Switch to dot-separated access paths in summary specs
2022-02-22 15:34:27 +00:00
Owen Mansel-Chan
980c27423a
Merge pull request #681 from owen-mc/new-query/wrapped-error-always-nil
...
Add query "Wrapped error always nil"
2022-02-22 12:42:16 +00:00
Owen Mansel-Chan
0cd5e520aa
Update expected alert message
2022-02-22 11:14:19 +00:00
Asger Feldthaus
cb38df5980
Go: rewrite access paths to dot-style
2022-02-21 14:56:54 +01:00
Asger Feldthaus
846a876c44
Go: update to use new API exposed by FlowSummaryImpl.qll
2022-02-21 14:53:05 +01:00
Asger Feldthaus
da52cb24f6
Go: sync FlowSummaryImpl and AccessPathSyntax.qll
2022-02-21 14:40:23 +01:00
Owen Mansel-Chan
e8c2ab745e
Apply suggestions from code review from docs team
...
Co-authored-by: hubwriter <hubwriter@github.com >
2022-02-21 13:19:47 +00:00
Arthur Baars
0f15d71cd8
Merge pull request #694 from github/post-release-prep/codeql-cli-2.8.1
...
Post-release preparation for codeql-cli-2.8.1
2022-02-15 20:16:09 +01:00
github-actions[bot]
a89ae0b65e
Post-release preparation for codeql-cli-2.8.1
2022-02-11 11:07:13 +00:00
Owen Mansel-Chan
fbd73a3ed5
Merge pull request #690 from asgerf/asgerf/sync-flow-summary-impl
...
Go: sync FlowSummaryImpl.qll
2022-02-11 10:50:37 +00:00
Asger Feldthaus
620bdf22c2
Go: add new sink to completetest.ql as well
2022-02-11 09:44:27 +01:00
Arthur Baars
6403a23af3
Merge pull request #693 from github/release-prep/2.8.1
...
Release preparation for version 2.8.1
2022-02-11 09:38:37 +01:00
Asger Feldthaus
6bfc0a7a1c
Go: use parseConstantOrRange in parseReturn
2022-02-11 08:38:15 +01:00
Asger Feldthaus
66545dbe41
Go: fix parsing of n1..n2 in parseConstantOrRange
2022-02-11 08:35:18 +01:00
Asger Feldthaus
a26bfb0926
Go: add test with Argument[0..2] spec
2022-02-11 08:34:31 +01:00
github-actions[bot]
6f0e1a284f
Release preparation for version 2.8.1
2022-02-10 22:08:16 +00:00
Owen Mansel-Chan
317376583c
Minor changes to qhelp
2022-02-10 13:25:20 +00:00
Owen Mansel-Chan
a008bd4f25
Add a change note
2022-02-10 13:25:20 +00:00
Robin Neatherway
4ba4b5a811
Add query help for WrappedErrorAlwaysNil
2022-02-10 13:25:20 +00:00
Owen Mansel-Chan
98c60f31a6
Simplify comparison of DataFlow::Node and IR::Instruction
...
Co-authored-by: Chris Smowton <smowton@github.com >
2022-02-10 13:25:19 +00:00
Owen Mansel-Chan
9b61ed9578
Add query "Wrapped error always nil"
2022-02-10 13:25:19 +00:00
Asger Feldthaus
6d4b4df717
Go: auto format
2022-02-10 13:27:46 +01:00
Asger Feldthaus
f66cad85be
Go: sync FlowSummaryImpl.qll
2022-02-10 13:08:54 +01:00
Chris Smowton
b51b6069fc
Merge pull request #689 from github/codeql-cli-2.8.0-copy
...
Main merged into codeql-cli-2.8.0
2022-02-09 19:21:06 +00:00
Tamas Vajk
29391a173a
Merge branch 'main' into codeql-cli-2.8.0-copy
2022-02-09 18:25:08 +01:00
Tamás Vajk
92862fa4b5
Merge pull request #684 from github/post-release-prep/codeql-cli-2.8.0
...
Post-release preparation for codeql-cli-2.8.0
2022-02-09 18:07:28 +01:00
github-actions[bot]
b3d63aca33
Post-release preparation for codeql-cli-2.8.0
2022-02-09 16:41:28 +01:00
github-actions[bot]
9c12f1a5fa
Release preparation for version 2.8.0
2022-02-09 16:40:48 +01:00
Owen Mansel-Chan
85db49cd00
Merge pull request #685 from github/smowton/fix/windows-2019-ci
...
CI: Run on Windows 2019
2022-02-09 13:33:24 +00:00
Chris Smowton
c547f47ca2
CI: Run on Windows 2019
...
Tracer appears to not yet support win2022
2022-02-09 11:59:53 +00:00
Owen Mansel-Chan
034f3d5e76
Merge pull request #683 from lyoung-confluent/patch-2
...
Match gopkg.in import of squirrel for SQLi query
2022-02-08 12:19:15 +00:00
Luke Young
324f8f7eba
codeql query format
2022-02-07 11:24:02 -08:00
Erik Krogh Kristensen
4c317f5753
apply suggestions from doc review
...
Co-authored-by: Matt Pollard <mattpollard@users.noreply.github.com >
2022-02-07 09:43:49 +01:00
Luke Young
3b32425567
remove .v1 from gopkg.in
2022-02-03 23:36:11 -08:00
Luke Young
dea1959e21
Match gopkg.in import of squirrel for SQLi query
2022-02-03 13:29:38 -08:00
Robin Neatherway
e3feece94e
Merge pull request #680 from github/rneatherway/example-query
...
Add an example query for inexhaustive switches
2022-02-02 17:33:22 +00:00
Erik Krogh Kristensen
35999a7f8f
add support for fs-extra methods in insecure-temporary-file
2022-02-02 15:14:43 +01:00
Erik Krogh Kristensen
573f17dc63
fix typos in documentation
...
Co-authored-by: Stephan Brandauer <kaeluka@github.com >
2022-02-02 15:00:38 +01:00
Robin Neatherway
4a4b9c30d7
Add an example query for inexhaustive switches
2022-02-02 11:38:15 +00:00
Owen Mansel-Chan
f351924fcc
Merge pull request #679 from owen-mc/add-error-expr-to-dbscheme
...
Add ErrorExpr to dbscheme
2022-02-01 13:32:57 +00:00
Chris Smowton
ee85d6c368
Undo whitespace change
2022-02-01 12:04:38 +00:00
Owen Mansel-Chan
613a85bcfb
Add ErrorExpr to dbscheme
2022-02-01 11:52:51 +00:00
Chris Smowton
d064b17d7b
Merge pull request #678 from smowton/smowton/feature/note-filepath-clean-sanitizer
...
Note that `filepath.Clean("/" + e)` is a sanitizer against path traversal attacks
2022-01-31 10:55:48 +00:00
Chris Smowton
de2ed83b55
Note that filepath.Clean("/" + e) is a sanitizer against path traversal attacks.
2022-01-28 19:32:58 +00:00
Andrew Eisenberg
28461f57ef
Merge pull request #675 from github/aeisenberg/examples-groups
...
Add new groups for examples packs
2022-01-27 09:26:15 -08:00
Tamás Vajk
14d227a232
Merge pull request #677 from github/release-prep/2.8.0
...
Release preparation for version 2.8.0
2022-01-27 13:36:19 +01:00
github-actions[bot]
d545716571
Release preparation for version 2.8.0
2022-01-27 10:40:14 +00:00
Andrew Eisenberg
9e0580da32
Add new groups for examples packs
...
Will make it easier to avoid publishing them.
2022-01-26 14:47:46 -08:00
Edoardo Pirovano
4a3e945346
Merge pull request #676 from github/edoardo/3.4-mergeback
...
Merge `rc/3.4` into `main`
2022-01-25 17:43:55 +00:00
Edoardo Pirovano
cc7b72af41
Merge branch rc/3.4 into main
2022-01-25 16:16:44 +00:00
Tom Hvitved
6a2f4719e8
Merge pull request #672 from github/post-release-prep/codeql-cli-2.7.6
...
Post-release preparation for codeql-cli-2.7.6
2022-01-24 13:01:01 +01:00
Owen Mansel-Chan
daabd3a045
Merge pull request #673 from owen-mc/refactor-returnvalue-n
...
Refactor `ReturnValue[n]` in data flow libraries
2022-01-24 10:47:22 +00:00
Chris Smowton
d6d1c943f1
Merge pull request #674 from erik-krogh/patches
...
use more set literals
2022-01-21 10:59:48 +00:00
Erik Krogh Kristensen
504e7a161d
simplify an redundant any() expression
2022-01-20 22:34:26 +01:00
Erik Krogh Kristensen
99994eeeb1
use set literals instead of big disjunctions
2022-01-20 22:33:40 +01:00
Chris Smowton
38048399d3
Merge pull request #671 from owen-mc/misc-clean-ups
...
Correct module name in file comment
2022-01-20 14:00:46 +00:00
Owen Mansel-Chan
44641de91b
Represent ReturnValue[n] correctly in test output
2022-01-20 13:06:35 +00:00
Owen Mansel-Chan
691bb97fdc
Move ReturnValue[]-specific code to non-shared file
2022-01-20 13:06:35 +00:00
github-actions[bot]
c52caa6322
Post-release preparation for codeql-cli-2.7.6
2022-01-20 12:59:04 +00:00
Owen Mansel-Chan
54855113c4
Correct module name in file comment
2022-01-20 12:30:52 +00:00
Chris Smowton
de07035c27
Merge pull request #670 from github/smowton/admin/remove-committed-binary
...
Delete accidentally committed binary file
2022-01-20 12:28:01 +00:00
Chris Smowton
8111fbb69b
Delete m
2022-01-20 10:57:11 +00:00
Tom Hvitved
8c00d3e643
Merge pull request #669 from github/release-prep/2.7.6
...
Release preparation for version 2.7.6
2022-01-20 10:45:00 +01:00
github-actions[bot]
1e5721b9b9
Release preparation for version 2.7.6
2022-01-20 08:21:09 +00:00
Owen Mansel-Chan
bfae3fdf97
Merge pull request #665 from owen-mc/update-function-get-a-call
...
Update `Function.getACall()`
2022-01-19 23:36:20 +00:00
Chris Smowton
5a2a15c9da
Merge pull request #668 from github/smowton/fix/no-pack-install-verify
...
Don't use codeql pack install --verify
2022-01-19 20:01:42 +00:00
Chris Smowton
7f39b1e12c
Don't use codeql pack install --verify
...
This shouldn't fail, but currently does due to a bug and is unnecessary in any case.
2022-01-19 18:40:05 +00:00
Owen Mansel-Chan
4d1dcb3260
Remove first disjunct as it is a subset of second disjunct
2022-01-19 16:21:06 +00:00
Owen Mansel-Chan
7fd2fff1ba
Merge pull request #666 from owen-mc/tainted-path-add-more-tests
...
Add tests for tainted path query checking the sanitizers and sanitizer guards work
2022-01-19 13:00:57 +00:00
Owen Mansel-Chan
85319b2dbf
Add tests for tainted path sanitizers and sanitizer guards
2022-01-19 09:49:15 +00:00
Owen Mansel-Chan
84f9b74f50
t Improve documentation of Function.getACall
2022-01-18 23:44:34 +00:00
Owen Mansel-Chan
3c02403701
Do not use getACall() when we only want direct calls
...
In both of these locations we do not want calls through interface methods.
2022-01-18 23:36:14 +00:00
Owen Mansel-Chan
1aebf4ccac
Merge pull request #664 from owen-mc/add-change-note-function-getacall
...
Add change note for change to `Function.getACall`
2022-01-18 18:12:29 +00:00
Owen Mansel-Chan
84116e1681
Update ql/lib/change-notes/2022-01-18-function-get-a-call.md
...
Co-authored-by: Chris Smowton <smowton@github.com >
2022-01-18 16:51:07 +00:00
Owen Mansel-Chan
fd1136a777
Add change note for change to Function.getACall
2022-01-18 16:42:57 +00:00
Erik Krogh Kristensen
2433eafef2
add query for detecting insecure temprary files
2022-01-18 14:54:56 +01:00
Tom Hvitved
429a9658e1
Merge pull request #657 from github/post-release-prep/codeql-cli-2.7.5
...
Post-release preparation for codeql-cli-2.7.5
2022-01-17 12:40:24 +01:00
Andrew Eisenberg
a83af5e14c
Merge pull request #661 from github/aeisenberg/changenote-upgrades-removal
...
Changenotes: Add changenotes for upgrades refactoring
2022-01-14 12:12:57 -08:00
Andrew Eisenberg
156588a6a7
Update change note
...
Co-authored-by: Aditya Sharad <6874315+adityasharad@users.noreply.github.com >
2022-01-14 10:32:47 -08:00
Andrew Eisenberg
c86e96bcc2
Merge branch 'main' into post-release-prep/codeql-cli-2.7.5
2022-01-14 08:19:47 -08:00
Andrew Eisenberg
8a4120a08d
Changenotes: Add changenotes for upgrades refactoring
2022-01-12 11:38:43 -08:00
github-actions[bot]
970e8e1f91
Post-release preparation for codeql-cli-2.7.5
2022-01-12 13:28:33 +00:00
Andrew Eisenberg
2b8e4b2ffa
Merge pull request #628 from github/aeisenberg/upgrades/work
...
Push upgrades pack into lib pack
2022-01-11 14:09:06 -08:00
Andrew Eisenberg
6ceebc7d1e
Merge branch 'main' into aeisenberg/upgrades/work
2022-01-11 11:27:35 -08:00
Chris Smowton
6afd570c4c
Merge pull request #658 from smowton/smowton/feature/q-format-directive-is-safe
...
Note that the %q format directive escapes newlines, and therefore prevents log injection
2022-01-11 14:45:40 +00:00
Chris Smowton
6f598a6972
Fix formatting regex comment
2022-01-10 10:49:12 +00:00
Chris Smowton
ae5eadef28
Update ql/lib/semmle/go/frameworks/stdlib/Log.qll
...
Rename class
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com >
2022-01-10 10:24:30 +00:00
Chris Smowton
6b4a50567a
Merge pull request #659 from smowton/smowton/fix/path-transformer-use-realpath
...
Path transformer: use fully resolved path
2022-01-06 19:11:16 +00:00
Chris Smowton
e0a3ec85f3
Path transformer: use fully resolved path
...
This makes source locations consistent between databases that do and don't use the `SEMMLE_PATH_TRANSFORMER` option in the case where the original source location isn't its own realpath (i.e, some parent directory is a symbolic link).
2022-01-05 16:31:31 +00:00
Chris Smowton
749698759a
Note that the %q format directive escapes newlines, and therefore prevents log injection
2022-01-05 16:04:20 +00:00
Chris Smowton
5760841812
Merge pull request #647 from smowton/smowton/admin/not-all-you-fmt-is-log
...
Declassify fmt.Fprintf as a log sink
2022-01-05 14:09:55 +00:00
Andrew Eisenberg
49d239f4bf
Push upgrades pack into lib pack
...
PR Related to https://github.com/github/semmle-code/pull/40918
Removes the upgrades pack and uses ql/lib/upgrades instead.
Also, fix malformed parameter in instruction.
Co-authored-by: Chris Smowton <smowton@github.com >
2022-01-04 11:32:52 -08:00
Tom Hvitved
a0766e08a1
Merge pull request #656 from github/release-prep/2.7.5
...
Release preparation for version 2.7.5
2022-01-04 18:57:50 +01:00
github-actions[bot]
980c162fe3
Release preparation for version 2.7.5
2022-01-04 14:44:48 +00:00
Owen Mansel-Chan
daa55eaae2
Merge pull request #651 from erik-krogh/patches
...
various automatic patches applied to codeql-go
2022-01-04 11:46:20 +00:00
Tom Hvitved
50457d1579
Merge pull request #653 from dbartol/dbartol/move-change-notes
...
Move change notes to proper location
2022-01-04 09:35:29 +01:00
Dave Bartolomeo
171aa8bd62
Move change notes to proper location
2022-01-03 17:38:09 -05:00
Dave Bartolomeo
091906d380
Merge pull request #644 from github/post-release-prep/codeql-cli-2.7.4
...
Post-release preparation for codeql-cli-2.7.4
2022-01-03 17:09:54 -05:00
github-actions[bot]
00aae7cba5
Post-release version bumps
2022-01-03 20:10:43 +00:00
Erik Krogh Kristensen
afe7ee17a0
run the use-set-literals patch
2021-12-20 17:55:19 +01:00
Erik Krogh Kristensen
d339f13629
run the non-us-language patch
2021-12-20 17:54:18 +01:00
Erik Krogh Kristensen
4459c8e7c6
run the redundant-cast patch
2021-12-20 17:53:09 +01:00
Chris Smowton
92d3da5e56
Declassify fmt.Fprintf as a log sink
...
In future we could try harder to find out whether you're Fprintf'ing to stdout, a file named xyz.log etc, but for now this causes Fprintf'ing to an HTTP writer to be mistaken for log-injection rather than just XSS.
2021-12-17 17:07:58 +00:00
Owen Mansel-Chan
da8f8e2eef
Refactor to use SummarizedCallable, sourceElement and sinkElement
2021-12-16 19:35:54 +00:00
Owen Mansel-Chan
ec3dd1e1c0
Revert "Update tests for no flow through receivers when no function body"
...
This reverts commit 06f889fce6 .
2021-12-16 19:35:54 +00:00
Owen Mansel-Chan
9b2f29bbcd
Allow data flow through receiver for modelled methods
2021-12-16 19:35:54 +00:00
Chris Smowton
ede57b6527
Merge pull request #637 from smowton/smowton/fix/log-injection-sanitizers
...
Fix sanitization by strings.Replace[All] in go/unsafe-quoting and go/log-injection
2021-12-16 12:28:40 +00:00
Chris Smowton
f5108449a5
Update change-notes/2021-12-14-strings-replace-sanitizers.md
...
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com >
2021-12-15 20:07:34 +00:00
Chris Smowton
9de1532735
Add log-injection test using strings.ReplaceAll
2021-12-15 15:35:14 +00:00
Dave Bartolomeo
e1417f18bf
Merge pull request #640 from github/release-prep/2.7.4
...
Release preparation for version 2.7.4
2021-12-14 16:42:40 -05:00
github-actions[bot]
ee6ea0f8cb
Release preparation for version 2.7.4
2021-12-14 21:34:55 +00:00
Dave Bartolomeo
d14ea51954
Merge pull request #639 from github/dbartol/fix-change-notes
...
Fix change notes
2021-12-14 14:32:56 -05:00
Dave Bartolomeo
a3e5b4c99c
Move pre-packaging change notes to old-change-notes directory
2021-12-14 12:46:56 -05:00
Dave Bartolomeo
42ecc9b1c7
Move new change notes to appropriate pack
2021-12-14 12:46:19 -05:00
Chris Smowton
bd806a8ff7
Merge pull request #638 from owen-mc/test-database-sql-models
...
Add missing tests for DatabaseSql function models
2021-12-14 17:22:40 +00:00
Chris Smowton
f86510ee20
Update comment
2021-12-14 12:39:31 +00:00
Chris Smowton
c2b42ce091
Fix sanitization by strings.Replace[All] in go/unsafe-quoting and go/log-injection
2021-12-14 12:37:18 +00:00
Owen Mansel-Chan
6a2a8298dd
Add missing tests for DatabaseSql function models
2021-12-13 14:18:46 -05:00
Chris Smowton
9309abf8cd
Merge pull request #574 from sauyon/dataflow-update
...
Update dataflow libraries and add support for CSV summary flow
2021-12-13 11:28:28 +00:00
Chris Smowton
89b2a2f9b0
Merge pull request #633 from owen-mc/database-sql-model-incorrect
...
Fix incorrect type name in database/sql model
2021-12-13 11:01:38 +00:00
Chris Smowton
559aec1d64
Merge pull request #632 from owen-mc/refactor-variadic-helper-functions-for-builtin-functions
...
Refactor isVariadic helper functions
2021-12-13 10:59:42 +00:00
Chris Smowton
08c10bf97b
Merge pull request #625 from smowton/smowton/fix/minor-perf-improvements
...
Improve performance: join-order AllocationSizeOverflow's source and use `matches` not `regexpFind`
2021-12-13 10:36:02 +00:00
Owen Mansel-Chan
ce27b0da52
Fix incorrect type name in database/sql model
...
This error seems to have been introduced in
36bbf1eeb9
2021-12-12 17:47:52 -05:00
Owen Mansel-Chan
353aa8d603
Refactor isVariadic helper functions
...
Store information more naturally for built-in functions.
2021-12-12 16:56:26 -05:00
Dave Bartolomeo
b57d3296f1
Merge pull request #620 from github/aeisenberg/version-policies
...
Add version policies
2021-12-10 17:39:15 -05:00
Andrew Eisenberg
3cc48fea6a
Merge pull request #622 from github/post-release/v2.7.3
...
Post release/v2.7.3
2021-12-10 10:00:11 -08:00
Chris Smowton
e9e4f5a687
Improve performance: join-order AllocationSizeOverflow's source and use matches not regexpFind
...
The join order fix takes 10 seconds off that predicate; the get-a-flag changes take about 25% off compared to using regexes.
2021-12-10 12:23:50 +00:00
Chris Smowton
facda77852
Dataflow relations: narrow all dataflow nodes before taking product with Configurations
...
This is particularly important for ConversionWithoutBoundsCheckConfig which has 20 configs. By paring DataFlow::Node down to only those that have a local-flow successor, or only those with an isAdditionalFlowStep for some related configuration, the result size can be significantly reduced prior to taking the product against Configuration and finally paring down using config.fullBarrier etc.
Saves about 1m20s per analysis on cockroachdb.
2021-12-09 16:56:38 +00:00
Andrew Eisenberg
cedf55c46e
Update pack dependency
2021-12-09 07:58:14 -08:00
Owen Mansel-Chan
b234ba7f26
Fix bad join order in getAFalsifiedGuard
...
viableParamArg should be evaluated first.
2021-12-08 17:33:59 -05:00
Owen Mansel-Chan
06f889fce6
Update tests for no flow through receivers when no function body
...
This branch originally included a commit to enable flow through receivers
when there is no function body. This was dropped, to be pursued later.
2021-12-08 16:03:18 -05:00
Owen Mansel-Chan
88e7c44a6d
Update expected test results with extra nodes
2021-12-08 15:28:28 -05:00
Owen Mansel-Chan
a01f90b903
Give DataFlowCallable a user-facing name (Callable), move to Scopes.qll
...
I removed asFunctionNode() because it would need an import, but it
doesn't seem to be used anywhere.
2021-12-08 11:30:39 -05:00
Owen Mansel-Chan
a6532b988f
Allow implicit taint reads through more content types
2021-12-08 11:20:38 -05:00
Owen Mansel-Chan
754c838cc0
Fix accidental cartesian product
...
PointerContent needs to have the PointerType specified as well
2021-12-08 11:20:37 -05:00
Owen Mansel-Chan
d70307243c
Fix bad join order in BarrierGuard.guards/2
2021-12-08 11:20:37 -05:00
Owen Mansel-Chan
1a9ea38c0b
Update non-shared dataflow files to match sync
2021-12-08 11:20:36 -05:00
Owen Mansel-Chan
095fe6e4a7
Do not allow "Argument" on its own
...
# Conflicts:
# ql/test/library-tests/semmle/go/dataflow/ExternalFlow/srcs.expected
2021-12-08 11:20:36 -05:00
Sauyon Lee
b2f62b185d
Allow for Return[i] specifications
2021-12-08 11:20:36 -05:00
Owen Mansel-Chan
578a31ecd8
Keep call to defaultTaintSanitizerGuard
2021-12-08 11:20:35 -05:00
Owen Mansel-Chan
01bfbde9ae
Sync dataflow libraries again
2021-12-08 11:20:35 -05:00
Owen Mansel-Chan
1a299d2e09
Update sync-dataflow-libraries target in Makefile
...
The location of the dataflow libraries in codeql-go has changed
and there is a new file to be synced.
2021-12-08 11:20:34 -05:00
Owen Mansel-Chan
16fdb9aa11
Do not test ReturnValue as input for sink
...
The documentation in ExternalFlow.qll does not specify
that "ReturnValue" can be used as the input column.
2021-12-08 11:20:34 -05:00
Owen Mansel-Chan
63b944a1b4
Another instance of getEnclosingFunction -> getRoot
2021-12-08 11:20:34 -05:00
Chris Smowton
3cf1459c4f
Revert getACallee type change
2021-12-08 11:20:33 -05:00
Chris Smowton
6110506e02
Revert "Make getACallee return DataFlowCallable"
...
This reverts commit b4742ccdf81bec3f872923da79953c61dea103f6.
2021-12-08 11:20:33 -05:00
Owen Mansel-Chan
5ec0b09160
Diasble clearing content and add test for it
2021-12-08 11:20:32 -05:00
Owen Mansel-Chan
e940a53cc6
Test models of flow through fields
2021-12-08 11:20:32 -05:00
Owen Mansel-Chan
2d8fd71189
Comment on why summaryDataFlowCall is none()
2021-12-08 11:20:31 -05:00
Owen Mansel-Chan
adf3dc0c61
Move type assertion into declared type
2021-12-08 11:20:31 -05:00
Owen Mansel-Chan
9f763dd044
Move built-in models to ExternalFlow
2021-12-08 11:20:30 -05:00
Owen Mansel-Chan
d717734820
Do not allow "Argument" on its own
2021-12-08 11:20:30 -05:00
Owen Mansel-Chan
d2ca1fb2eb
Address review comments #2
2021-12-08 11:20:29 -05:00
Owen Mansel-Chan
12058a2621
Fix containerStoreStep and containerReadStep
2021-12-08 11:20:29 -05:00
Owen Mansel-Chan
ab8096b717
Add tests for more content types (Element, MapKey, MapValue)
2021-12-08 11:20:28 -05:00
Owen Mansel-Chan
b7aa85b054
Address some review comments
2021-12-08 11:20:28 -05:00
Owen Mansel-Chan
f375553933
Add variadic functions test for function models
2021-12-08 11:20:27 -05:00
Owen Mansel-Chan
b75def62fe
Add variadic functions test for external flow
2021-12-08 11:20:27 -05:00
Owen Mansel-Chan
d9848fe515
Add more tests for variadic functions
2021-12-08 11:20:27 -05:00
Owen Mansel-Chan
8044fb2519
Add more flow tests for external flow
2021-12-08 11:20:26 -05:00
Owen Mansel-Chan
63d997f820
(Unimportant) Fix module name for vendored stubs
...
This doesn't affect the test, but does mean that you can run
`go build` to check the test would build.
2021-12-08 11:20:26 -05:00
Owen Mansel-Chan
1929a1f7a7
Fix unrelated test in experimental
2021-12-08 11:20:25 -05:00
Owen Mansel-Chan
5e38f48b74
Autoformat
2021-12-08 11:20:25 -05:00
Owen Mansel-Chan
a3df3614a5
Convert completetest to an inline flow test
2021-12-08 11:20:24 -05:00
Owen Mansel-Chan
8f7a34f9cb
Fix external flow tests
2021-12-08 11:20:24 -05:00
Owen Mansel-Chan
71bf834765
Fix incorrect assumption
...
node2 doesn't have to be a PostUpdateNode
2021-12-08 11:20:23 -05:00
Sauyon Lee
3379790686
add flow test involving CSV
2021-12-08 11:20:22 -05:00
Sauyon Lee
a632a58221
add CSV models of append
2021-12-08 11:20:22 -05:00
Sauyon Lee
070e383516
allow empty namespaces for Go
2021-12-08 11:20:21 -05:00
Owen Mansel-Chan
70c9ca5611
Update documentation in ExternalFlow.qll
2021-12-08 11:20:21 -05:00
Owen Mansel-Chan
038f951e9f
Fix containerStoreStep
...
Update some comments as well, and change a variable name
2021-12-08 11:20:20 -05:00
Owen Mansel-Chan
be6501d8e4
Add tests for data and taint flow through arrays and var args
2021-12-08 11:20:20 -05:00
Sauyon Lee
2060731077
Add tests for external flow
2021-12-08 11:20:20 -05:00
Rasmus Wriedt Larsen
a650c56c0c
Tag queries with CWE-328
...
CWE-328: Use of Weak Hash, see https://cwe.mitre.org/data/definitions/328.html
2021-12-07 20:54:31 +00:00
Sauyon Lee
873f496038
Use basicLocalFlowStep instead of .getASuccessor
...
This prevents non-monotonic recursion through summary post-update nodes
2021-12-07 07:39:28 -05:00
Sauyon Lee
afe7edc093
Fix test output
...
Includes a bunch of new edges, but no new results
2021-12-07 07:39:28 -05:00
Sauyon Lee
0572c4785c
Model net http sources as csv
2021-12-07 07:39:27 -05:00
Sauyon Lee
bebdb0ba53
Add RangeIndexNode
2021-12-07 07:39:27 -05:00
Sauyon Lee
3750af41d3
Add standard container steps
2021-12-07 07:39:27 -05:00
Sauyon Lee
8c4a1d2559
Consider CSV remote sources as untrusted flow sources
2021-12-07 07:39:26 -05:00
Sauyon Lee
d62f417130
Remove uses of getEnclosingCallable
2021-12-07 07:39:26 -05:00
Sauyon Lee
30ab22f5a6
Fix compilation errors with new DataFlowCallable
2021-12-07 07:39:26 -05:00
Chris Smowton
b10d5cf0b0
Broaden ReturnNode to include return nodes of summaries
2021-12-07 07:39:25 -05:00
Chris Smowton
94d9d08489
Fix DataFlow::Node::getEnclosingCallable
2021-12-07 07:39:25 -05:00
Sauyon Lee
c8a2a6356a
Add summary parameter nodes
2021-12-07 07:39:25 -05:00
Sauyon Lee
4af4a11729
Make getACallee return DataFlowCallable
2021-12-07 07:39:24 -05:00
Sauyon Lee
8cba368ef5
Model archive/tar.FileInfoHeader in CSV
2021-12-07 07:39:24 -05:00
Sauyon Lee
86d3410041
Add asFunctionNode to new dataflowcallable
2021-12-07 07:39:23 -05:00
Sauyon Lee
d9383d9412
Don't use internal predicates in revel
2021-12-07 07:39:23 -05:00
Sauyon Lee
73684f483c
Allow for Return[i] specifications
2021-12-07 07:39:22 -05:00
Sauyon Lee
aa747ea5ff
Fix validation regexes for go
2021-12-07 07:39:22 -05:00
Sauyon Lee
0151cd4f2e
Document SourceOrSinkElement
2021-12-07 07:39:22 -05:00
Sauyon Lee
0b50b7b2b1
Make DataFlowCallable either a Function or a FuncLit
2021-12-07 07:39:21 -05:00
Sauyon Lee
3ac2a50497
Update test output
2021-12-07 07:39:21 -05:00
Owen Mansel-Chan
763861bef9
Keep call to defaultTaintSanitizerGuard
2021-12-07 07:39:21 -05:00
Sauyon Lee
e41d609921
Use newtype for SourceOrSinkElement
2021-12-07 07:39:20 -05:00
Sauyon Lee
9bfe1c94b3
autoformat
2021-12-07 07:39:20 -05:00
Sauyon Lee
16371ac488
Add support for summary elements
2021-12-07 07:39:19 -05:00
Sauyon Lee
96c58b58dd
Add EmptyInterfaceType
2021-12-07 07:39:19 -05:00
Sauyon Lee
26d00f1d5b
Move basicLocalFlowsStep to DataFlowPrivate
2021-12-07 07:39:19 -05:00
Sauyon Lee
3098a4ef16
Qualify uses and add imports in DataFlowNodes
2021-12-07 07:39:18 -05:00
Sauyon Lee
93f2569f1d
Refactor data-flow nodes
2021-12-07 07:39:18 -05:00
Sauyon Lee
9ceda08d13
Sync dataflow libraries
2021-12-07 07:39:12 -05:00
Sauyon Lee
4c67ef2b0b
Add FlowSummaryImpl to sync-dataflow-nodes target
2021-12-02 10:31:01 -05:00
Sauyon Lee
459f4d18a8
Fix sync-dataflow-libraries
2021-12-02 10:31:01 -05:00
Andrew Eisenberg
b714988d7c
Post release 2.7.3
2021-12-01 14:34:07 -08:00
Andrew Eisenberg
e9864c5506
Add version policies
...
This controls how the qlpacks' versions will change
after a release.
2021-12-01 09:37:11 -08:00
Dave Bartolomeo
b2ca04ce1b
Temporarily vendor codeql/suite-helpers
2021-12-01 11:40:10 -05:00
Chris Smowton
894102defd
Merge pull request #621 from owen-mc/extractor-add-variadic-to-type-label
...
Update extractor to distinguish variadic and non-variadic signature types
2021-12-01 15:44:09 +00:00
Owen Mansel-Chan
d0c9aacd54
Distinguish variadic and non-variadic signature types in extractor
2021-12-01 09:33:44 -05:00
Owen Mansel-Chan
628835d3b3
Add failing tests for isVariadic
...
`nonvariadicDeclaredFunction` has the same signature as
`variadicDeclaredFunction`, so it is being erroneously reported as
variadic.
2021-12-01 09:32:12 -05:00
Chris Smowton
e07958d64c
Merge pull request #619 from owen-mc/update-is-variadic
...
Update `isVariadic`
2021-12-01 08:48:16 +00:00
Dave Bartolomeo
02495e16d1
Merge pull request #618 from github/release-prep/2.7.3
...
Release preparation for version 2.7.3
2021-11-30 17:29:49 -05:00
github-actions[bot]
e4b5dceb14
Release preparation for version 2.7.3
2021-11-30 20:39:28 +00:00
Owen Mansel-Chan
e08007b287
Add missing qldocs for two isVariadic() predicates
2021-11-30 15:13:42 -05:00
Owen Mansel-Chan
acc5c4098a
Fix Function.isVariadic to work on external packages
...
Going via `getFuncDecl()` didn't work as we don't function declarations
from external packages. It works to use `getType()` instead.
2021-11-30 15:11:34 -05:00
Owen Mansel-Chan
a6d8deae3e
Add Fmt.Fprint to isVariadic tests
...
We didn't have any tests involving a function in an imported package.
2021-11-30 15:07:57 -05:00
Dave Bartolomeo
9373bdc206
Fix suite-helpers dependency
2021-11-30 11:35:26 -05:00
Dave Bartolomeo
8367fdbec4
Change notes
2021-11-29 16:47:56 -05:00
Dave Bartolomeo
52b68963d2
Prepare for automatic release prep
2021-11-29 16:47:30 -05:00
Erik Krogh Kristensen
adbe19878f
Merge pull request #615 from erik-krogh/explicit-this
...
apply the implicit-this patch to the remaining go code
2021-11-29 17:16:43 +01:00
Chris Smowton
b37fa9c447
Merge pull request #614 from owen-mc/always-extract-empty-interface-type
...
Always extract empty interface type
2021-11-29 12:15:52 +00:00
Erik Krogh Kristensen
1ade6c55d8
apply the implicit-this patch to the remaining go code
2021-11-29 13:10:04 +01:00
Owen Mansel-Chan
f9a3832aa2
Add extractor test that empty interface type exists
2021-11-26 15:16:09 -05:00
Owen Mansel-Chan
d35a46e2f3
Always extract an empty interface type
2021-11-26 15:04:05 -05:00
Tony Torralba
662f880ab8
Merge pull request #609 from github/atorralba/log-injection-query
...
Go: Add Log Injection query (CWE-117)
2021-11-24 15:41:43 +01:00
Tony Torralba
cc8d9bdc7f
Update ql/src/Security/CWE-117/LogInjection.qhelp
...
Co-authored-by: Matt Pollard <mattpollard@users.noreply.github.com >
2021-11-24 13:57:34 +01:00
Chris Smowton
5ed4e3651b
Merge pull request #611 from tunnelshade/main
...
Add `Where` method of squirrel sql builders to query range
2021-11-23 11:13:19 +00:00
Chris Smowton
ab9ab106e5
Merge pull request #612 from smowton/smowton/fix/zipslip-sanitizer-guard-efficiency
...
Improve ZipSlip sanitizer guard efficiency
2021-11-23 09:35:54 +00:00
tunnelshade
aeaa861fc6
Add Where method of squirrel sql builders to query range
2021-11-23 10:11:31 +05:30
Chris Smowton
271e239dee
Introduce manual magic to TaintedPathSanitizerGuardAsBacktrackingSanitizerGuard
...
This avoids computing the full `localTaint` relation when actually there are few `TaintedPath::SanitizerGuard` instances to start from.
2021-11-22 17:41:56 +00:00
Chris Smowton
8bf78b07e5
Avoid recursively defining DataFlow::BarrierGuard
...
In fact there never was true recursion, but the compiler thought there could be because it supposed that ZipSlip::SanitizerGuard growing may introduce instances that happen to also satisfy TaintedPath::SanitizerGuard. In fact this never happens, but here we make it clear by defining the shared sanitizer guards outside the DataFlow::BarrierGuard hierarchy and then introducing the sanitizers in each query that uses them.
2021-11-22 17:36:06 +00:00
Tony Torralba
f2017b626e
Fix stubs
2021-11-22 09:15:12 +01:00
Tony Torralba
c9332cdccb
Fix *Depth log levels in glog and klog
2021-11-22 09:15:01 +01:00
Tony Torralba
d4a20f1222
Autoformat
2021-11-19 18:04:51 +01:00
Tony Torralba
c886d10388
Add Log Injection query
2021-11-19 17:55:34 +01:00
Chris Smowton
4cae4b23fc
Merge pull request #606 from github/criemen/update-tracing-config
...
Update tracing-config.lua to newest API.
2021-11-17 10:49:20 +00:00
Chris Smowton
b190c4ed4a
Merge pull request #608 from smowton/smowton/fix/missing-id
...
Add missing @id tag
2021-11-16 20:06:06 +00:00
Chris Smowton
33fd1aaf2a
Add missing @id tag
2021-11-16 18:52:41 +00:00
Cornelius Riemenschneider
b3e2a83298
Update tracing-config.lua to newest API.
2021-11-15 12:35:53 +01:00
Chris Smowton
792bc4bce0
Merge pull request #596 from pupiles/feature/cwe-090
...
CWE-090: Ldap Injection
2021-11-10 11:31:36 +00:00
Chris Smowton
f3ba40e29d
Update test expectations
2021-11-10 09:42:19 +00:00
Chris Smowton
1ebb47feb3
Fix filename spelling error
2021-11-10 09:29:50 +00:00
Chris Smowton
2953a44b36
Revert changes to go.sum
2021-11-10 09:25:40 +00:00
pupiles
4d9ce49816
use stubs libs && add heuristic sanitizers
2021-11-10 14:12:45 +08:00
pupiles
70a268dc6d
remove redundant reference lib
2021-11-09 21:35:46 +08:00
pupiles
97d4359881
add test code
2021-11-09 21:31:35 +08:00
Chris Smowton
f7e6b0ad5d
Merge pull request #603 from github/criemen/lua-tracing-config
...
Add port of the existing compiler-tracing.spec files to the new Lua tracing infrastructure.
2021-11-09 11:36:03 +00:00
Chris Smowton
2c5fe1dedc
File names should be camel-case
2021-11-09 10:45:09 +00:00
Chris Smowton
bc9300ebf5
Copyedit examples
...
Fragments suffice for illustration, and the two bad and good examples can be easily combined
2021-11-09 10:42:58 +00:00
Chris Smowton
c18b11a470
Copy-edit query:
...
* Regular comments to qldoc
* Improve naming
* Update out-of-date documentation from earlier versions of the query
2021-11-09 10:31:30 +00:00
Chris Smowton
dda425ca8d
Improve query style
...
No need to highlight the sink again in the message when the sink is the alert location to begin with
2021-11-09 10:08:02 +00:00
Chris Smowton
f7c19dea71
Copyedit qhelp
2021-11-09 10:05:18 +00:00
pupiles
7f68f85002
fomat .ql inline comment
2021-11-09 14:42:32 +08:00
Chris Smowton
f96733f270
Merge pull request #602 from github/criemen/update-tracing-config
...
Remove macos compatibility stanzas from tracing config.
2021-11-08 11:46:44 +00:00
Cornelius Riemenschneider
17a9dbfb62
Add port of the existing compiler-tracing.spec files to the new Lua tracing infrastructure.
2021-11-08 12:29:06 +01:00
Cornelius Riemenschneider
a49265fb63
Remove macos compatibility stanzas from tracing config.
2021-11-08 11:27:27 +01:00
pupiles
c97d0c6ce5
Remove redundant code
2021-11-05 13:14:28 +08:00
Chris Smowton
d1a2fbe96b
Merge pull request #573 from npesaresi/feature/SSRF
...
Yet another SSRF query for Golang
2021-11-04 17:36:21 +00:00
Chris Smowton
233269869c
Tidy sanitizers, using instanceof not extends or a charpred where possible
2021-11-04 16:26:14 +00:00
Chris Smowton
23855979d5
Include UntrustedFlowSource into ServerSideRequestForgery::Source but not vice versa
2021-11-04 16:19:22 +00:00
Chris Smowton
9e218a70bb
Make imports private
2021-11-04 15:32:37 +00:00
Chris Smowton
18028dca2d
Share repeated regex
2021-11-04 15:30:34 +00:00
Chris Smowton
648a70945d
Copyedit docs and improve naming
2021-11-04 15:30:29 +00:00
Chris Smowton
a9c853257d
Fix qhelp good example
2021-11-04 14:42:54 +00:00
Chris Smowton
5256725359
Copyedit qhelp
2021-11-04 14:41:38 +00:00
valeria-meli
b84f31e918
format
2021-11-04 10:01:38 -03:00
Valeria
9f52a6654e
Merge branch 'main' into feature/SSRF
2021-11-04 09:56:10 -03:00
pupiles
4f1052b3a7
feature add common sanitizer
2021-11-04 13:16:24 +08:00
Chris Smowton
6d90b81655
Merge pull request #597 from owen-mc/var-args
...
Update dbscheme to add table for variadic signature types
2021-11-03 11:29:45 +00:00
Chris Smowton
b023b405b1
Merge pull request #599 from smowton/smowton/fix/comparison-barrier-join-order
...
Improve join order in InsufficientKeySize.ql
2021-11-03 10:08:25 +00:00
Chris Smowton
a10407823a
Merge pull request #600 from owen-mc/incorrect-integer-conversion
...
Improve "Incorrect integer conversion" query
2021-11-02 17:00:29 +00:00
Owen Mansel-Chan
8ea1f87d2b
Add change note
2021-11-02 15:09:43 +00:00
Owen Mansel-Chan
7c1b7b8810
Fix strictnessOffset in isBoundFor
2021-11-02 15:09:39 +00:00
Owen Mansel-Chan
7de6e17d86
Recognise math.MaxInt and math.MaxUint
...
Treat them as if we were on a 32-bit architecture.
2021-11-02 15:09:06 +00:00
Owen Mansel-Chan
a104a50940
Move max int value call into UpperBoundCheckGuard
2021-11-02 15:09:06 +00:00
Owen Mansel-Chan
5027d3fa44
Avoid using getIntValue()
...
Because it does not have a result if the value is
too large to fit in a 32-bit signed integer type
2021-11-02 15:09:05 +00:00
Owen Mansel-Chan
2cc0c80188
Add extra tests
2021-11-02 15:09:05 +00:00
Owen Mansel-Chan
be22373f3e
Move Incorrect Integer Conversion tests to InlineFlowTest
2021-11-02 15:09:00 +00:00
Owen Mansel-Chan
109e3660f8
Split Incorrect Integer Conversion into query and lib files
...
This is in preparation for changing the tests to use inline
expectations
2021-11-02 12:43:54 +00:00
Owen Mansel-Chan
7d333d7dbe
Add InlineFlowTest as simple inline expectation test
2021-11-02 12:43:54 +00:00
Chris Smowton
a92f144469
Improve join order in InsufficientKeySize.ql
2021-11-02 10:54:51 +00:00
Owen Mansel-Chan
644c89b751
Update expected values for tests in the same folders
2021-11-01 21:38:41 +00:00
Owen Mansel-Chan
f2757135f2
Add tests for isVariadic() on FuncDef and Function
2021-11-01 16:00:50 +00:00
Owen Mansel-Chan
e6a57b22a2
Add isVariadic() on FuncDecl and Function
2021-11-01 16:00:49 +00:00
Owen Mansel-Chan
245d85ae97
Update dbscheme to add table for variadic signature types
2021-11-01 16:00:49 +00:00
Chris Smowton
c6c25eeff6
Merge pull request #598 from GleasonK/main
...
Fixed broken/moved/redirected links.
2021-11-01 12:08:59 +00:00
Chris Smowton
b365ac5c31
QL -> CodeQL
2021-11-01 10:43:24 +00:00
Chris Smowton
9cb783dffa
Better link for CONTRIBUTING.md section 4
2021-11-01 10:42:13 +00:00
Kevin Gleason
49f4e3742f
Fixed broken/moved/redirected links.
2021-10-29 17:17:17 -04:00
pupiles
adea73da23
Merge branch 'main' into feature/cwe-090
2021-10-29 20:46:50 +08:00
pupiles
cd230bf9d7
feat:add ldap sink &&change code style
2021-10-29 20:44:03 +08:00
Chris Smowton
5cdeb40d6b
Merge pull request #594 from owen-mc/insufficient-key-size-barrier-guard
...
Add barrier guard for comparison in Insufficient Key Size query
2021-10-29 12:32:29 +01:00
Chris Smowton
004beab750
Add a good variant of test case foo10
2021-10-29 11:07:30 +01:00
zhouxufeng
89a03d46ea
add ldap inject source
2021-10-29 11:27:48 +08:00
zhouxufeng
bcdf17d16f
feat ldap inject
2021-10-28 20:42:06 +08:00
valeria-meli
434571067f
Merge branch 'main' into feature/SSRF
2021-10-28 09:06:58 -03:00
valeria-meli
9615544092
Merge commit 'e784c356916468d4f40b8f47899970c4e75dada9' into main
2021-10-28 09:06:17 -03:00
Owen Mansel-Chan
599c276fd8
Add change note
2021-10-28 10:10:39 +01:00
Owen Mansel-Chan
e0e1a4671a
Address review comments
2021-10-28 10:10:39 +01:00
Owen Mansel-Chan
cdee44bbd1
Add barrier guard for comparison
2021-10-28 10:10:38 +01:00
Chris Smowton
e784c35691
Merge pull request #595 from sauyon/patch-1
...
Add comment to `HasEllpsisTable`
2021-10-27 19:10:12 +01:00
Sauyon Lee
74da4820ee
Add comment to HasEllpsisTable
2021-10-27 08:51:58 -07:00
Andrew Eisenberg
09e70a9b8a
Merge pull request #592 from github/aeisenberg/suite-helpers
...
Update references to suite-helpers
2021-10-25 14:26:06 -07:00
Andrew Eisenberg
4b8909fe10
Update references to suite-helpers
...
Use the new pack names instead of the old names.
2021-10-25 12:11:22 -07:00
Chris Smowton
efecc9ab80
Merge pull request #591 from owen-mc/update-inline-expectations-test
...
Update inline expectations test
2021-10-21 12:41:57 +01:00
Owen Mansel-Chan
f4d9f2f2fa
Remove unused test comments
...
These were introduced in 68dca955 . Currently they aren't doing anything
as there isn't an inline expectation test for the tag "source" in this
folder. It seems they were originally intended to indicate untrusted flow
sources, but they aren't needed as we are using "noflow" to only mark the
places where there isn't a flow.
2021-10-21 11:07:59 +01:00
Owen Mansel-Chan
e01291f880
Put space after MISSING: and SPURIOUS:
...
This is the preferred style now
2021-10-21 11:07:59 +01:00
Owen Mansel-Chan
f38fd5722f
Only one dollar sign in each comment
2021-10-21 11:07:58 +01:00
Owen Mansel-Chan
09ef621b2f
Put space after first dollar sign
2021-10-21 11:07:58 +01:00
Owen Mansel-Chan
b8bd40463e
Reorder MISSING labels
...
The behaviour has changed: previously, "f+:" and "f-:" only affected the
following entry, but "MISSING:" and "SPURIOUS:" affect all following
2021-10-21 11:07:57 +01:00
Owen Mansel-Chan
f28539928a
Quote expected values that have spaces
2021-10-21 11:07:57 +01:00
Owen Mansel-Chan
5f0f04de1c
Update labels for missing and spurious results
2021-10-21 11:07:57 +01:00
Owen Mansel-Chan
7961ba6b93
Add hasActualResult predicate not using Location
2021-10-21 11:07:50 +01:00
Owen Mansel-Chan
a9165ce4a6
Sync InlineExpectationsTest.qll
2021-10-21 05:21:18 +01:00
Chris Smowton
32d71e8247
Merge pull request #585 from github/jbj/getAPrimaryQlClass-file
...
Fix getAPrimaryQlClass for File classes
2021-10-19 11:17:07 +01:00
Chris Smowton
392c084da4
Merge pull request #589 from github/aeisenberg/suites-fix
...
Suites: Switch to the `queries` directive
2021-10-18 19:19:58 +01:00
Andrew Eisenberg
198acac383
Suites: Switch to the queries directive
...
The addition of the `defaultSuite` directive means that using
the `qlpack` directive in a query suite will only return the
queries in the default suite, not _all_ the queries in the
pack as was the prior behaviour. This change ensures that
all query suites resolve to the same queries as before.
2021-10-18 10:00:59 -07:00
Jonas Jensen
61a0c44ef6
Accept test changes: File -> GoFile
2021-10-15 08:04:58 +02:00
Andrew Eisenberg
25dc4f316b
Merge pull request #587 from github/aeisenberg/query-suite
...
Fix recursive reference in query suite
2021-10-14 09:53:56 -07:00
Andrew Eisenberg
de79eac0bb
Fix recursive reference in query suite
...
The line `- qlpack: codeql-go` references the pack's
default suite, which is this suite. Therefore this
reference is recursive and not allowed.
The change here aligns the query pack with other
languages.
2021-10-14 08:24:49 -07:00
Chris Smowton
a0a5462f50
Merge pull request #586 from github/erik-krogh/explicit-this
...
add explicit this qualifiers
2021-10-14 15:39:14 +01:00
Erik Krogh Kristensen
d27f42d287
add explicit this qualifiers
2021-10-14 12:45:14 +02:00
Jonas Jensen
1c245ba636
Fix getAPrimaryQlClass for File classes
2021-10-14 11:37:05 +02:00
Andrew Eisenberg
abe3f2148b
Merge pull request #584 from github/aeisenberg/tutorial
...
Move tutorial directly into each qlpack
2021-10-13 09:32:44 -07:00
Andrew Eisenberg
0786af19fb
Move tutorial directly into each qlpack
...
See also https://github.com/github/codeql/pull/6862
2021-10-12 14:39:15 -07:00
Andrew Eisenberg
fb5186d887
Merge pull request #583 from github/aeisenberg/defaultSuite
...
Add a defaultSuiteFile property
2021-10-12 14:27:40 -07:00
Andrew Eisenberg
705093d709
Fix property name
2021-10-12 13:04:28 -07:00
Andrew Eisenberg
da708c9743
Add a defaultSuite property
2021-10-12 12:48:01 -07:00
Chris Smowton
c6b9db37be
Merge pull request #581 from github/RasmusWL/normalize-qlpack
...
Packaging: Normalize src/qlpack.yml
2021-10-12 11:02:18 +01:00
Rasmus Wriedt Larsen
c7196916aa
Packaging: Normalize src/qlpack.yml
...
Port of 4) from https://github.com/github/codeql/pull/6605
> Dependencies from query packs to other packs are always "*" since
these dependencies are always from source and we should get the
latest.
Compare with [C++ change](https://github.com/github/codeql/pull/6605/files#diff-0236560ca1b9c19eb7c74d8bfecd1c78005e762122f8bcdaee9eb9b20460bf9c ).
2021-10-11 14:36:12 +02:00
Andrew Eisenberg
88ac6d7a40
Merge pull request #566 from dbartol/dbartol/refactor
...
Refactor Go pack into separate library and query packs
2021-10-07 09:41:47 -07:00
Dave Bartolomeo
3ea2152a86
Use a for loop
2021-10-07 11:35:42 -04:00
Dave Bartolomeo
590b4aac2a
Fix PR feedback
2021-10-07 11:00:15 -04:00
Dave Bartolomeo
eed0eab02c
Merge remote-tracking branch 'upstream/main' into dbartol/refactor
2021-10-07 10:49:45 -04:00
Chris Smowton
1c2b46e10d
Merge pull request #578 from github/rasmuswl/fix-hasLocationInfo-url
...
Fix `hasLocationInfo` URL reference
2021-09-29 14:06:01 +01:00
Rasmus Wriedt Larsen
8deaeb4ea1
Fix hasLocationInfo URL reference
...
Port of https://github.com/github/codeql/pull/6775
2021-09-29 13:53:55 +02:00
Chris Smowton
8b3682205b
Merge pull request #577 from intrigus-lgtm/patch-3
...
Update query description
2021-09-27 13:50:08 +01:00
intrigus-lgtm
d26841da57
Update query description
...
A wildcard origin does not allow Access-Control-Allow-Credentials: true.
This change had been made in 824b5a4b52
but I has been forgotten to update the query description.
2021-09-27 13:34:30 +02:00
Natalia Pesaresi
83613ea042
Merge branch 'main' into feature/SSRF
2021-09-24 17:52:51 -03:00
Nati Pesaresi
636000ce01
fix qlref
2021-09-24 17:50:26 -03:00
Nati Pesaresi
1de0b0401a
inheritance fix
2021-09-24 17:14:45 -03:00
Nati Pesaresi
ba552251e9
rm region tags
2021-09-24 17:08:52 -03:00
Chris Smowton
cc1d1d8d1b
Merge pull request #575 from hvitved/remove-reduced-env-var
...
Remove `CODEQL_REDUCE_FILES_FOLDERS_RELATIONS`
2021-09-22 16:51:06 +01:00
Tom Hvitved
9142079902
Remove CODEQL_REDUCE_FILES_FOLDERS_RELATIONS
2021-09-22 09:40:39 +02:00
Nati Pesaresi
a9a36ace3b
validator uuid
2021-09-17 18:01:43 -03:00
Nati Pesaresi
f913b1504a
codeql query format --in-place
2021-09-17 17:54:19 -03:00
Nati Pesaresi
746ce630f4
codeql query format --in-place
2021-09-17 17:53:01 -03:00
Natalia Pesaresi
63bb7ef56c
Merge branch 'main' into feature/SSRF
2021-09-17 17:46:32 -03:00
Nati Pesaresi
9ec35a0f99
merge main
2021-09-17 17:43:35 -03:00
Nati Pesaresi
2a20fe4b0e
beautify names
2021-09-17 17:40:56 -03:00
Natalia Pesaresi
a2bc1b57c1
Merge pull request #1 from npesaresi/feature/SSRF
...
CWE-918
2021-09-17 17:27:04 -03:00
Sauyon Lee
769456ee10
Merge pull request #572 from smowton/smowton/admin/revert-go-list
...
Revert "Merge pull request #554 from xhd2015/accelerate_go_list"
2021-09-16 10:48:18 -07:00
Chris Smowton
c13229d581
Revert "Merge pull request #554 from xhd2015/accelerate_go_list"
...
This reverts commit e5a2b6081d , reversing
changes made to ee893b252c .
2021-09-16 17:16:59 +01:00
Chris Smowton
0214c97589
Merge pull request #569 from smowton/smowton/fix/optimize-guarding-function
...
Use unique aggregate to optimize guardingFunction
2021-09-09 22:02:56 +01:00
Chris Smowton
f6a629ee30
Merge pull request #570 from github/smowton/admin/fix-upgrade-script
...
Fix broken upgrade script
2021-09-09 15:02:38 +01:00
Chris Smowton
848d6c56bb
Fix broken upgrade script
2021-09-09 13:48:14 +01:00
Sauyon Lee
e5a2b6081d
Merge pull request #554 from xhd2015/accelerate_go_list
...
Accelerating go-extractor by using 'go list -deps' instead of just 'go list'
2021-09-02 12:32:02 -07:00
Sauyon Lee
f9ce06b4c0
Check for nil when getting package info
2021-09-02 11:25:58 -07:00
Sauyon Lee
7d3c504c3c
Fix godoc
2021-09-02 11:25:57 -07:00
Sauyon Lee
89c9c7060c
Remove unnecessary environment set
2021-09-02 11:25:57 -07:00
Sauyon Lee
6ed6193973
Remove redundant map assignments and fix some typos
2021-09-02 11:25:57 -07:00
xhd2015
8532605be7
Accelerating go-extractor by using 'go list -deps' instead of just 'go list'
...
Change-Id: Icc77214809a0bb8536d751f21194690d58663dc5
2021-09-02 11:25:57 -07:00
Chris Smowton
88645cf0f1
Use unique aggregate to optimize guardingFunction
2021-08-31 18:38:44 +01:00
Tom Hvitved
ee893b252c
Merge pull request #560 from hvitved/drop-files-folders-columns
...
Drop redundant columns from `files` and `folders` relations
2021-08-26 19:30:35 +02:00
Tom Hvitved
c70a413b71
DB upgrade script
2021-08-26 13:41:44 +02:00
Tom Hvitved
a9a0cffb01
Drop redundant columns from files and folders relations
2021-08-26 13:41:44 +02:00
Sauyon Lee
1ab2c44310
Merge pull request #564 from sauyon/add-cfg
...
Uncomment CFG tests
2021-08-25 18:28:33 -07:00
Sauyon Lee
ec6ac9db7c
Remove useless nodes predicate
2021-08-25 17:16:46 -07:00
Sauyon Lee
630e46e1fd
Exclude files with build constraints from the cfg test
2021-08-25 17:16:46 -07:00
Sauyon Lee
5fbed2b219
Uncomment CFG tests
2021-08-25 17:16:46 -07:00
Dave Bartolomeo
d82580647e
Add reference to codeql/go-examples pack from test pack
2021-08-24 10:31:03 -04:00
Dave Bartolomeo
bcaf218cd4
Update readme with workflow changes
2021-08-24 10:31:03 -04:00
Dave Bartolomeo
bc9764fcde
Invoke bash explicitly for Windows
2021-08-24 10:31:03 -04:00
Dave Bartolomeo
a069fa6fda
Make install script executable
2021-08-24 10:31:03 -04:00
Dave Bartolomeo
7c70745e52
Build target to run codeql pack install
2021-08-24 10:31:02 -04:00
Dave Bartolomeo
3165b8dec1
Script to run codeql pack install
2021-08-24 10:31:02 -04:00
Dave Bartolomeo
12bb6728d1
Fix dependencies for Go test pack
2021-08-24 10:31:02 -04:00
Dave Bartolomeo
26fd45746c
Move Go QL library files into separate pack
2021-08-24 10:31:02 -04:00
Dave Bartolomeo
1726a8b65f
Initial makefile changes for pack refactoring
2021-08-24 10:31:01 -04:00
Dave Bartolomeo
6d829cfdf3
Modernize Go pack definitions
2021-08-24 10:31:01 -04:00
Dave Bartolomeo
b6c250cbff
Ignore .codeql directories
2021-08-24 10:31:01 -04:00
Chris Smowton
a6f3d464ae
Merge pull request #568 from igfoo/igfoo/getPrimaryQlClasses
...
Add getPrimaryQlClasses()
2021-08-24 14:13:50 +01:00
Ian Lynagh
6a86f1a91b
Add getPrimaryQlClasses()
...
This is a non-overridable predicate that concatenates all the
getAPrimaryQlClass() results into a comma-separated string.
2021-08-24 13:03:24 +01:00
Sauyon Lee
4df8fac91c
Merge pull request #559 from sauyon/xorm
...
Add Xorm support
2021-08-23 09:21:19 -07:00
Sauyon Lee
dc00a17fd2
Add Xorm license
2021-08-23 08:15:57 -07:00
sn00py
474287dc9f
Update SQL.qll
...
remove package
2021-08-23 08:15:57 -07:00
sn00py
7fc045e749
Add inline test for xorm
2021-08-23 08:15:57 -07:00
snoopywu
4975dccd34
Format SQL.qll
2021-08-23 08:15:57 -07:00
snoopywu
0174270a03
Add change note
2021-08-23 08:15:56 -07:00
snoopywu
8c608bad21
Add Xorm support
2021-08-23 08:15:56 -07:00
Chris Smowton
647bc51483
Merge pull request #563 from sauyon/go117
...
Add support for Go 1.17
2021-08-23 10:45:24 +01:00
Sauyon Lee
4a1daf173c
fixup model changes
2021-08-19 14:04:38 -07:00
Sauyon Lee
d4aa572109
Add tests for Go 1.17 library changes
2021-08-19 14:02:30 -07:00
Sauyon Lee
c41502de1e
Fix tests for go 1.17
2021-08-19 14:02:29 -07:00
Sauyon Lee
f20922dcc7
Handle - positions in errors
2021-08-19 14:02:29 -07:00
Sauyon Lee
5c7590db53
Exclude beta versions of the CodeQL CLI
2021-08-19 14:02:29 -07:00
Sauyon Lee
ab80f35451
Add change note for 1.17
2021-08-19 14:02:29 -07:00
Sauyon Lee
ef1238cdd3
Add test for conversion panic
2021-08-19 14:02:29 -07:00
Sauyon Lee
cb40498b41
Update actions to use go 1.17
2021-08-19 14:02:29 -07:00
Sauyon Lee
b1e91e578b
Add models for library changes
2021-08-19 14:02:26 -07:00
Sauyon Lee
040b166eb2
Add new style build constraints and add test for the old style
2021-08-19 14:00:04 -07:00
Sauyon Lee
189070cf2c
Add support for go:build style constraints
...
This doesn't account for the new syntax, but there was no syntax
parsing in the old version anyway, and the only user doesn't currently
care about semantics
2021-08-19 14:00:03 -07:00
Sauyon Lee
f39e43e5d0
Allow conversions to an array to panic
2021-08-19 14:00:03 -07:00
Sauyon Lee
2a5e7e24cd
Update dependencies for go1.17
2021-08-19 14:00:03 -07:00
Sauyon Lee
b9871add53
Merge pull request #565 from sauyon/remove-dots
...
Remove non-goific dot in method signatures
2021-08-19 13:41:25 -07:00
Sauyon Lee
ff1eb8ef43
Remove non-goific dot in method signatures
2021-08-19 12:36:59 -07:00
Owen Mansel-Chan
51b3f7f62d
Merge pull request #555 from owen-mc/upstream-weak-crypto-key
...
Promote weak crypto key from experimental
2021-08-18 12:57:27 +01:00
Owen Mansel-Chan
b96efc655e
Improve grammar and punctuation
2021-08-18 11:54:06 +01:00
Owen Mansel-Chan
6f2040da51
Add security severity score
2021-08-18 11:54:06 +01:00
Owen Mansel-Chan
8c97395884
Add change note
2021-08-18 11:54:05 +01:00
Owen Mansel-Chan
3bf2cf0ed8
Add precision metadata
2021-08-18 11:54:05 +01:00
Owen Mansel-Chan
9634e8d7b0
Update path in qlref file
2021-08-18 11:54:04 +01:00
Owen Mansel-Chan
ca01d55297
Promote insufficient key size query
...
Files were just moved - changes made in next commit
2021-08-18 11:54:04 +01:00
Chris Smowton
10e362a0f2
Merge pull request #562 from sauyon/remove-binary
...
Remove accidentally added binary
2021-08-17 19:55:26 +01:00
Chris Smowton
2b6dde8e6c
Merge pull request #561 from github/developer-happiness-query-suite
...
Add a query suite for new experimental "developer happiness" queries
2021-08-17 19:45:44 +01:00
Sauyon Lee
dc50d73008
Remove accidentally added binary
2021-08-17 10:11:04 -07:00
Sam Partington
78a4823bde
Ensure all 3 IDs are considered
...
Co-authored-by: Aditya Sharad <6874315+adityasharad@users.noreply.github.com >
2021-08-17 09:53:11 +01:00
Sam Partington
4e36d1f52f
Add a query suite for new experimental "developer happiness" queries
...
These are the queries added in https://github.com/github/codeql-go/pull/558 .
2021-08-16 18:05:31 +01:00
Chris Smowton
fbc65b3f87
Merge pull request #558 from sauyon/add-sample-queries
...
Add sample DB-related queries
2021-08-12 21:55:14 +01:00
Sauyon Lee
4c5d3ff344
Move defer in loop query to experimental
2021-08-12 10:13:30 -07:00
Sauyon Lee
02396dbd04
Add database query in loop query
...
co-authored-by: Robert <robertbrignull@github.com >
co-authored-by: Sam Partington <sampart@github.com >
2021-08-11 18:15:23 -07:00
Sauyon Lee
1ffeb26a61
Add query for a GORM error not checked
...
co-authored-by: Sam Partington <sampart@github.com >
co-authored-by: Robin Neatherway <rneatherway@github.com >
2021-08-11 18:15:23 -07:00
Nati Pesaresi
210d0f3d6a
cwe-918
2021-08-03 17:48:08 -03:00
Shati Patel
65e9262b41
Merge pull request #556 from github/shati-patel-patch-1
...
Update CODEOWNERS
2021-07-28 12:56:48 +01:00
Shati Patel
0c4674cf86
Update CODEOWNERS
...
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com >
2021-07-28 11:54:25 +01:00
Shati Patel
e83af8e4ea
Update CODEOWNERS
2021-07-28 11:42:33 +01:00
Chris Smowton
e39753c72a
Merge pull request #552 from github/deferinloop-kind
...
Add @kind to deferinloop.ql
2021-07-19 11:17:26 +01:00
Chris Smowton
b03513bcd2
Merge pull request #542 from gagliardetto/cors-misconfig
...
Add query to detect CORS misconfiguration
2021-07-16 16:12:15 +01:00
Chris Smowton
87afdae1c7
use hasFlowTo where possible
2021-07-16 14:38:05 +01:00
Sam Partington
e227a4315f
Add @kind to deferinloop.ql
...
Required to use this query with the CodeQL CLI
2021-07-16 14:25:58 +01:00
Slavomir
52b650a1be
Add AllowOriginHeaderWrite and AllowCredentialsHeaderWrite classes
2021-07-16 00:01:55 +02:00
Slavomir
e92738a93f
Apply suggestions from code review
...
Co-authored-by: Chris Smowton <smowton@github.com >
2021-07-16 00:42:36 +03:00
Chris Smowton
73227f12df
Merge pull request #539 from gagliardetto/fiber
...
Add web framework: github.com/gofiber/fiber
2021-07-15 17:53:45 +01:00
Slavomir
d252d6003f
Remove Protocol as UntrustedFlowSource
2021-07-15 16:20:33 +02:00
Slavomir
498332c186
Mention Fiber.json in Fiber.qll
2021-07-15 15:15:10 +02:00
Slavomir
7d1a632b61
Move fiber spec in the same folder as source
2021-07-15 15:12:02 +02:00
Slavomir
92e0f02d2a
Remove special cases inside if
2021-07-15 15:06:28 +02:00
Slavomir
66bd56f444
Don't use any() as sink
2021-07-05 13:14:56 +02:00
Chris Smowton
cd1e14ed09
Merge pull request #549 from edoardopirovano/change-pragma
...
Performance: Remove `pragma[noopt]`
2021-06-22 19:14:52 +01:00
Edoardo Pirovano
65a34b4aa6
Performance: Remove pragma[noopt]
2021-06-22 10:05:53 +01:00
Chris Smowton
52028cf363
Merge pull request #547 from edoardopirovano/fix-join-order
...
Performance: Fix bad join ordering
2021-06-21 20:11:22 +01:00
Edoardo Pirovano
a7c656db8b
Performance: Fix bad join ordering
2021-06-21 18:58:35 +01:00
Slavomir
c0f195ba16
Reduce false positives
2021-06-19 22:25:51 +02:00
edvraa
ac777d237d
autoformat
2021-06-17 09:23:26 +01:00
edvraa
0456d4793a
Fix path tracking
2021-06-17 09:23:26 +01:00
edvraa
4576b16f30
Use dataflow gettype
2021-06-17 09:23:26 +01:00
edvraa
062acedd49
Unify and make getValueForFieldWrite private
2021-06-17 09:23:26 +01:00
edvraa
236b623f60
Get rid of NetHttpCookieTrackingConfiguration
2021-06-17 09:23:26 +01:00
edvraa
031a79b8f5
Gorilla Store Save sink
2021-06-17 09:23:26 +01:00
edvraa
8110c3d059
Use HasFlow
2021-06-17 09:23:26 +01:00
edvraa
d60d18a8d0
Stay on dataflow level
2021-06-17 09:23:26 +01:00
edvraa
ed8d025bdf
Dedicated types
2021-06-17 09:23:26 +01:00
edvraa
cba4f0448e
Use package
2021-06-17 09:23:26 +01:00
edvraa
167496edff
Use MethodCallNode and hasQualifiedName
2021-06-17 09:23:26 +01:00
edvraa
5929f66efb
No need for Function f
2021-06-17 09:23:26 +01:00
edvraa
06c328c5aa
Fix comment
2021-06-17 09:23:26 +01:00
edvraa
3ac1b4ba0b
Use CallNode
2021-06-17 09:23:26 +01:00
edvraa
d06f4ca21e
Fix argumnt nr
2021-06-17 09:23:26 +01:00
edvraa
9224a315f1
inline isGinContextCookieFlow
2021-06-17 09:23:26 +01:00
edvraa
4d397d9974
Fix tests
2021-06-17 09:23:26 +01:00
edvraa
5349c98ae1
Comments
2021-06-17 09:23:26 +01:00
edvraa
0b9959e4ef
Default stub
2021-06-17 09:23:26 +01:00
edvraa
d32fa19c12
reformat
2021-06-17 09:23:26 +01:00
edvraa
4eb4787692
simplify expressions
2021-06-17 09:23:26 +01:00
edvraa
f537c479c9
path tracking
2021-06-17 09:23:26 +01:00
edvraa
253abc55d9
get rid of AuthCookieNameConfiguration
2021-06-17 09:23:26 +01:00
edvraa
9c0b83fd34
Use getAPredecessor
2021-06-17 09:23:26 +01:00
edvraa
ff06815db1
Code review
2021-06-17 09:23:26 +01:00
edvraa
cbaad2efb9
Sensitive cookie without HttpOnly
2021-06-17 09:23:26 +01:00
Chris Smowton
191a4c1101
Merge pull request #546 from github/calumgrant/security-severities
...
Add security-severity scores
2021-06-16 14:22:27 +01:00
Calum Grant
975e4d7284
Add security-severity scores
2021-06-15 15:56:57 +01:00
Slavomir
824b5a4b52
Wildcard origin does not allow Access-Control-Allow-Credentials: true
2021-06-05 10:40:28 +02:00
Chris Smowton
db0566c325
Merge pull request #543 from gagliardetto/clevergo-spec
...
Add codemill spec for clevergo
2021-06-03 13:59:59 +01:00
Slavomir
4662358b8d
Add flag checks
2021-06-03 12:53:52 +02:00
Slavomir
56e99b6efb
Convert header values to lowercase before comparing
2021-06-03 10:50:50 +02:00
Sauyon Lee
225a69aa27
Merge pull request #544 from github/erik-krogh/fix-primaryqlclass-typo
...
fix typo in the `getAPrimaryQlClass` implementation for `LabeledStmt`
2021-05-29 18:59:36 +00:00
Erik Krogh Kristensen
47d6412e1c
update expected output
2021-05-29 17:56:03 +00:00
Erik Krogh Kristensen
5b357e936b
fix typo in the getAPrimaryQlClass implementation for LabeledStmt
2021-05-29 19:01:16 +02:00
Slavomir
cb3cbc5e3f
Move spec to the same location of qll
2021-05-27 17:00:19 +02:00
Slavomir
4212eb7ac2
Add codemill spec for clevergo
2021-05-24 15:35:57 +02:00
Slavomir
521039d6a2
Add codemill spec
2021-05-24 15:34:16 +02:00
Slavomir
8525c58e1a
Improve qhelp doc
2021-05-24 15:19:50 +02:00
Slavomir
74f8f1dcdb
Cleanup
2021-05-24 15:19:35 +02:00
Sauyon Lee
1a67f8d867
Merge pull request #530 from edvraa/key
...
CWE-326: Insufficient key size
2021-05-24 01:11:16 +00:00
Slavomir
9d1f13fe9b
Add allowOriginIsWildcardOrNull predicate
2021-05-22 18:32:48 +02:00
Slavomir
924e445ce9
Add missing newline
2021-05-22 18:19:44 +02:00
Slavomir
f261f34f57
Add query to detect CORS misconfiguration
2021-05-22 18:14:13 +02:00
edvraa
c95295aa81
Simplify get int
2021-05-21 12:38:01 +01:00
edvraa
c9c22fd871
Change the message
2021-05-21 12:38:01 +01:00
edvraa
8414759f7d
Code review
2021-05-21 12:38:01 +01:00
edvraa
7e1c57689b
Insufficient key size
2021-05-21 12:38:01 +01:00
Sauyon Lee
d47d0303b0
Merge pull request #541 from smowton/smowton/admin/tag-lines-of-code
2021-05-14 19:11:40 +00:00
Chris Smowton
bc80772075
Tag lines of code query
2021-05-14 18:27:55 +01:00
Chris Smowton
6dcfbe8135
Merge pull request #540 from owen-mc/test-dataflow-pr-5773
...
Sync data-flow libraries
2021-05-12 10:49:33 +01:00
Owen Mansel-Chan
f0fd501a23
No need to cache isUnreachableInCall any more
2021-05-12 08:54:58 +01:00
Owen Mansel-Chan
a86390d850
Sync data-flow libraries
...
As of 2021-05-12
2021-05-12 08:54:11 +01:00
Slavomir
f644194354
Add package predicates
2021-05-10 15:18:47 +02:00
Slavomir
06fac54da3
Add web framework: github.com/gofiber/fiber
2021-05-10 15:12:32 +02:00
Chris Smowton
879666682d
Merge pull request #537 from gagliardetto/fix-clevergo
...
CleverGo: Update generated naming
2021-05-10 12:32:08 +01:00
Chris Smowton
1f9097430e
Merge pull request #535 from owen-mc/update-dataflow-libraries-2021-05-05
...
Update dataflow libraries 2021-05-05
2021-05-10 09:53:32 +01:00
Slavomir
7810461651
Update generated naming
2021-05-09 22:52:07 +02:00
Owen Mansel-Chan
fcbedee4c5
Keep call to defaultTaintSanitizerGuard
2021-05-06 15:06:29 +01:00
Owen Mansel-Chan
349df54905
Ignore lambda data flow for now
2021-05-06 13:57:49 +01:00
Owen Mansel-Chan
daf73553f6
Sync shared dataflow libraries
2021-05-05 16:58:30 +01:00
Chris Smowton
774717d2b8
Merge pull request #522 from gagliardetto/fix-clevergo
...
Improve CleverGo models
2021-04-30 17:11:56 +01:00
Slavomir
ea2909a362
HTTP::HeaderWrite: Don't override string getHeaderValue() with none()
2021-04-30 15:39:09 +01:00
Slavomir
110a3983c1
Regenerate codeql: Refactor HTTP::HeaderWrite
2021-04-30 15:39:09 +01:00
Slavomir
5578afa189
Regenerate using latest codemill generator.
2021-04-30 15:39:09 +01:00
Chris Smowton
0beaa7fdc9
Model content-type setters as HeaderWrites.
2021-04-30 15:39:09 +01:00
Chris Smowton
9ea8b34e47
HTTP ResponseBody: support HeaderWrites with hard-coded header values.
2021-04-30 15:39:09 +01:00
Chris Smowton
3fd2c7d4bb
Note response writers for existing HeaderWrite and HttpRedirect instances
2021-04-30 15:39:09 +01:00
Slavomir
36396df271
HttpResponseBody: Move .getAPredecessor*() to the test query.
2021-04-30 15:39:09 +01:00
Slavomir
989bfa2b1d
Improve naming and comments.
2021-04-30 15:39:09 +01:00
Slavomir
78b403f42e
Stub alternative HTTP::ResponseBody model implementation
2021-04-30 15:39:09 +01:00
Slavomir
ff848a502a
ResponseBody: Use .getAPredecessor*().getStringValue() instead of just .getStringValue()
2021-04-30 15:39:09 +01:00
Chris Smowton
3a0b36cdb8
Merge pull request #531 from sauyon/non-alert-queries
...
Non-alert queries
2021-04-27 17:49:49 +01:00
Sauyon Lee
bfe6e7510d
Evaluate symlinks for the dummy file
2021-04-27 08:32:21 -07:00
Sauyon Lee
d09cb7f228
Remove badpkg.go to make tests location-independent
2021-04-27 01:18:22 -07:00
Sauyon Lee
03c3b15caa
Improve autoformatting check
2021-04-27 01:18:21 -07:00
Sauyon Lee
27b72b53e5
Add diagnostic queries
2021-04-27 01:18:21 -07:00
Sauyon Lee
9f85846980
Add lines of code summary query
2021-04-27 01:18:20 -07:00
Sauyon Lee
fa5cb652d8
Fix lines of code counting
2021-04-27 01:18:20 -07:00
Sauyon Lee
ed978e439f
Add GoFile and move HtmlFile to Files.qll
2021-04-27 01:18:19 -07:00
Sauyon Lee
2a80a60468
Add GeneratedFile concept
2021-04-27 01:18:19 -07:00
Sauyon Lee
3393588353
Move concepts imports to Concepts.qll
2021-04-27 01:18:18 -07:00
Sauyon Lee
7a790340ed
Merge pull request #526 from sauyon/fix-bad-error-locs
...
Extract dummy files for errors without locations
2021-04-27 01:07:22 -07:00
Sauyon Lee
b808c187cf
Add test with curly braces in filename
2021-04-21 21:14:41 -07:00
Sauyon Lee
f15b65d07e
Extract dummy files for errors with no location
2021-04-21 21:14:40 -07:00
Sauyon Lee
488f7f5b9b
Use pre-transformed path for extractor fileinfo
2021-04-21 21:14:40 -07:00
Chris Smowton
90c4b5d63f
Switch to using HTML entities for escaping
2021-04-21 21:14:39 -07:00
Chris Smowton
06c958e61f
Extractor: tolerate curly braces in struct field tags, directory names
...
These previously produced malformed TRAP. I have checked the other uses of GlobalID and don't see any others that should require escaping.
2021-04-21 21:14:39 -07:00
Sauyon Lee
466d87684d
Merge pull request #528 from sauyon/tuple-map-read
2021-04-21 08:50:40 -07:00
Chris Smowton
9ab1a8d144
Reword change note
...
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com >
2021-04-21 15:28:28 +01:00
Chris Smowton
e50ad90856
Elaborate comment and change-note a little
2021-04-21 12:36:43 +01:00
Chris Smowton
a152eec9f2
Add test for ExtractTupleElementInstruction.getResultType()
2021-04-21 12:33:51 +01:00
Chris Smowton
4fb714f445
Simplify implementation of ExtractTupleElementInstruction.getResultType
2021-04-21 12:33:00 +01:00
Sauyon Lee
7efbcec50d
Add change note
2021-04-20 23:27:03 -07:00
Sauyon Lee
50bb6187b8
Revert ReflectedXss.go to example
2021-04-20 23:27:03 -07:00
Sauyon Lee
d1daca541e
Add types for more tuple extractions
...
Specifically, extractions where the RHS is a map element read or a channel receive
will now have types.
2021-04-20 14:23:31 -07:00
Sauyon Lee
ba2da6d9a9
Add test exercising channel data flow
2021-04-20 14:23:31 -07:00
Chris Smowton
0cef5fb5d0
Add test case for map extraction
2021-04-20 14:23:29 -07:00
Chris Smowton
f40211bd20
Merge pull request #527 from smowton/smowton/fix/http-request-taint-tracking
...
Improve net/http taint-tracking fidelity
2021-04-20 12:40:19 +01:00
Chris Smowton
b2e92fa084
Remove needless model of Part.Read
...
Read already gets a model as an implementation of the `Reader` interface.
2021-04-20 11:05:36 +01:00
Chris Smowton
948e064440
Fix mis-modelling Part.Read
2021-04-20 11:03:17 +01:00
Chris Smowton
027a540c67
Update test expectations now that tuple-extracts not method calls are sources
2021-04-19 17:05:50 +01:00
Chris Smowton
a367950014
Restore OpenRedirect's exclusion of POST-only request components
2021-04-19 17:05:23 +01:00
Chris Smowton
685f4fa2a6
Add change note
2021-04-19 16:13:16 +01:00
Chris Smowton
7d258ae722
Improve net/http taint-tracking fidelity
...
* Don't taint error returns from http.Request methods
* Track taint across mime/multipart.Part methods
2021-04-19 16:05:23 +01:00
Chris Smowton
dbcf1e1cfa
Merge pull request #520 from sauyon/add-diagnosticfile
...
Add a new diagnostics file class and use it for errors
2021-04-09 15:48:57 +01:00
Sauyon Lee
80fe7384cd
Apply suggestions from code review
...
Co-authored-by: Chris Smowton <smowton@github.com >
Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com >
2021-04-09 14:30:23 +01:00
Sauyon Lee
4462948cfc
Add a new diagnostics file class and use it for errors
2021-04-09 14:30:23 +01:00
Chris Smowton
46b5f11457
Merge pull request #438 from gagliardetto/clevergo
...
Pilot #0 : Add web framework `clevergo`
2021-04-09 09:48:58 +01:00
Slavomir
8e839f376e
Put all tests file in to the CleverGo folder instead of having dedicated folders for each test.
2021-04-09 08:38:37 +01:00
Slavomir
4ae5bdbbec
Improve naming of files and elements.
2021-04-09 08:38:37 +01:00
Slavomir
7ea0434514
Move clevergo framework to experimental
2021-04-09 08:38:37 +01:00
Slavomir
3915305361
Refactor and improve HTTP:ResponseBody models and tests
2021-04-09 08:38:37 +01:00
Slavomir
8c18aa6cbd
Simplify HTTP::HeaderWrite
2021-04-09 08:38:37 +01:00
Slavomir
7edf739602
Model HTTP::HeaderWrite; regenerate stubs
2021-04-09 08:38:37 +01:00
Slavomir
93ff2459d1
Use docs instead of comments for classes.
2021-04-09 08:38:36 +01:00
Slavomir
0fe7050e7e
Add models for HTTP::ResponseBody
2021-04-09 08:38:36 +01:00
Slavomir
98b3cc2dc4
Fix autoformatting
2021-04-09 08:38:36 +01:00
Slavomir
c53d8d3e56
Add http redirect model
2021-04-09 08:38:36 +01:00
Slavomir
55c8d9b22c
Make naming more consistent
2021-04-09 08:38:36 +01:00
Slavomir
1de7196060
Regenerate dep stubs
2021-04-09 08:38:36 +01:00
Slavomir
0c1ae62ce9
Use //go:generate depstubber --vendor --auto
2021-04-09 08:38:36 +01:00
Slavomir
f95f35387f
Cleanup comments
2021-04-09 08:38:36 +01:00
Slavomir
bdc5f90c97
Cleanup comments
2021-04-09 08:38:36 +01:00
Slavomir
d3d7d2d103
Simplify UntrustedSources struct fields
2021-04-09 08:38:36 +01:00
Slavomir
c01259ec2c
Simplify UntrustedSources interface methods
2021-04-09 08:38:36 +01:00
Slavomir
54abdf1a95
Regenerate tests
2021-04-09 08:38:36 +01:00
Slavomir
a6c1acfaba
Fix imports
2021-04-09 08:38:36 +01:00
Slavomir
a90f609c53
Manually add packagePath() predicate
2021-04-09 08:38:36 +01:00
Slavomir
928c12da57
Simplify UntrustedSources methods
2021-04-09 08:38:36 +01:00
Slavomir
34dcf83e11
Fix module doc
2021-04-09 08:38:36 +01:00
Slavomir
11326eb34c
Update ql/src/semmle/go/frameworks/CleverGo.qll
...
Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com >
2021-04-09 08:38:36 +01:00
Slavomir
c4ee6175b8
Add back bindingset to packagePath
2021-04-09 08:38:36 +01:00
Slavomir
7c62c63584
codeql: add packagePath predicate
2021-04-09 08:38:36 +01:00
Slavomir
dfbad0edb9
Regenerate code implementing the code review feedback
2021-04-09 08:38:36 +01:00
Slavomir
1bfe395662
Remove import DataFlow::PathGraph
2021-04-09 08:38:36 +01:00
Slavomir
6d9b7d3240
Add web framework: clevergo
2021-04-09 08:38:35 +01:00
Chris Smowton
7bf5abf6b0
Merge pull request #493 from gagliardetto/html-template-escaping-passthrough
...
Add CWE-79: HTML template escaping passthrough
2021-04-08 20:36:54 +01:00
Slavomir
68c0073c0b
Use PassthroughTypeName instead of string
2021-04-08 14:24:35 +01:00
Slavomir
7c35902724
Use DataFlow::Node as parameters
2021-04-08 14:24:35 +01:00
Slavomir
dc95902e56
Apply suggestions from code review
...
Co-authored-by: Chris Smowton <smowton@github.com >
2021-04-08 14:24:35 +01:00
Slavomir
1a9b09e8bd
Add NumericType sanitizer
2021-04-08 14:24:35 +01:00
Slavomir
541c411086
Add isSanitizer predicate to FlowConfFromUntrustedToTemplateExecutionCall, and a test for it
2021-04-08 14:24:35 +01:00
Slavomir
8f124f8395
Add missing docs
2021-04-08 14:24:35 +01:00
Slavomir
e2b7c035ad
Use only one instance of TaintTracking.
2021-04-08 14:24:35 +01:00
Slavomir
280ffdf060
Fix test
2021-04-08 14:24:35 +01:00
Slavomir
5351a8eeb7
Use TaintTracking an TaintTracking2
2021-04-08 14:24:35 +01:00
Slavomir
b42d21f740
Improve comments and naming.
2021-04-08 14:24:35 +01:00
Slavomir
d5355eb6b4
Cleanup
2021-04-08 14:24:35 +01:00
Slavomir
cc31cd2fe2
Fix test
2021-04-08 14:24:35 +01:00
Slavomir
0bb5ef6af2
Fix test
2021-04-08 14:24:35 +01:00
Slavomir
7b4a748793
Remove DummySource
2021-04-08 14:24:35 +01:00
Slavomir
7e9f23ab8e
Refactor flow logic to ensure untrusted flows to conversion, and conversion flows to template-exec.
2021-04-08 14:24:35 +01:00
Slavomir
963631dedf
Improve naming.
2021-04-08 14:24:35 +01:00
Slavomir
687e556df6
Fixes from code review
2021-04-08 14:24:35 +01:00
Slavomir
ad91e4abcb
Remove DummySource
2021-04-08 14:24:35 +01:00
Slavomir
63d51205c9
Apply suggestions from code review
...
Co-authored-by: Sauyon Lee <sauyon@github.com >
2021-04-08 14:24:35 +01:00
Slavomir
49894341a8
Add CWE-79: HTML template escaping passthrough
2021-04-08 14:24:35 +01:00
Sauyon Lee
29bf388b83
Merge pull request #519 from sauyon/fix-consistency
...
Extract files for error locations
2021-04-02 01:37:11 -07:00
Chris Smowton
c742a131de
Remove filename containing hiragana
...
Good test, but unfortunately it turns out our ODASA build under Windows can't cope -- we get `make: *** No rule to make target 'language-packs/go/ql/test/library-tests/semmle/go/Files/�.go', needed by 'target/general/go-tools/output/tools/tokenizer.jar'. Stop.`
Evidently our windows Actions build *does* work, so this is possible in principle, but let's not delay this PR finding out the exact reasons why right now.
2021-04-01 08:57:15 +01:00
Sauyon Lee
4451920ada
fixup windows
2021-03-31 08:56:34 -07:00
Sauyon Lee
9b60aff45e
Sort extractor smoke test output
2021-03-31 08:12:19 -07:00
Sauyon Lee
44cb8f4f0f
Check database consistency in smoke tests
2021-03-31 03:37:55 -07:00
Sauyon Lee
cd6fb7d699
Extract files for error locations
...
Co-authored-by: Chris Smowton <smowton@github.com >
2021-03-31 03:37:55 -07:00
Sauyon Lee
7e3e2f9adf
Add file tests
2021-03-31 02:01:26 -07:00
Owen Mansel-Chan
2ef85291fd
Merge pull request #492 from owen-mc/promoted-field-data-flow-non-pointer-type
...
Add control flow nodes for implicit fields reads when reading a promoted field
2021-03-30 11:15:55 +01:00
Owen Mansel-Chan
2fce333a0b
Fix bad join order in getBaseInstruction
...
It was joining on the index first, rather than the selector expression
2021-03-30 10:13:31 +01:00
Owen Mansel-Chan
3e57ea0e75
Fix Revel template test
...
We want the controller, which is the type which embeds *Revel.Controller.
We have to skip the implicit field reads to get to the base of the selector
expression.
2021-03-30 10:13:30 +01:00
Owen Mansel-Chan
b507c0d584
Add implicit field reads for promoted method calls
2021-03-30 10:13:30 +01:00
Owen Mansel-Chan
a89a42df6f
Expand PromotedField to PromotedValueEntity
...
This includes promoted methods as well
2021-03-30 10:13:29 +01:00
Owen Mansel-Chan
770c770a8f
Add tests for promoted methods
...
We need implicit field reads for calls to promoted methods.
False negative flags have been added to make this pass on main.
2021-03-30 10:13:29 +01:00
Owen Mansel-Chan
42300819a5
Remove incorrect assumption
...
Now that we have implicit field reads, it is no longer the case
that the base of a field read instruction will be an eval
instruction.
2021-03-30 10:13:28 +01:00
Owen Mansel-Chan
44b4e211c1
Make ImplicitFieldReadInstruction extend ImplicitFieldReadInstruction
...
This avoids some code duplication.
2021-03-30 10:13:28 +01:00
Owen Mansel-Chan
00aac808d2
Address review comments
2021-03-30 10:13:27 +01:00
Owen Mansel-Chan
a5293fa835
Use index to determine selector base
2021-03-30 10:13:27 +01:00
Owen Mansel-Chan
015c0537c2
Add index to FieldReadInstruction
2021-03-30 10:13:27 +01:00
Owen Mansel-Chan
0d071b2119
Use depth for implicit field selection
2021-03-30 10:13:26 +01:00
Chris Smowton
204e313c3b
Improve documentation
2021-03-30 10:13:26 +01:00
Chris Smowton
6645613eb8
Deduplicate and document helper types
2021-03-30 10:13:25 +01:00
Chris Smowton
9a427931b7
Explicitly walk pointer types
...
In a previous draft these could use getBaseType*
2021-03-30 10:13:25 +01:00
Chris Smowton
660ba4e31c
Optimise selectorBase, similar to existing work on implicitFieldRead
2021-03-30 10:13:25 +01:00
Chris Smowton
8cde56dfc2
Neaten and fix documentation of selectorBase
2021-03-30 10:13:24 +01:00
Chris Smowton
9444774895
Add further hints that the range of possible addressed fields, and therefore the interesting selector expressions, are small
2021-03-30 10:13:24 +01:00
Chris Smowton
22a3fccf79
Use type to hint that constraining to embedded fields is a good first step
...
This improves the join order for `implicitFieldSelection`
2021-03-30 10:13:23 +01:00
Sauyon Lee
e1b4867a19
Refactor embedded field calculation to expose access chain
...
This allows us to reuse the embedded field calculation in the
logic for generating implicit field selection nodes.
2021-03-30 10:13:23 +01:00
Owen Mansel-Chan
c192a255c5
Add change note
2021-03-30 10:13:22 +01:00
Owen Mansel-Chan
f1b6139ace
Update expected results for ZipSlip to include implicit field reads
2021-03-30 10:13:22 +01:00
Owen Mansel-Chan
13cd19ee40
Make ImplicitFieldReadInstruction include implicit deref when needed
...
When an ImplicitFieldReadInstruction reads an embedded field which has
a pointer type, it now includes the implicit dereference.
It might be better to extend MkImplicitDeref to cover this case, so we have
an explicit instruction for this. Then it would be easier to see when
dereferences are happening, and hence when they might cause a nil pointer
dereference.
2021-03-30 10:13:22 +01:00
Owen Mansel-Chan
2d3caf48c1
Add implicit field reads for promoted fields
...
This may not work when the embedded fields are pointer types, as
we don't have anything corresponding to MkImplicitDeref
2021-03-30 10:13:21 +01:00
Owen Mansel-Chan
7ded91e81d
Make depth of promoted fields accessible
2021-03-30 10:13:21 +01:00
Owen Mansel-Chan
b6dddd36e1
Update FieldTarget.getBaseType()
...
It wasn't defined when `getBase()` was an EvalImplicitDerefInstruction.
Rewriting it like this means it should work no matter what type of
instruction `getBase()` is.
2021-03-30 10:13:20 +01:00
Owen Mansel-Chan
b32b3157d4
(Minor) Add missing this. to method call
2021-03-30 10:13:19 +01:00
Sauyon Lee
3045eec63d
Merge pull request #518 from smowton/smowton/fix/restore-extraction-under-codeql
...
Tolerate empty-string CODEQL_PLATFORM, and add smoke tests
2021-03-29 13:55:27 -07:00
Chris Smowton
87d8bc8d6f
Add basic extractor smoke test
...
This exercises the extractor via 'codeql', with and without tracing.
2021-03-29 14:53:44 +01:00
Chris Smowton
23b8af3a56
Tolerate empty-string CODEQL_PLATFORM
...
This is normal when invoked with tracing disabled, so we also don't log when this happens.
2021-03-29 11:34:50 +01:00
Chris Smowton
a8422ffe26
Merge pull request #517 from smowton/smowton/fix/restore-extraction-under-odasa
...
Unify two implementations of GetExtractorPath
2021-03-25 19:35:24 +00:00
Chris Smowton
aef0a07a50
Prefer CODEQL_* environment variables when set
2021-03-25 16:20:16 +00:00
Chris Smowton
244f66c358
Make diagnostics test platform-neutral
2021-03-25 14:44:18 +00:00
Chris Smowton
c2c88b0835
Unify two implementations of GetExtractorPath
...
This retains both their features:
* The new util.go one cached its result.
* The old go-autobuilder.go one worked under ODASA, where CODEQL_GO_EXTRACTOR_ROOT is unset but os.Executable is a useful substitute.
2021-03-25 11:24:39 +00:00
Aditya Sharad
a9235d4c76
Merge pull request #516 from github/adityasharad/actions/remove-docs-review-workflow
...
Actions: Remove docs-review workflow
2021-03-24 12:31:29 -07:00
Aditya Sharad
1937664c66
Actions: Remove docs-review workflow
...
Being replaced by internal automation that polls the repo for open labelled PRs, since this workflow currently cannot tag the docs team in a comment.
2021-03-24 11:25:08 -07:00
Tom Hvitved
ef50020cce
Merge pull request #514 from github/merge-rc/3.1
...
Merge branch 'rc/3.1' into 'main'
2021-03-23 10:28:50 +01:00
Tom Hvitved
e119e15f84
Merge branch 'rc/3.1' into 'main'
2021-03-23 09:10:20 +01:00
Sauyon Lee
5de362edd8
Merge pull request #510 from simon-engledew/patch-1
...
Add an example query for catching cases where defer is used in a loop.
2021-03-22 11:08:34 -07:00
Chris Smowton
af9c7c0dd9
Merge pull request #512 from smowton/smowton/admin/pick-performance-fix-onto-rc-31
...
Apply package perf fix to rc/3.1
2021-03-21 11:59:32 +00:00
Sauyon Lee
bcee55c402
Remove now-unnecessary bindingset annotations
2021-03-20 18:54:26 +00:00
Sauyon Lee
426a65b981
Restrict 'package' to real package paths
2021-03-20 18:54:26 +00:00
Simon Engledew
43b4cd69f8
Add review feedback
2021-03-19 14:21:45 +00:00
Simon Engledew
c6ae48f090
Create deferinloop.ql
...
Add example query for highlighting defers inside loops.
2021-03-19 13:16:21 +00:00
Sauyon Lee
d73d0f3b79
Merge pull request #499 from sauyon/extractor-profiling
...
Extract diagnostic information
2021-03-19 05:36:30 -07:00
Sauyon Lee
92c5999c4d
Update stats
2021-03-19 04:34:16 -07:00
Sauyon Lee
394feb03f1
Add tests for extractor diagnostics
2021-03-19 04:34:16 -07:00
Sauyon Lee
104b9cffbd
Extract extractor diagnostic information
2021-03-19 04:34:15 -07:00
Sauyon Lee
1ca2164058
Add GetExtractorPath util function
2021-03-19 04:34:14 -07:00
Sauyon Lee
95f93b8641
Add FileFor utility function for trap files
2021-03-19 04:34:14 -07:00
Sauyon Lee
d8885c580a
Add extractor diagnostic tables to the database
2021-03-19 04:34:13 -07:00
Sauyon Lee
25cc1b451d
Add support for float dbscheme columns
2021-03-19 04:30:01 -07:00
Sauyon Lee
104f58151c
Merge pull request #473 from sauyon/revel
...
Add models for Revel and HTML templates
2021-03-18 18:21:53 -07:00
Sauyon Lee
f2b390af5f
Force git not to modify line endings for HTML test files as well
2021-03-18 10:54:34 -07:00
Sauyon Lee
870fcb4531
Explicity pass working directory to index-files
2021-03-18 10:54:33 -07:00
Sauyon Lee
012825323d
Add change note
2021-03-18 10:54:33 -07:00
Sauyon Lee
68dca955a8
Rework tests and fix output
2021-03-18 10:54:32 -07:00
Sauyon Lee
c2321bd365
Add support for XSS sink kinds
2021-03-18 10:51:16 -07:00
Sauyon Lee
9f5a9cf7b8
Add HTTP template response body concept
2021-03-18 10:51:15 -07:00
Sauyon Lee
844f0e49a6
Add getEnclosingTextNode to template statements
2021-03-18 10:51:15 -07:00
Sauyon Lee
96d2777431
Add models for Revel raw templates
2021-03-18 10:51:14 -07:00
Sauyon Lee
4932574083
Add HTML template variable model
2021-03-18 10:51:14 -07:00
Sauyon Lee
e3f68771fc
Add VariableWithFields
2021-03-18 10:51:13 -07:00
Sauyon Lee
8438b893ec
Add HTML tracing capability
2021-03-18 10:51:12 -07:00
Sauyon Lee
ff2034d122
Merge pull request #506 from sn00pyd0g3/add-transport-roundtrip
...
Add Transport.RoundTrip()
2021-03-18 09:40:24 -07:00
sn00py
22c3110602
Update change-notes/2021-03-16-nethttp-updated.md
...
Co-authored-by: Sauyon Lee <sauyon@github.com >
2021-03-18 23:32:23 +08:00
snoopywu
4abf6bbbff
Merge branch 'add-transport-roundtrip' of https://github.com/sn00pyd0g3/codeql-go into add-transport-roundtrip
2021-03-16 23:55:16 +08:00
sn00py
263d813b58
Merge branch 'main' into add-transport-roundtrip
2021-03-16 23:54:53 +08:00
snoopywu
af60a448ad
Merge branch 'add-transport-roundtrip' of https://github.com/sn00pyd0g3/codeql-go into add-transport-roundtrip
2021-03-16 23:53:52 +08:00
snoopywu
161ce91159
Add changenote for #506
2021-03-16 23:51:26 +08:00
Chris Smowton
772b9b8178
Merge pull request #507 from owen-mc/cache-tcontrolflownode
...
Cache TControlFlowNode
2021-03-16 14:45:35 +00:00
Owen Mansel-Chan
f9c4e12c95
Make this. explicit
2021-03-16 13:40:58 +00:00
Owen Mansel-Chan
ea7ecbaa55
Add hint so optimizer doesn't choose bad join order
2021-03-16 13:40:58 +00:00
Owen Mansel-Chan
c940eb61e7
Cache TControlFlowNode
2021-03-16 13:40:58 +00:00
Chris Smowton
ea2b3906b9
Merge pull request #508 from sauyon/change-note-fix
...
Fix change note checker
2021-03-16 13:37:19 +00:00
Sauyon Lee
645e9867a4
Fix change note checker
2021-03-16 06:23:54 -07:00
sn00py
4318ffee3e
Merge branch 'main' into add-transport-roundtrip
2021-03-16 16:52:37 +08:00
Owen Mansel-Chan
8318dcf971
Merge pull request #502 from owen-mc/find-latest-codeql-cli-automatically
...
Find latest release of the CLI automatically
2021-03-16 06:22:50 +00:00
snoopywu
cee30cfde4
fix: autoformat
2021-03-16 01:43:33 +08:00
sn00py
00f12f9210
Update ql/src/semmle/go/frameworks/stdlib/NetHttp.qll
...
Co-authored-by: Sauyon Lee <sauyon@github.com >
2021-03-16 00:41:52 +08:00
Owen Mansel-Chan
52a535463d
Find latest release of the CLI automatically
...
Also download OS-specific zip files while we're at it.
There are two files in `codeql-win64.zip` called `codeql/codeql` and
`codeql/codeql.exe`. Because of the order they were put into the zip,
they come out in the order `codeql/codeql.exe` followed by
`codeql/codeql`, and something on Windows thinks that the second file
has the same name as the first. It's because it's trying to emulate
linux and running `codeql/codeql` could run either one of them. We need
to make sure we definitely have the `.exe` file, so we explicitly
extract it again afterwards. This workaround is already used in some
other places. The order that the zip file is made in has now been fixed
so this shouldn't be a problem for future releases, so this workaround
can be removed in future.
2021-03-15 09:25:51 +00:00
snoopywu
e1219480d8
Add Transport.RoundTrip()
2021-03-13 03:17:58 +08:00
Owen Mansel-Chan
4b004b8f25
Merge pull request #501 from owen-mc/add-problem-matchers-to-ci
...
Highlight error messages in CI
2021-03-12 15:22:33 +00:00
Cornelius Riemenschneider
1f4b91dcb0
Merge branch 'main' into add-problem-matchers-to-ci
2021-03-12 14:53:20 +01:00
Chris Smowton
c58ae845e0
Merge pull request #497 from sauyon/package-restrict
...
Fix performance issue with 'package'
2021-03-12 11:17:38 +00:00
Owen Mansel-Chan
ea7af2e4a2
Highlight error messages in CI
...
Copied problem-matchers from github/semmle-code, which is used for
running CI for github/codeql.
2021-03-11 17:14:38 +00:00
Owen Mansel-Chan
dcc1de4797
Merge pull request #500 from owen-mc/add-missing-qldoc
...
Add missing QLDoc for public declarations
2021-03-11 15:52:39 +00:00
Owen Mansel-Chan
5b09d35668
Add missing QLDoc for public declarations
2021-03-11 15:36:31 +00:00
Sauyon Lee
db20119267
Remove now-unnecessary bindingset annotations
2021-03-10 08:58:45 -08:00
Sauyon Lee
8ad1010860
Restrict 'package' to real package paths
2021-03-10 08:58:41 -08:00
Aditya Sharad
fecf265641
Merge pull request #496 from github/adityasharad/actions/docs-review-fix
...
Actions: Fix comment that tags the Docs team
2021-03-08 10:53:28 -08:00
Aditya Sharad
86052520a5
Actions: Fix comment that tags the Docs team
2021-03-08 09:18:59 -08:00
Chris Smowton
2752505e84
Merge pull request #495 from owen-mc/fix-evanphxjsonpatch-test
...
Model Apply methods correctly
2021-03-05 18:03:28 +00:00
Owen Mansel-Chan
0a48fef0e7
Model Apply methods correctly
...
They were accidentally modeled as functions
2021-03-05 15:55:44 +00:00
Aditya Sharad
769fddeb38
Merge pull request #491 from adityasharad/actions/docs-review
...
Actions: Add workflow to request docs review
2021-03-03 07:40:26 -08:00
Aditya Sharad
348f8c16d1
Actions: Add workflow to request docs review
...
When a PR is labelled with 'ready-for-docs-review',
this workflow comments on the PR to notify the GitHub CodeQL docs team.
Runs on `pull_request_target` events so it can write comments to the PR.
Since this runs in the context of the base repo, it must not check out the PR
or use untrusted data from the event payload.
2021-03-02 18:05:02 -08:00
Chris Smowton
530b791529
Merge pull request #490 from sauyon/gomoduleauto
...
Explicitly set GO111MODULE to auto
2021-03-01 12:45:39 +00:00
Sauyon Lee
0684143291
Merge pull request #483 from owen-mc/sync-dataflow-libraries
...
Sync dataflow libraries
2021-02-25 11:40:50 -08:00
Sauyon Lee
be14df042d
Explicitly set GO111MODULE to auto
2021-02-25 08:22:06 -08:00
Owen Mansel-Chan
f6ff3c009e
Merge branch 'main' into sync-dataflow-libraries
2021-02-24 14:14:44 +00:00
Owen Mansel-Chan
e1402b3881
Merge pull request #486 from owen-mc/add-missing-licences-for-stubbed-libraries
...
Add license files for stubbed dependencies
2021-02-23 18:32:42 +00:00
Owen Mansel-Chan
6c0fe2ed45
Merge branch 'main' into add-missing-licences-for-stubbed-libraries
2021-02-23 17:14:28 +00:00
Owen Mansel-Chan
b7323bf9b6
Merge pull request #487 from sauyon/add-shati
...
Add shati-patel to CODEOWNERS
2021-02-23 17:11:28 +00:00
Sauyon Lee
f3969372a4
Add shati-patel to CODEOWNERS
2021-02-23 09:00:10 -08:00
Owen Mansel-Chan
4728b7a866
Add license files for stubbed dependencies
2021-02-23 16:29:17 +00:00
Sauyon Lee
a4b701d2c5
Merge pull request #480 from sauyon/go116
...
Add preliminary support for go 1.16
2021-02-23 08:16:12 -08:00
Owen Mansel-Chan
7e37c2b63a
Merge pull request #485 from owen-mc/add-new-location-for-beego
...
Add new module path for beego and xmlpath
2021-02-23 11:06:47 +00:00
Owen Mansel-Chan
ff317e63de
Remove http:// in package path
2021-02-22 15:11:59 +00:00
Owen Mansel-Chan
f32b4883bf
Make use of URLs in comments more consistent
2021-02-22 15:08:20 +00:00
Owen Mansel-Chan
370afe3383
Fix incorrect calls to package()
2021-02-22 15:08:20 +00:00
Owen Mansel-Chan
083512acef
Add extra module path for xmlpath package
2021-02-22 15:08:20 +00:00
Owen Mansel-Chan
2bcf73c9fb
Add new module path for beego
...
Beego moved from astaxie/beego to beego/beego on 13 Dec 2020. The
old location still works but is not being updated.
2021-02-22 11:38:13 +00:00
Sauyon Lee
9e45b08178
Merge pull request #484 from sauyon/change-note-action
...
Actions: Add change note checker
2021-02-19 20:12:59 -08:00
Sauyon Lee
17cd04c6b2
Avoid attempting to build i386 darwin binaries
2021-02-19 10:20:29 -08:00
Sauyon Lee
65e6da9b0e
Actions: Add change note checker
...
Co-authored-by: Taus <tausbn@github.com >
2021-02-19 09:40:50 -08:00
Sauyon Lee
23103fd8e0
Add support for 'path/filepath.WalkDir'
2021-02-19 07:59:13 -08:00
Sauyon Lee
82849fe91a
Explicitly set GO111MODULE=off
2021-02-19 07:59:13 -08:00
Sauyon Lee
41cacd579f
Model moved io/ioutil functions
2021-02-19 07:59:12 -08:00
Sauyon Lee
4056ac4ab5
os.FileInfo -> io/fs.FileInfo
2021-02-19 06:25:52 -08:00
Sauyon Lee
adc2f08b76
Add tests for go 1.16 libraries
2021-02-19 06:25:51 -08:00
Sauyon Lee
a327fb7e97
Add support for go 1.16 frameworks
2021-02-19 06:25:51 -08:00
Owen Mansel-Chan
fbbe4692d8
Re-add call to defaultTaintSanitizerGuard()
2021-02-19 14:16:19 +00:00
Owen Mansel-Chan
1c1ebf817f
Rename default taint sanitizer predicate
...
`defaultTaintSanitizer()` is referenced in one of the files that
gets synced, so it is better for us to not change its name. We should
also keep `defaultTaintSanitizerGuard()` consistent.
2021-02-19 14:14:12 +00:00
Sauyon Lee
62ae3ec7c5
Add extractor test for go 1.16
2021-02-18 14:52:54 -08:00
Sauyon Lee
fc9bc68829
Add change note for go 1.16
2021-02-18 11:49:00 -08:00
Sauyon Lee
42939a70b8
Update go.mod to 1.16
2021-02-18 11:48:48 -08:00
Sauyon Lee
fee0355ea0
Update actions to use go 1.16
2021-02-18 11:48:36 -08:00
Owen Mansel-Chan
24d35c35a1
Add Unit class to DataFlowPrivate
2021-02-17 16:42:17 +00:00
Owen Mansel-Chan
4f55ecc995
Sync dataflow libraries
2021-02-17 16:32:16 +00:00
Sauyon Lee
e6d11fc99e
Merge pull request #475 from sauyon/yaml
...
Add models for gopkg.in/yaml
2021-02-16 15:11:47 +00:00
Chris Smowton
2be66d1d74
Merge pull request #479 from smowton/smowton/admin/add-missing-change-notes
...
Add missing change notes
2021-02-16 09:58:29 +00:00
Owen Mansel-Chan
1c6a68ae93
Merge pull request #478 from owen-mc/update-logrus-model
...
Simplify Logrus model
2021-02-16 07:35:44 +00:00
Sauyon Lee
1acbfaafcc
Add models for gopkg.in/yaml
2021-02-15 18:27:09 +00:00
Chris Smowton
95008d1ccb
Update change-notes/2021-02-09-html-templates.md
...
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com >
2021-02-15 14:39:24 +00:00
Chris Smowton
6f5f1c4829
Add missing change notes
2021-02-15 14:07:10 +00:00
Owen Mansel-Chan
46cc9e9fa4
Add change note
2021-02-15 13:51:01 +00:00
Owen Mansel-Chan
a2c0b6ade6
Merge pull request #464 from owen-mc/list-constants-sanitizers
...
List of constants sanitizer guards (switch statement in function only)
2021-02-15 11:39:40 +00:00
Owen Mansel-Chan
6d29a35ac9
Factor the duplicate code in LogCall
...
Co-authored-by: Chris Smowton <smowton@github.com >
2021-02-15 11:20:19 +00:00
Owen Mansel-Chan
68c54d43e6
Move code to TaintTrackingUtil.qll
2021-02-15 10:18:00 +00:00
Owen Mansel-Chan
ef94cde0b3
Simplify Logrus model
...
Make methods which add data to entries sinks in their own right, rather
than trying to track the data flow of the entry to a later logging call.
This may cause some false positives, but only in the situation that
tainted data is added to an entry and that entry is never logged. It will
save us from false negatives when tainted data is added to an entry
which flows across a function boundary to a logging call.
2021-02-15 09:18:34 +00:00
Owen Mansel-Chan
4a2a1871f7
Merge pull request #476 from owen-mc/model-zap
...
Model zap
2021-02-13 13:15:06 +00:00
Owen Mansel-Chan
1dc474650a
Model zap
2021-02-11 14:35:36 +00:00
Chris Smowton
b9a1d9a17e
Merge pull request #474 from sauyon/update-codeql
...
Update actions codeql to 2.4.3
2021-02-11 12:34:51 +00:00
Chris Smowton
2d08173631
Merge pull request #442 from monkey-junkie/main
...
[CWE-369] Query for divide by zero detection
2021-02-11 12:11:45 +00:00
Chris Smowton
b84aef6b83
Prevent getACalleeSource() from sharing magic with other users of getASuccessor*
...
This avoids recursion through the magic side-condition as each discovery of a ListOfConstantsComparisonSanitizerGuard expands the set of things whose getASuccessor* is wanted, which in turn enlarges the set of transitive successors and causes getACalleeSource() to be pointlessly recomputed (pointlessly because all exprNode(getCalleeExpr())s were already computed)
2021-02-11 10:29:30 +00:00
Sauyon Lee
9452df1a5c
Update actions codeql to 2.4.3
2021-02-10 22:43:02 +00:00
Chris Smowton
617b5510d9
Merge pull request #465 from smowton/smowton/feature/less-equality-test-panic-edges
...
Remove panicking edges leading from an equality test where possible
2021-02-10 08:20:27 +00:00
user
c29ab8958f
tests and docs updated
2021-02-10 00:26:46 +03:00
Your Name
4b24e5641e
formatting + example
...
fix
test fix
Update ql/src/experimental/CWE-369/DivideByZero.ql
Co-authored-by: Chris Smowton <smowton@github.com >
Update ql/src/experimental/CWE-369/DivideByZero.qhelp
Co-authored-by: Chris Smowton <smowton@github.com >
Update ql/src/experimental/CWE-369/DivideByZero.qhelp
Co-authored-by: Chris Smowton <smowton@github.com >
2021-02-10 00:26:46 +03:00
Your Name
bd09868686
test fixed, comments added
...
Update ql/src/experimental/CWE-369/DivideByZero.qhelp
Co-authored-by: Chris Smowton <smowton@github.com >
Update ql/src/experimental/CWE-369/DivideByZero.qhelp
Co-authored-by: Chris Smowton <smowton@github.com >
Update ql/src/experimental/CWE-369/DivideByZero.qhelp
Co-authored-by: Chris Smowton <smowton@github.com >
Update ql/src/experimental/CWE-369/DivideByZero.ql
Co-authored-by: Chris Smowton <smowton@github.com >
Update ql/src/experimental/CWE-369/DivideByZero.ql
Co-authored-by: Chris Smowton <smowton@github.com >
Update ql/src/experimental/CWE-369/DivideByZero.ql
Co-authored-by: Chris Smowton <smowton@github.com >
Update ql/src/experimental/CWE-369/DivideByZero.ql
Co-authored-by: Chris Smowton <smowton@github.com >
2021-02-10 00:26:46 +03:00
Your Name
8c5e0a42b3
test fixed
...
Update ql/src/experimental/CWE-369/DivideByZero.ql
Co-authored-by: Chris Smowton <smowton@github.com >
Update ql/src/experimental/CWE-369/DivideByZero.ql
Co-authored-by: Chris Smowton <smowton@github.com >
Update ql/src/experimental/CWE-369/DivideByZero.ql
Co-authored-by: Chris Smowton <smowton@github.com >
2021-02-10 00:26:40 +03:00
Your Name
41e808dab4
conversion detect + tests
2021-02-10 00:26:40 +03:00
Your Name
a77f36fba8
formatting fix
...
Update ql/src/experimental/CWE-369/DivideByZero.ql
Co-authored-by: Chris Smowton <smowton@github.com >
Update ql/src/experimental/CWE-369/DivideByZero.ql
Co-authored-by: Chris Smowton <smowton@github.com >
2021-02-10 00:26:33 +03:00
Chris Smowton
ef658b292a
Fix join order for ListOfConstantsComparisonSanitizerGuard
2021-02-09 19:42:23 +00:00
Chris Smowton
1b9abc5310
Merge pull request #470 from sauyon/go116flagadd
...
Add -overlay to recognized go build flags
2021-02-09 18:31:41 +00:00
Sauyon Lee
8c60c614db
Add -overlay to recognized go build flags
2021-02-09 17:09:48 +00:00
Owen Mansel-Chan
abf59ec98f
Merge pull request #469 from github/owen-mc-code-owners-file
...
Create CODEOWNERS
2021-02-09 17:04:29 +00:00
Owen Mansel-Chan
5cab5b2912
Create CODEOWNERS
...
This is so that `@codeql-go` is automatically suggested as a reviewer for PRs
2021-02-09 17:02:29 +00:00
Chris Smowton
9a919cc6c8
Merge pull request #466 from smowton/smowton/fix/remove-html-template-models
...
Remove models for html/template execution
2021-02-09 11:55:13 +00:00
Chris Smowton
02d21cfce8
Remove models for html/template execution
...
These escape HTML and JavaScript anyhow; because they don't write to their return value they don't quite fit the form of EscapeFunction, so to be expedient I've simply removed their models entirely. Presumably the case where someone HTML-templates something and then uses it for a purpose where HTML sanitisation is insufficient is very rare anyhow.
2021-02-08 19:55:04 +00:00
Sauyon Lee
a325161819
Merge pull request #455 from sauyon/insecure-rng
...
Promote Insecure RNG Query
2021-02-06 08:42:26 -08:00
Sauyon Lee
00e5b7cdfc
InsecureRNG: Select first result in fn only
2021-02-05 22:51:09 -08:00
Chris Smowton
42ff256c42
Remove panicking edges leading from an equality test where possible
...
These exist because an equality comparison of explicitly-incomparable interface values can panic, as can comparisons of arrays or structs containing them. Other type comparisons cannot panic.
2021-02-04 15:58:54 +00:00
Owen Mansel-Chan
d75cc40483
Make test with multiple switch statements pass
...
Made various changes to make it work when there are multiple
switch statements.
Also addressed performance problems.
2021-02-04 14:30:06 +00:00
Owen Mansel-Chan
36fafadda5
Add fallthrough statements to switch statement tests
2021-02-03 15:26:07 +00:00
Owen Mansel-Chan
a7545cd11b
Add test with multiple switch statements
2021-02-03 14:38:53 +00:00
Owen Mansel-Chan
760d89b0d3
Apply suggestions from code review
...
Co-authored-by: Chris Smowton <smowton@github.com >
2021-02-03 14:34:28 +00:00
Owen Mansel-Chan
5ec25de1fc
Add change note
2021-02-02 16:27:44 +00:00
Owen Mansel-Chan
08c59f0f48
Add a default sanitizer guard for list of constants comparison
...
Currently it only deals with the case of a switch statement in
a function.
2021-02-02 16:25:25 +00:00
Owen Mansel-Chan
4c30ed9054
Add predicate to get return statement from return instruction
2021-02-02 15:57:02 +00:00
Owen Mansel-Chan
c4eaf791e6
Add predicate for cast test passing edge in switch statement
2021-02-02 15:57:02 +00:00
Owen Mansel-Chan
dd079d4e51
(clean-up) Make use of this explicit
2021-02-02 11:04:16 +00:00
Owen Mansel-Chan
f279fa17af
(clean-up) Move comment
2021-02-02 11:03:52 +00:00
Sauyon Lee
73dc135480
Move insecure randomness query to cwe-338
...
Also give it a precision
2021-02-02 08:04:12 +00:00
Sauyon Lee
82bd293e5c
Polish insecure randomness query
2021-02-02 08:04:11 +00:00
Sauyon Lee
cfb9593af8
Move InsecureRandomness out of experimental
2021-02-01 15:54:51 +00:00
Sauyon Lee
48a52cfd2f
Merge pull request #437 from sauyon/goproxy
...
Model elazarl/goproxy
2021-01-28 06:05:52 +00:00
Chris Smowton
93aaa74c8c
Merge pull request #451 from sauyon/gokit
...
Add gokit models
2021-01-27 17:47:22 +00:00
Sauyon Lee
fb84df241a
Add change note for goproxy modeling
2021-01-27 17:38:23 +00:00
Sauyon Lee
53b468174f
Make InsecureHostnameRegex check for rejecting handlers
2021-01-27 17:38:22 +00:00
Sauyon Lee
4712afae83
Add models for github.com/elazarl/goproxy
2021-01-27 17:38:02 +00:00
Sauyon Lee
b0ddf4b68b
Add model for net/http.Error
2021-01-27 17:38:02 +00:00
Sauyon Lee
bf9bba79c2
Add getHeaderValue predicate to HTTP::HeaderWrite
2021-01-27 17:38:01 +00:00
Sauyon Lee
39c33c5db1
Add HTTP handler concept
2021-01-27 17:38:01 +00:00
Owen Mansel-Chan
b76ff0d233
Merge pull request #461 from owen-mc/avoid-unused-barrier-guards-in-scope
...
Move reused barrier guards into separate files
2021-01-26 06:08:29 +00:00
Owen Mansel-Chan
bf0f0aff5e
Move reused barrier guards into separate files
...
This way only the barrier guards that are used will be imported.
This is important because of the comment above BarrierGuard, which
warns about the potential danger of having classes that extend
BarrierGuard in scope which are not used.
2021-01-25 17:07:18 +00:00
Owen Mansel-Chan
e55db63184
Merge pull request #462 from owen-mc/make-path-containment-check-more-specific
...
Make PathContainmentCheck more specific
2021-01-25 16:46:33 +00:00
Sauyon Lee
3ed9e66c7a
Add gokit models
2021-01-25 08:15:14 -08:00
Owen Mansel-Chan
71d52500f7
Make PathContainmentCheck more specific
...
Recent changes to Property.checkOn mean that in the code
err == nil && <unrelated-condition>
PathContainmentCheck matches the first condition and the whole &&
expression. Originally it would have only matched the first condition,
and this commit restores that behaviour. This pattern appears 3 times in
the tests, which all still pass.
2021-01-25 15:05:57 +00:00
Max Schaefer
bc74bcec21
Merge pull request #459 from owen-mc/update-barrier-guard-comment
...
Make comment on BarrierGuard more specific
2021-01-25 14:34:20 +00:00
Owen Mansel-Chan
f8c3fbf845
Merge pull request #454 from owen-mc/default-taint-sanitizer-guard-equality-test-guard
...
Make EqualityTestGuard a default taint sanitizer guard
2021-01-25 14:24:08 +00:00
Owen Mansel-Chan
06c6ceda50
Make comment on BarrierGuard more specific
...
The problem that this comment is trying to warn about is the following:
say you have two subclasses of BarrierGuard BG1 and BG2, both of which
contain some node g. Also assume that you have a configuration C which
specifies BG1 as a barrier guard, but not BG2. Because g is contained in
both classes, you will then still get the barrier guard definition from
BG2 due to the way dynamic dispatch works in QL.
2021-01-25 13:16:23 +00:00
Owen Mansel-Chan
8acf572283
Add change note
2021-01-22 17:38:26 +00:00
Owen Mansel-Chan
71f2ed36f2
Make EqualityTestGuard a default taint sanitizer guard
...
It will apply to all configurations, not just those involving Xss.
2021-01-22 17:38:26 +00:00
Owen Mansel-Chan
7dfe5d9f07
Merge pull request #457 from owen-mc/cleanup-avoid-code-duplication
...
Reuse existing class instead of repeating it
2021-01-21 10:56:14 +00:00
Owen Mansel-Chan
7f00ab1f08
Merge pull request #456 from owen-mc/add-guarding-function-test
...
Add tests for guarding functions proxied by a variable
2021-01-21 10:55:54 +00:00
Your Name
ad22445d16
refactor
2021-01-21 01:52:00 +03:00
monkey-junkie
c8da633d7b
Update ql/src/experimental/CWE-369/DivideByZero.ql
...
Co-authored-by: Chris Smowton <smowton@github.com >
2021-01-21 00:54:00 +03:00
Owen Mansel-Chan
7339f3e095
Reuse existing class instead of repeating it
...
This is already done elsewhere.
2021-01-20 16:11:33 +00:00
Owen Mansel-Chan
b623a4c8ec
Add tests for guarding functions proxied by a variable
...
Negation doesn't appear to be handled correctly, so one
of the lines is marked as a false positive.
2021-01-20 14:36:53 +00:00
Owen Mansel-Chan
e2a79f400e
Make use of this explicit
...
It makes it easier to understand the code.
2021-01-19 15:55:02 +00:00
Owen Mansel-Chan
903ff33b0d
Add class for default taint sanitizer guards
...
This allows us to specify taint sanitizer guards that apply in
all configurations.
2021-01-18 10:51:59 +00:00
Owen Mansel-Chan
83c26a3594
Improve predicate name
...
Renamed `defaultTaintSanitizer` to `isDefaultTaintSanitizer`.
2021-01-18 10:50:26 +00:00
Your Name
3251fb5c07
updated
2021-01-18 02:37:53 +03:00
Owen Mansel-Chan
fbe0474d0c
Merge pull request #453 from owen-mc/update-architectures
...
Update Architectures.qll
2021-01-15 16:01:52 +00:00
Owen Mansel-Chan
6219a28b13
Update Architectures.qll
2021-01-15 14:01:01 +00:00
Owen Mansel-Chan
2f9c1a6049
Merge pull request #452 from owen-mc/package-path
...
Use `package()` for package paths not in the standard library
2021-01-15 07:25:06 +00:00
Owen Mansel-Chan
5e2c066e8b
Use package() for package paths not in the standard library
...
This has the advantage that it deals with versioning. For example,
`package("a.io", "b")` matches "a.io/v2/b"
as well as "a.io/b".
At the same time I have created `packagePath()` predicates where they
seemed useful and tried to standardise them a bit.
2021-01-14 17:11:23 +00:00
Owen Mansel-Chan
62052a8772
Merge pull request #449 from owen-mc/model-couchbase-gocb
...
Model Couchbase Go library
2021-01-14 17:00:05 +00:00
Owen Mansel-Chan
a6b5e8b1db
Remove distinct between package paths for v1 and v2
2021-01-14 15:48:21 +00:00
Owen Mansel-Chan
5cd984f3ca
Merge pull request #450 from owen-mc/misc
...
Miscellaneous clean-ups
2021-01-13 12:33:21 +00:00
Owen Mansel-Chan
b5dfef894b
Add change note
2021-01-13 09:18:54 +00:00
Owen Mansel-Chan
d8105a5be0
Add tests for Couchbase v2 NoSQL queries
2021-01-13 09:18:54 +00:00
Owen Mansel-Chan
b02fc16dfc
Add tests for Couchbase v1 NoSQL queries
2021-01-13 09:18:54 +00:00
Owen Mansel-Chan
2ee20b3026
Add tests for Couchbase v1
2021-01-13 09:18:54 +00:00
Owen Mansel-Chan
d2164e16d1
Switch NoSQL tests to use inline expectations
2021-01-13 09:18:54 +00:00
Owen Mansel-Chan
a5ac947d16
Model Couchbase v2 NoSQL queries
2021-01-13 09:18:54 +00:00
Owen Mansel-Chan
7fc88ad85b
Model Couchbase v1 NoSQL query sinks
2021-01-13 09:18:54 +00:00
Owen Mansel-Chan
a973ce4539
Model Couchbase gocb v1
2021-01-13 09:18:54 +00:00
Owen Mansel-Chan
9a51de56de
Add comment explaining \Q and \E in regex
2021-01-12 16:56:04 +00:00
Owen Mansel-Chan
9236ad752b
Improve formatting and style in Gin.qll
2021-01-12 16:56:04 +00:00
Owen Mansel-Chan
71774ed2d4
Remove redundant code
...
RawMessage implements Marshaler and Unmarshaler, so these methods are
covered by the two sections below
2021-01-12 16:56:04 +00:00
Owen Mansel-Chan
57ee3a8a64
Use set literal
2021-01-12 16:56:04 +00:00
Owen Mansel-Chan
fe1f08fb12
Use existing predicate
...
There already exists the predicate
implements(string pkg, string tp, string name)
which does exactly what this code does
2021-01-12 16:55:51 +00:00
Sauyon Lee
3f1197d605
Merge pull request #448 from sauyon/autoformat
...
Autoformatter update
2021-01-12 14:29:45 +00:00
Sauyon Lee
c11028229a
Bump codeql version
2021-01-12 13:15:31 +00:00
Sauyon Lee
7a4dbc6fa7
Autoformatter update
2021-01-12 13:13:15 +00:00
Chris Smowton
c79e4f7836
Merge pull request #447 from smowton/smowton/admin/git-change-note
...
Add change-note for addition of `git` to the list of known interpreters for the go/command-injection query
2021-01-12 11:33:49 +00:00
Chris Smowton
a9cff82161
Add change-note for addition of git to the list of known interpreters for the go/command-injection query.
2021-01-11 18:48:54 +00:00
Chris Smowton
45635b67c6
Merge pull request #445 from smowton/smowton/feature/git-as-shell
...
Add 'git' as a possible command-interpreter, unless arguments are sanitized using "--"
2021-01-07 15:01:25 +00:00
Chris Smowton
83cee4a334
Add 'git' as a possible command-interpreter, unless arguments are sanitized using "--"
...
This is because some git flags can specify arbitrary commands to execute, but its positional arguments cannot, and "--" like in many commands instructs git to consume no further flags.
2021-01-07 11:54:41 +00:00
Chris Smowton
2dffd3e261
Merge pull request #443 from smowton/smowton/admin/missing-change-notes-2021-01
...
Add change-notes for recent PRs that were missing them
2021-01-05 11:41:35 +00:00
Chris Smowton
e6327f502c
Merge pull request #444 from smowton/smowton/admin/merge-rc-126
...
Merge rc/1.26 back into `main`
2021-01-05 11:40:34 +00:00
Chris Smowton
19921ed115
Add change-notes for recent PRs that were missing them
2021-01-05 11:39:26 +00:00
Chris Smowton
2b608e5822
Merge remote-tracking branch 'origin/rc/1.26' into HEAD
2021-01-04 15:32:15 +00:00
monkey-junkie
de566da91c
Update DivideByZero.ql
2021-01-03 00:55:10 +03:00
monkey-junkie
d81ec15990
Update DivideByZeroBad.go
2021-01-03 00:54:42 +03:00
Your Name
4b36a62834
divide by zero rule
2021-01-03 00:51:34 +03:00
Sauyon Lee
ace9271cc4
Merge pull request #441 from twpayne/contributing-building-and-testing
...
Docs: Add building and testing to contributing guide
2020-12-29 11:13:37 -08:00
Tom Payne
06721ce189
Docs: Add building and testing to contributing guide
2020-12-29 00:28:17 +01:00
Sauyon Lee
2ba26f69c0
Merge pull request #440 from twpayne/regexp-anchors
...
Support more regexp anchors
2020-12-23 11:42:06 -08:00
Tom Payne
9bbdf86487
Support more regexp anchors
2020-12-23 14:04:33 +01:00
Chris Smowton
5647a47bd4
Merge pull request #436 from sauyon/InVisionApp/main
...
Refactor HTTP tests
2020-12-18 12:08:46 +00:00
Jason Rogers
baa169cc77
Refactored HTTP tests
...
This will align test location with the library.
2020-12-17 08:10:06 -08:00
Owen Mansel-Chan
e3d0ccabae
Merge pull request #435 from owen-mc/use-implements-where-possible
...
Use `implements` for interface methods
2020-12-17 16:02:14 +00:00
Owen Mansel-Chan
d184f245ed
Use implements for interface methods
...
This means we will find more things.
2020-12-17 12:42:18 +00:00
Owen Mansel-Chan
dcb6cc3a7c
Merge pull request #434 from owen-mc/model-kubernetes-secret
...
Model Secret and SecretList from k8s.io/api/core/v1
2020-12-16 17:17:21 +00:00
Chris Smowton
8060993b3b
Merge pull request #430 from smowton/smowton/feature/model-beego-orm
...
Model the Beego ORM subpackage
2020-12-16 16:08:18 +00:00
Owen Mansel-Chan
0cb0879381
Model Secret and SecretList from k8s.io/api/core/v1
2020-12-16 16:03:48 +00:00
Chris Smowton
44a63b2f94
Model the Beego ORM subpackage
2020-12-16 14:39:58 +00:00
Owen Mansel-Chan
87f2cad475
Merge pull request #427 from owen-mc/model-kubernetes-secret
...
Model kubernetes SecretInterface
2020-12-15 17:12:45 +00:00
Chris Smowton
de93b59245
Merge pull request #419 from smowton/smowton/feature/model-beego
...
Model Beego web framework
2020-12-15 16:15:59 +00:00
Owen Mansel-Chan
0980a50627
Remove erroneous import from stub
2020-12-15 16:00:58 +00:00
Owen Mansel-Chan
676ca529b5
Add tests
2020-12-15 16:00:58 +00:00
Owen Mansel-Chan
6ca2e0e38e
Add SecretInterface as source for cleartext logging query
2020-12-15 16:00:58 +00:00
Owen Mansel-Chan
8fd055bc60
Model SecretInterface from k8s.io/client-go/kubernetes/typed/core/v1
2020-12-15 16:00:51 +00:00
Chris Smowton
8e7abbac0a
Model Beego web framework
...
This excludes the ORM, email and validation components, which I will follow up with seperately.
2020-12-15 14:04:36 +00:00
Chris Smowton
8b6f229bd3
SafeUrlFlow: allow libraries to add sources
2020-12-15 14:01:59 +00:00
Sauyon Lee
3617a801db
Merge pull request #429 from sauyon/smowton/admin/refactor-http-module
...
Refactor HTTP module
2020-12-14 09:25:43 -08:00
Jason Rogers
3a83fbd765
Refactor HTTP module
...
This makes it easier to identify related classes and support future expansion.
2020-12-14 07:16:24 -08:00
Owen Mansel-Chan
e4316768ef
Merge pull request #426 from owen-mc/model-k8s-io-apimachinery-pkg-runtime
...
Model k8s.io/apimachinery/pkg/runtime
2020-12-09 09:16:47 +00:00
Owen Mansel-Chan
c17f1618e0
Add change note
2020-12-09 06:45:08 +00:00
Owen Mansel-Chan
4d3eb47784
Fix stubbing
...
Depstubber can only stub one package at a time. We have to do some
manual editing to make a stubbed package use another stubbed package.
2020-12-09 06:45:08 +00:00
Owen Mansel-Chan
e5fb401d50
Model runtime
2020-12-09 06:45:08 +00:00
Owen Mansel-Chan
290a4dcdf4
Merge pull request #414 from owen-mc/model-evanphx-json-patch
...
Model evanphx/json-patch
2020-12-08 17:36:10 +00:00
Owen Mansel-Chan
0b50ee7755
Change to Inline Expectations Test
2020-12-08 16:38:13 +00:00
Owen Mansel-Chan
e786fa07ee
Add change note
2020-12-08 16:15:01 +00:00
Owen Mansel-Chan
5ebd637ca7
Model evanphx/json-patch
2020-12-08 16:15:01 +00:00
Chris Smowton
6b8003b0f2
Merge pull request #420 from smowton/smowton/admin/upgrade-codeql-240-and-autoformat
...
Upgrade CI toolchain to CodeQL 2.4.0
2020-12-07 14:16:19 +00:00
Chris Smowton
563f74bd45
Upgrade CI toolchain to CodeQL 2.4.0
...
Also reformat code (the autoformatter has changed slightly)
2020-12-07 12:35:07 +00:00
Chris Smowton
a794e05c74
Merge pull request #417 from smowton/smowton/fix/reduce-symlink-loop-finding-cost
...
Unsafe-unzip-symlinks: reduce cost of `getAnEnclosingLoop`
2020-12-03 12:21:38 +00:00
Chris Smowton
c1669d732b
Unsafe-unzip-symlinks: reduce cost of getAnEnclosingLoop
...
This used to get the closest enclosing loops of all expressions; now it is restricted to those surrounding interesting expressions.
2020-12-02 14:33:38 +00:00
Chris Smowton
f9fc01bd73
Merge pull request #415 from smowton/smowton/feature/errorf-returns-non-nil
...
Note that `fmt.Errorf` returns non-nil
2020-12-01 12:04:23 +00:00
Chris Smowton
63079b3e9d
Merge pull request #416 from smowton/smowton/admin/cherrypick-suspicious-char-fix
...
Cherry-pick #395 (suspicious-char-in-regex FP fix) onto rc/1.26
2020-12-01 11:45:14 +00:00
Owen Mansel-Chan
8c33979425
Merge pull request #388 from owen-mc/untrusted-data-flow-to-external-api
...
Untrusted data flow to external API
2020-12-01 11:25:58 +00:00
Sauyon Lee
b2ae6550ec
Add additional tests for suspicious character in regexp regexp
2020-11-30 19:15:17 +00:00
Sauyon Lee
09d41952dc
SuspiciousCharacterInRegexp: Add fix for raw string literals
2020-11-30 19:15:17 +00:00
Sauyon Lee
568b365575
Add isRaw to StringLit
2020-11-30 19:15:17 +00:00
Chris Smowton
5d17b27770
Note that fmt.Errorf returns non-nil
...
This enables recognising more guarding functions that return nil/non-nil conditional on a barrier guard.
2020-11-30 19:10:58 +00:00
Chris Smowton
3338a0b10d
Merge pull request #402 from smowton/smowton/feature/zipslip-more-generous-sanitisers
...
ZipSlip: redefine sources closer to their origin, and make sanitizers more generous
2020-11-27 18:25:07 +00:00
Owen Mansel-Chan
bfbf102408
Remove restriction on void and boolean-returning methods
...
When the taint was in the receiver, we were excluding methods which
return nothing or a boolean.
2020-11-27 16:51:24 +00:00
Owen Mansel-Chan
7730d66d76
Apply suggestions from code review
...
Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com >
2020-11-27 16:17:54 +00:00
Chris Smowton
70015b2c32
Add tests for zipslip using a utility function to check that the archive header is safe
...
Note this currently contains some cases that are safe but are still flagged, because of weaknesses in the guardingFunction predicate.
2020-11-27 15:11:57 +00:00
Sauyon Lee
627241aaa5
Merge pull request #401 from sauyon/stored-command
...
Add stored command query
2020-11-27 06:37:02 -08:00
Chris Smowton
1eb8fff7e1
ZipSlip: redefine sources closer to their origin, and make sanitizers more generous.
...
Previously we considered certain fields of `tar` or `zip` file headers to be sources, but this meant subsequent references to the same field were not considered sanitized. For example, at least some real-world projects used a pattern like `if isIllegalPathTraversal(hdr.Name) { return nil; } ... /* other code using hdr.Name */`. By associating a source with the field-read `.Name` rather than the header itself, we were unable to see that the subsequent read was guarded by the sanitizer function.
Relatedly, it is common to use some intermediary taint-propagating function, as in `clean(s string) { if strings.HasPrefix("..", filepath.Clean(filepath.Join(target, s))) ...`, in the implementation of a sanitizer. We now follow the taint propagation (locally) backwards towards the function parameter, marking the predecessor functions and ultimately the parameter `s` as sanitized in addition to the direct argument to `strings.HasPrefix`. Existing sanitizing-function logic can then sometimes lift this out into the caller too.
2020-11-27 13:57:25 +00:00
Chris Smowton
f775adf306
Merge pull request #404 from smowton/smowton/feature/improved-guarding-function
...
Recognise many more guarding functions
2020-11-27 13:56:31 +00:00
Chris Smowton
c6f14de065
Merge pull request #413 from smowton/smowton/admin/document-cond-root-etc
...
Clarify naming and add documentation around `hasSemantics` and cousins
2020-11-26 16:59:07 +00:00
Owen Mansel-Chan
0ee00d8647
Apply suggestions from code review
...
Co-authored-by: Chris Smowton <smowton@github.com >
2020-11-26 16:49:02 +00:00
Owen Mansel-Chan
bf78189e21
Make two separate queries
2020-11-26 14:59:13 +00:00
Owen Mansel-Chan
dec7967c7a
Update qhelp files
2020-11-26 14:57:56 +00:00
Owen Mansel-Chan
e7697963d3
Exclude local function pointers
2020-11-26 14:57:56 +00:00
Owen Mansel-Chan
05fe388ba3
Mark hashing functions as safe
...
See https://github.com/github/codeql-go-team/issues/219 for issue to
model this better
2020-11-26 14:57:55 +00:00
Owen Mansel-Chan
d3bef7fc4f
Model safe external APIs
2020-11-26 14:57:55 +00:00
Owen Mansel-Chan
4184a6ecd8
Add testing frameworks
...
Add "github.com/golang/mock/gomock", several packages under
"github.com/stretchr/testify", £gotest.tools/assert",
"k8s.io/client-go/testing" and "testing"
2020-11-26 14:57:55 +00:00
Owen Mansel-Chan
410cf49af8
Shorten function using set literal
2020-11-26 14:57:55 +00:00
Owen Mansel-Chan
18c66e84f7
Make more package paths accessible
2020-11-26 14:57:55 +00:00
Owen Mansel-Chan
171e433593
Exclude test files
2020-11-26 14:57:55 +00:00
Owen Mansel-Chan
fe5822ae3a
Exclude functions in packages which have some modeled functions
2020-11-26 14:57:55 +00:00
Owen Mansel-Chan
ff542508aa
Exclude sinks from common queries
2020-11-26 14:57:55 +00:00
Owen Mansel-Chan
b698276e3a
Update function name to give better text output
2020-11-26 14:57:55 +00:00
Owen Mansel-Chan
50a32f47d5
First draft
2020-11-26 14:57:50 +00:00
Chris Smowton
fb814e949d
Clarify naming and add documentation around hasSemantics and cousins
2020-11-26 13:34:58 +00:00
Chris Smowton
2377337564
Treat functions that directly return a BarrierGuard like BarrierGuards themselves
2020-11-26 13:27:53 +00:00
Chris Smowton
387a13f22a
Add support for barrier guards in functions that indicate success by returning nil
...
Typically these are returning a nil error when sanitization succeeds.
2020-11-24 12:39:05 +00:00
Chris Smowton
7bbf9ed860
Merge pull request #410 from github/lgtm.com
...
Merge lgtm.com into main
2020-11-23 17:17:42 +00:00
Chris Smowton
ed6804859a
Merge pull request #409 from smowton/smowton/admin/missing-change-notes-rc126
...
Add change notes for PRs that omitted them
2020-11-23 11:11:56 +00:00
Sauyon Lee
0bf09307cf
Add StoredCommand query
2020-11-23 02:11:44 -08:00
Chris Smowton
62c51f9125
Merge pull request #408 from smowton/smowton/admin/add-missing-doc-strings
...
Add docstrings to all public elements
2020-11-20 17:37:47 +00:00
Chris Smowton
e241f8469b
Add change notes for PRs that omitted them
2020-11-20 16:15:12 +00:00
Chris Smowton
af432c71ff
Add docstrings to all public elements.
2020-11-20 15:35:42 +00:00
Sauyon Lee
793d6f6053
Merge pull request #399 from sauyon/stored-xss
...
Add stored XSS query
2020-11-19 23:23:21 -08:00
Chris Smowton
93a7cc944a
Merge pull request #403 from smowton/smowton/fix/type-assertion-dataflow
...
Add data-flow edge `from -> to` in the context `to, ok := from.(*Type)`
2020-11-19 16:13:55 +00:00
Chris Smowton
c93b2b709d
Merge pull request #407 from smowton/smowton/fix/isunreachableincall-slowness
...
Improve join order in `isUnreachableInCall`
2020-11-19 11:22:48 +00:00
Chris Smowton
38e383858e
Merge pull request #394 from smowton/smowton/feature/unsafe-unzip-symlink
...
Add query checking for unpacking of symlinks without using EvalSymlinks to spot existing ones.
2020-11-18 19:10:18 +00:00
Chris Smowton
d1f607ccd8
Improve join order in isUnreachableInCall
2020-11-18 19:06:52 +00:00
Owen Mansel-Chan
7433d448d9
Merge pull request #406 from owen-mc/update-dataflow-libs-2
...
Update dataflow libs 2
2020-11-17 21:17:52 +00:00
Chris Smowton
3d8470e1e2
Add and use TypeCastNode::getResultType
...
This can differ from `getType` when a `TypeAssertExpr` returns a (result, ok) pair.
2020-11-17 16:03:33 +00:00
Owen Mansel-Chan
ce67418cdc
Update tests
...
These changes match those in https://github.com/github/codeql/pull/4440
2020-11-17 15:48:50 +00:00
Owen Mansel-Chan
d3154d0aa7
Sync dataflow libraries
...
`make sync-dataflow-libraries`
2020-11-17 15:48:50 +00:00
Owen Mansel-Chan
4bfe088c0f
Update dataflow branch from master to main
2020-11-17 15:48:50 +00:00
Chris Smowton
1d850873f3
Add data-flow edge from -> to in the context to, ok := from.(*Type)
2020-11-17 10:59:59 +00:00
Chris Smowton
79c010a601
Move unsafe-unzip-symlink query into qll file and give it customization points.
2020-11-16 09:57:26 +00:00
Chris Smowton
500d78dafa
Include os.Readlink as a probable sanitiser.
...
A couple of projects seem to walk links one unit at a time, rather than just throwing `EvalSymlinks` at the whole potentially suspect path.
2020-11-16 09:57:26 +00:00
Chris Smowton
2193642c6e
Expand query to notice Symlink and archive iterator calls that do not directly share a loop
...
We look across function-call boundaries to check there is some common enclosing loop, but false-positives are more likely if in practice there is no control-flow path from the archive iterator to the Symlink call and back.
2020-11-16 09:57:26 +00:00
Chris Smowton
1a2c209259
Add query checking for unpacking of symlinks without using EvalSymlinks to spot existing ones.
...
This is usually dangerous because (if the archive is untrusted) the intent is usually to permit within-archive symlinks, e.g. dest/a/parent -> .. -> dest/a is an acceptable link to unpack. However if EvalSymlinks is not used to take already-unpacked symlinks into account, it becomes possible to sneak tricks like dest/escapes -> dest/a/parent/.. through, which create links leading out of the archive for later abuse.
2020-11-16 09:57:26 +00:00
Chris Smowton
43f9351094
Merge pull request #405 from igfoo/igfoo/portability
...
Use more portable syntax in codeql-tools/autobuild.sh
2020-11-13 14:59:54 +00:00
Ian Lynagh
f5223bae4c
Use more portable syntax in codeql-tools/autobuild.sh
2020-11-13 14:30:04 +00:00
Sauyon Lee
7279d4090d
Apply suggestions from code review
...
Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com >
2020-11-12 21:26:53 -08:00
Sauyon Lee
f129949a38
Apply review comments
...
Co-authored-by: Chris Smowton <smowton@github.com >
2020-11-11 23:49:23 -08:00
Sauyon Lee
efddef7fa2
Add tests for stored XSS query
2020-11-11 23:13:12 -08:00
Sauyon Lee
d517125507
Add tests for SQL framework
2020-11-11 23:13:12 -08:00
Sauyon Lee
30b17d9762
Add StoredXSS query
2020-11-11 23:13:11 -08:00
Sauyon Lee
36bbf1eeb9
Improve models for database/sql
2020-11-11 22:10:16 -08:00
Chris Smowton
82a5b5f264
Merge pull request #369 from sauyon/checkdeps
...
Check dependencies before skipping dependency installation
2020-11-11 09:54:33 +00:00
Chris Smowton
04cec8b542
Merge pull request #400 from sauyon/autoformat
...
Autoformat tests
2020-11-11 09:51:50 +00:00
Nick Rolfe
c7e03cbd98
Merge pull request #398 from github/nickrolfe/getFileBySourceArchiveName
...
Replace getEncodedFile with getFileBySourceArchiveName predicate
2020-11-10 18:19:00 +00:00
Sauyon Lee
5a9b8a5465
Autoformat
2020-11-10 09:35:29 -08:00
Sauyon Lee
80c2fcdbb8
Autoformat tests
2020-11-10 09:35:16 -08:00
Nick Rolfe
17b6401c22
Replace getEncodedFile with getFileBySourceArchiveName predicate
...
While also making it work with paths for databases created on Windows.
2020-11-10 16:43:21 +00:00
Chris Smowton
235b7c0bc5
Merge pull request #395 from sauyon/regexp
...
SuspiciousCharacterInRegexp: Add fix for raw string literals
2020-11-10 12:18:38 +00:00
Sauyon Lee
0950baf4b7
Add additional tests for suspicious character in regexp regexp
2020-11-09 10:36:27 -08:00
Sauyon Lee
eb26b0abd1
SuspiciousCharacterInRegexp: Add fix for raw string literals
2020-11-09 10:10:47 -08:00
Sauyon Lee
52d253a95b
Add isRaw to StringLit
2020-11-09 10:08:51 -08:00
Chris Smowton
33f43626b3
Merge pull request #396 from sauyon/remove-code-scanning
...
Remove code scanning temporarily
2020-11-09 10:58:55 +00:00
Sauyon Lee
920f7153c8
autobuilder: Add dependency check
...
Sometimes build scripts succeed without installing dependencies, for
example if they are unrelated to Go or if they simply always exit
successfully. Therefore, added a check that dependencies at least
resolve before skipping dependency installation.
2020-11-09 02:13:48 -08:00
Sauyon Lee
4a53bfdebf
autobuilder: Only set mod mode when go.mod exists
2020-11-09 02:13:47 -08:00
Sauyon Lee
cc0a40e712
Remove code scanning until build tracing is implemented.
2020-11-09 02:11:05 -08:00
Chris Smowton
0938437d13
Merge pull request #373 from smowton/smowton/feature/golang-x-net-html
...
Add models for the read side of golang.org/x/net/html
2020-11-06 16:20:45 +00:00
Calum Grant
b54e76bdc7
Merge commit '3c84f11d5bf344cf5a667a04ccabcfb30f677c9c' into lgtm.com
...
# Conflicts:
# extractor/cli/go-autobuilder/go-autobuilder.go
2020-11-06 15:55:16 +00:00
Sauyon Lee
a78c35b95e
Simplify net/http ResponseBody logic
2020-11-06 11:18:46 +00:00
Sauyon Lee
8a306af77b
Make HTTP::ResponseWriter handle PostUpdateNodes in getANode
2020-11-06 11:18:46 +00:00
Chris Smowton
3817ae80e5
Add support for html.Render method.
...
This entails generalising Http::ResponseBody to account for any modelled function writing to a ResponseWriter.
2020-11-06 11:04:53 +00:00
Chris Smowton
02f353eabd
Add models for the read side of golang.org/x/net/html
...
This covers cases where an HTML document is retrieved and then parts of its structure are output without proper escaping.
2020-11-06 11:04:53 +00:00
Chris Smowton
03bbef7286
Add models for the read side of golang.org/x/net/html
...
This covers cases where an HTML document is retrieved and then parts of its structure are output without proper escaping.
2020-11-06 11:04:53 +00:00
Chris Smowton
e4aa252d6b
Merge pull request #381 from sauyon/gomodfix
...
Update dependencies and clean go.mod
2020-11-06 10:14:22 +00:00
Chris Smowton
582f8e444b
Merge pull request #393 from smowton/smowton/fix/cfg-assignment-underscores
...
CFG: fix lastNode relating to assignments with underscores on the LHS
2020-11-03 14:32:57 +00:00
Chris Smowton
3b927f3b6b
CFG: fix lastNode relating to assignments with underscores on the LHS
...
For example, "x, _ := a, b" would produce an incorrect CSV that branched to the next statement after evaluating "b", skipping the assignment to 'x'. We already had test coverage for function returns, so I'm reasonably confident this only affects parallel assigns, not destructuring ones like "x, y := f()".
2020-11-03 12:00:54 +00:00
Sauyon Lee
3c84f11d5b
Merge pull request #385 from github/sauyon-patch-1
...
Enable code scanning
2020-10-29 11:00:08 -07:00
Chris Smowton
cbc2443236
Merge pull request #390 from smowton/smowton/admin/links-master-to-main
...
Docs: replace master with main and QL4E with VSCode
2020-10-29 11:06:33 +00:00
Chris Smowton
1c75c9d1e9
Docs: Master -> main and Semmle/ql -> github/codeql everywhere
...
Also fix a reference to QL for Eclipse, and remove some incidental trailing whitespace
2020-10-29 11:04:49 +00:00
Chris Smowton
0f637c5887
Merge pull request #379 from smowton/model-revel
...
Model Revel
2020-10-28 09:56:25 +00:00
Chris Smowton
7ddb289910
Merge pull request #389 from github/aibaars/fix-broken-links
...
Update links in ql/docs/experimental.md
2020-10-28 09:55:21 +00:00
Arthur Baars
31cd26fded
Update links in ql/docs/experimental.md
2020-10-28 10:12:52 +01:00
Chris Smowton
0bf80641e8
Revel: mark header reads as user-controlled data
2020-10-26 12:26:37 +00:00
Chris Smowton
f0c0a890a5
Move OpenUrlRedirect customisation into the query's qll file
2020-10-26 12:25:56 +00:00
Chris Smowton
4a2c4bf1b8
Merge pull request #387 from sauyon/testing-framework
...
Add a testing framework
2020-10-26 10:32:22 +00:00
Sauyon Lee
64ac49a618
Merge pull request #380 from sauyon/funtionmodel-shortcuts
...
Add utility predicates to FunctionModel
2020-10-23 02:26:51 -07:00
Chris Smowton
e9278b5477
Merge pull request #386 from smowton/smowton/admin/improve-error-messages
...
Improve error messages
2020-10-23 08:27:03 +01:00
Chris Smowton
26b7deccf5
Autobuilder: fall back when os.Executable fails
...
This can happen under tracing, perhaps because of https://github.com/github/codeql-tracer/issues/29
2020-10-22 20:04:47 +02:00
Sauyon Lee
47f40d5f3e
Add tests for log frameworks
2020-10-22 09:18:53 -07:00
Sauyon Lee
671b427e1e
Add shared testing framework
...
It has been modified to use `hasLocation` instead of `Location`
2020-10-22 09:18:52 -07:00
Sauyon Lee
1e034a1dd5
Add logrus to go.qll
2020-10-22 09:18:52 -07:00
Chris Smowton
82de513764
Merge pull request #384 from sauyon/gobuild
...
extractor: Extract the working directory if no packages are passed
2020-10-22 15:43:48 +01:00
Chris Smowton
3716f6d7e9
Improve error messages
2020-10-22 14:42:23 +01:00
Chris Smowton
6122223b37
Merge pull request #383 from smowton/smowton/feature/work-around-broken-os-executable
...
Autobuilder: fall back when os.Executable fails
2020-10-22 14:41:37 +01:00
Sauyon Lee
ec52bdd536
Enable code scanning
2020-10-22 06:07:15 -07:00
Sauyon Lee
e22bf96ba3
extractor: Extract the working directory if no packages are passed
2020-10-22 05:22:33 -07:00
Chris Smowton
5cc695f1d5
Autobuilder: fall back when os.Executable fails
...
This can happen under tracing, perhaps because of https://github.com/github/codeql-tracer/issues/29
2020-10-22 13:19:55 +01:00
Sauyon Lee
4356f38b8f
Update dependencies and clean go.mod
2020-10-22 04:57:21 -07:00
Chris Smowton
62c6b0dc37
Add support for more Revel untrusted sources
2020-10-21 17:28:28 +01:00
Chris Smowton
2818da4df9
Advance to latest codeql-cli release
2020-10-21 17:27:18 +01:00
Sauyon Lee
e823712adf
Add utility predicates to FunctionModel
...
Co-authored-by: Chris Smowton <smowton@github.com >
2020-10-21 09:16:04 -07:00
Chris Smowton
9aceae8bd6
Revel: add support and tests for Render and Redirect sinks.
2020-10-20 10:00:05 +01:00
Owen Mansel-Chan
b2b8f10418
Fix stub for Revel
...
Embedded fields aren't stubbed correctly
2020-10-19 15:47:08 +01:00
Owen Mansel-Chan
4dfa9d58c0
Model Revel
2020-10-19 15:47:07 +01:00
Owen Mansel-Chan
f4f29be8ac
Add ability to specify default taint sanitizers
...
This allows library models to specify taint sanitizers.
2020-10-19 15:46:33 +01:00
Owen Mansel-Chan
01ad7acb6f
Remove unnecessary import
2020-10-19 15:46:33 +01:00
Owen Mansel-Chan
f49ff279b8
Merge pull request #375 from owen-mc/spew
...
Model Spew logging framework
2020-10-16 13:20:13 +01:00
Owen Mansel-Chan
b89775ac65
Update change-notes/2020-10-14-spew.md
...
Co-authored-by: Chris Smowton <smowton@github.com >
2020-10-16 10:56:27 +01:00
Chris Smowton
2b07e6a0f4
Merge pull request #324 from sauyon/tracing
...
Build tracing
2020-10-15 11:27:34 +01:00
Chris Smowton
4746789fe8
Merge pull request #224 from sauyon/no-vendor
...
Skip vendor directories for go.mod extraction
2020-10-15 11:03:26 +01:00
Sauyon Lee
e5afd1dcb6
go-extractor: clarify --mimic error message
...
Co-authored-by: Chris Smowton <smowton@github.com >
2020-10-14 09:43:10 -07:00
Sauyon Lee
25eebe95e4
autobuilder: Clarify error message
2020-10-14 09:42:12 -07:00
Sauyon Lee
3c6626c604
Don't trace through problem binaries on OS X
...
See https://github.com/github/semmle-code/pull/37764
2020-10-14 09:42:12 -07:00
Sauyon Lee
3addb962a9
Add change note for build tracing
2020-10-14 09:42:12 -07:00
Sauyon Lee
2e73f3efd1
Add change note for go.mod extraction change
...
Co-authored-by: Chris Smowton <smowton@github.com >
2020-10-14 09:25:39 -07:00
Sauyon Lee
1ba1029a13
Use comment-based tests for GoModExpr
2020-10-14 09:25:38 -07:00
Sauyon Lee
34837c10ce
Fix tests for go.mod files
2020-10-14 09:25:38 -07:00
Sauyon Lee
3242df4177
Use package root directory to find go.mod files
2020-10-14 09:13:57 -07:00
Owen Mansel-Chan
8811758e44
Add change note
2020-10-14 14:49:50 +01:00
Owen Mansel-Chan
4b76966a49
Model Spew logging framework
2020-10-14 14:47:22 +01:00
Chris Smowton
b2fef01d28
Merge pull request #378 from smowton/smowton/admin/change-note-typo
...
Fix changenote typo
2020-10-14 13:33:21 +01:00
Chris Smowton
72ee460a64
Fix changenote typo
2020-10-14 13:32:26 +01:00
Chris Smowton
0afa0e75c4
Merge pull request #374 from smowton/smowton/feature/more-accurate-allocation-overflow
...
Improve accuracy of allocation-size-overflow by excluding len(...) calls that never see a large operand
2020-10-14 13:25:45 +01:00
Chris Smowton
83a7411a05
Improve accuracy of allocation-size-overflow by excluding len(...) calls that never see a large operand
...
This is achieved by splitting the query into two pieces: (1) trace flow from indefinitely large object creation to len(...) calls, then (2) considering those particular len(...) calls as taint propagators, trace taint from the same sources all the way to an allocation call. This is more accurate than the previous solution, which considered any len(...) call to propagate taint, potentially confusing an array that stored a large value in one of its cells for an array which is itself of large size.
2020-10-14 10:16:08 +01:00
Chris Smowton
59f8717ca2
Merge pull request #372 from smowton/smowton/feature/golang-x-net-context
...
Extend `context` models to cover its old `golang.org/x/net/context` home.
2020-10-13 10:33:36 +01:00
Chris Smowton
40869480e1
Extend context models to cover its old golang.org/x/net/context home.
2020-10-12 12:27:19 +01:00
Chris Smowton
b370a865f1
Merge pull request #370 from max-schaefer/fix-formatting-targets
...
Fix escaping in Makefile targets.
2020-10-09 10:56:07 +01:00
Max Schaefer
9db478aa03
Fix escaping in Makefile targets.
...
Previously, invoking `make autoformat` would run a command of this form:
```sh
... | grep \\.go$ | ...
```
Note that the `$` is not escaped. This probably wasn't intended, even though it happens to work anyway, since the shell doesn't try to expand lone `$`s.
More problematically, invoking `make check-formatting` would run a command of this form:
```sh
... | grep \\.go| ...
```
Note that the `$` is gone, so it matches `.go` anywhere in the file name. In particular, it matches `ql/test/library-tests/semmle/go/frameworks/Protobuf/vendor/google.golang.org/protobuf/LICENSE`, which I think is responsible for the somewhat mysterious "expected 'package', found Copyright" errors we've been seeing from CI.
This PR fixes both targets to run
```sh
... | grep '\.go$' | ...
```
Because of the single quotes we only need a single backslash, and the `$` gets left alone.
2020-10-09 09:07:24 +01:00
Sauyon Lee
85c92251d6
Add a new binary for tracing
2020-10-08 23:31:06 -07:00
Sauyon Lee
de0582a67f
autobuilder: extract out attempted build commands
2020-10-08 23:31:05 -07:00
Sauyon Lee
cd63ea84aa
extractor: revamp argument parsing
2020-10-08 23:31:05 -07:00
Sauyon Lee
2da89c6527
extractor: factor out run from autobuilder
2020-10-08 23:31:05 -07:00
Sauyon Lee
eaf5342b7d
Enable Go modules while determining module directory
2020-10-08 23:31:05 -07:00
Sauyon Lee
16796529fc
Add package directory as a wanted root
2020-10-08 23:31:05 -07:00
Chris Smowton
024e8ef715
Merge pull request #368 from sauyon/xpath-fix
...
Update XPathExpressionString to match the Range pattern
2020-10-08 09:24:04 +01:00
Sauyon Lee
43de6ea836
Update XPathExpressionString to match the Range pattern
...
Fixes #367
2020-10-07 14:29:05 -07:00
Chris Smowton
c8a2d30e39
Merge pull request #360 from smowton/smowton/feature/stack-trace-exposure
...
Add stack-trace exposure query
2020-10-07 11:08:37 +01:00
Chris Smowton
d7dcf27f57
Merge pull request #362 from smowton/smowton/admin/refactor-function-node
...
Refactor DataFlow::FunctionNode as a concrete class
2020-10-06 15:08:54 +01:00
Chris Smowton
0eb7ac94cc
Add stack-trace exposure query
...
This is a port of `java/stack-trace-exposure`, and does the same job: warn that a stack dump is written to an HTTP response.
2020-10-06 14:42:59 +01:00
Chris Smowton
68bb7b02fe
Refactor DataFlow::FunctionNode as a concrete class
...
This makes it easier to refine FunctionNode without having to define abstract members.
2020-10-06 14:02:57 +01:00
Chris Smowton
5bdff0f9d3
Merge pull request #363 from smowton/smowton/fix/use-realpath-for-gopath
...
Autobuilder: Use fully resolved path for GOPATH
2020-10-05 10:53:17 +01:00
Chris Smowton
6b6c862274
Autobuilder: Use fully resolved path for GOPATH
...
Otherwise on systems where /tmp is a symlink (e.g. default OSX setup), GOPATH does not match the current working directory after os.Chdir'ing to that directory (os.Chdir resolves symlinks, unlike a shell's 'cd' command), which causes `dep` to fail complaining that it is being run from outside GOPATH.
2020-10-02 17:05:47 +01:00
Chris Smowton
e8710612d8
Merge pull request #361 from smowton/smowton/admin/fix-broken-qhelp-links
...
Fix OWASP broken links
2020-10-01 14:28:30 +01:00
Chris Smowton
4af5765275
Fix OWASP broken links
2020-10-01 13:06:03 +01:00
Chris Smowton
1be34c0c90
Merge pull request #359 from smowton/smowton/fix/suspicious-regex-qhelp
...
Improve variable names in example code
2020-09-30 11:03:10 +01:00
Max Schaefer
3490d35926
Merge pull request #358 from smowton/smowton/admin/qhelp-action
...
Add Action to build and upload qhelp
2020-09-29 17:31:07 +01:00
Chris Smowton
1cfad846c8
Improve variable names in example code
...
These were inherited from the JS version of the example, which concerns HTML.
2020-09-29 16:37:06 +01:00
Chris Smowton
6b28c0705a
Add Action to build and upload qhelp
2020-09-29 16:16:25 +01:00
Max Schaefer
3dde501b54
Merge pull request #356 from max-schaefer/api-cleanup
...
Add and move around a few convenience predicates
2020-09-29 08:32:53 +01:00
Max Schaefer
97fb967d5c
Add a few tests.
2020-09-28 10:58:28 +01:00
Max Schaefer
56f295f741
Add a few useful shortcuts.
2020-09-25 16:58:28 +01:00
Sauyon Lee
2ba9bbfd8b
Merge pull request #355 from sauyon/moddir-fix
...
Improve extractor logging and a minor readability fix
2020-09-25 05:44:35 -07:00
Sauyon Lee
7ea3b34e4b
extractor: Reorganize code to be in a slightly more sensible order
2020-09-25 04:23:35 -07:00
Sauyon Lee
e158b39287
Improve extractor logging
...
Co-authored-by: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-09-25 04:23:31 -07:00
Max Schaefer
8667b64a1c
Make result variables aware of their index.
2020-09-25 10:51:32 +01:00
Chris Smowton
88c740bbbc
Merge pull request #353 from gagliardetto/remove-duplicate-models
...
Remove duplicate models (the end)
2020-09-24 13:31:18 +01:00
Slavomir
4f7edb85da
Fix package count
2020-09-24 12:41:14 +02:00
Slavomir
1f5da54ac9
Update change-notes/2020-09-23-stdlib.md
...
Co-authored-by: Chris Smowton <smowton@github.com >
2020-09-24 12:40:39 +02:00
Arthur Baars
575c56c426
Merge pull request #354 from github/aibaars/lgtm-go-lines-of-comment
...
LGTM: add Metrics/FLinesOfComment.ql to go-lgtm-full.qls
2020-09-24 12:22:07 +02:00
Arthur Baars
240f3ed7dc
LGTM: add Metrics/FLinesOfComment.ql to go-lgtm-full.qls
2020-09-24 11:04:15 +02:00
Max Schaefer
907ae20a16
Merge pull request #350 from smowton/smowton/feature/bad-regex-escape-query
...
Add query spotting probably-bad escapes in regular expressions.
2020-09-24 09:49:16 +01:00
Slavomir
8e007623ca
Improve change note
2020-09-23 18:03:11 +02:00
Slavomir
ef20f75cbe
Add change note
2020-09-23 17:52:52 +02:00
Slavomir
8b397c1eff
Remove this. from the generated method and interface models
2020-09-23 17:28:44 +02:00
Slavomir
539127b1d1
Remove models for methods for which there already is a models for the interface they implement.
2020-09-23 17:16:01 +02:00
Chris Smowton
59138048bb
Add query spotting probably-bad escapes in regular expressions.
...
Inspired by js/useless-regexp-character-escape, but much much simpler because the Go source code parser forbids unrecognised escapes and its regex engine refuses to compile \\x where x is not a character class or other special token (e.g. start-of-word).
2020-09-23 15:07:22 +01:00
Chris Smowton
a094ddb988
Merge pull request #349 from gagliardetto/stdlib-339-340-342-346-347
...
Merge #339 #340 #342 #346 #347
2020-09-23 14:38:04 +01:00
Chris Smowton
1a3589ac06
Merge pull request #352 from smowton/smowton/feature/http-newrequest
...
Add model for net/http.NewRequest
2020-09-23 09:56:17 +01:00
Max Schaefer
6130720e00
Merge pull request #348 from max-schaefer/functioninput_entrynode
...
Ensure `FunctionInput`s corresponding to results have an entry node
2020-09-23 09:15:18 +01:00
Chris Smowton
c1fbbfb05a
Add model for net/http.NewRequest noting that if the URL is tainted then the response should be considered tainted also.
2020-09-23 08:46:36 +01:00
Slavomir
364b6810ce
Sort stdlib imports
2020-09-22 18:50:12 +02:00
Slavomir
a7148638aa
Merge branch 'standard-lib-pt-6' into stdlib-339-340-342-346-347
2020-09-22 18:44:14 +02:00
Slavomir
61a0cfa06a
Merge branch 'standard-lib-pt-4' into stdlib-339-340-342-346-347
2020-09-22 18:43:30 +02:00
Slavomir
315514085f
Merge branch 'standard-lib-pt-9' into stdlib-339-340-342-346-347
2020-09-22 18:43:14 +02:00
Slavomir
0510404112
Merge branch 'standard-lib-pt-12' into stdlib-339-340-342-346-347
2020-09-22 18:42:46 +02:00
Slavomir
1a5d582750
Remove Regexp
2020-09-22 13:37:39 +02:00
Slavomir
e742525be5
Fix (*Logger).Writer() model
2020-09-22 13:35:55 +02:00
Slavomir
bff19d5a37
Move and extend Log module for package log with taint-tracking
2020-09-22 13:35:55 +02:00
Slavomir
3a7406b14c
Remove redundant Read and Write method models
2020-09-22 13:33:37 +02:00
Slavomir
3abf0e8d29
Add taint-tracking for crypto/x509 package
2020-09-22 13:33:37 +02:00
Slavomir
3acb7a5311
Add taint-tracking for crypto/tls package
2020-09-22 13:33:37 +02:00
Slavomir
5e0e3cc2cc
Add taint-tracking for crypto/rsa package
2020-09-22 13:33:37 +02:00
Slavomir
742319c071
Move to stdlib and expand crypto/cypher package taint-tracking
2020-09-22 13:33:37 +02:00
Slavomir
434c4bca9c
Add taint-tracking for crypto package
2020-09-22 13:33:37 +02:00
Max Schaefer
c61881acb3
Merge pull request #344 from smowton/smowton/feature/echo-models
...
Add models for the Echo framework
2020-09-22 10:45:02 +01:00
Max Schaefer
2d4f17c91c
Ensure result inputs always have an entry node.
2020-09-22 09:08:17 +01:00
Max Schaefer
4b56581122
Fix input nodes for results that are not assigned to an SSA variable.
2020-09-22 09:06:16 +01:00
Max Schaefer
9c640fff4f
Add a new test for FunctionInputsAndOutputs.
2020-09-22 09:04:49 +01:00
Max Schaefer
c905149579
Merge pull request #341 from gagliardetto/standard-lib-pt-10
...
Move to stdlib and extend the models for `fmt` package
2020-09-21 22:10:56 +01:00
Chris Smowton
7b917f9dd7
Add utility functions for getting FunctionInputs and FunctionOutputs.
2020-09-21 17:35:40 +01:00
Chris Smowton
397282f41a
Add models for the Echo framework
2020-09-21 17:35:40 +01:00
Chris Smowton
bdb3e54299
Add tests for stdlib-http fields that aren't supposed to cause open-redirect alerts
2020-09-21 16:26:46 +01:00
Chris Smowton
b6b7bd2717
Generalise model of HTTP libraries
...
* Allow for HTTP response methods that define a content-type without a corresponding header write
* Factor out stdlib-http-specific classification of fields that aren't vulnerable to an open-redirect exploit
2020-09-21 16:26:39 +01:00
Slavomir
0005775e2b
Apply suggestions from code review
...
Co-authored-by: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-09-21 16:23:21 +02:00
Slavomir
dedeb7bbf1
Add taint-tracking for container/ring package
2020-09-21 12:34:00 +02:00
Slavomir
75e3ee6e77
Add taint-tracking for container/list package
2020-09-21 12:32:39 +02:00
Slavomir
4ecf9b0f6b
Add taint-tracking for container/heap package
2020-09-21 12:30:47 +02:00
Chris Smowton
6770c74b7f
Merge pull request #345 from gagliardetto/from-331-to-337
...
Merge #331 , #332 , #333 , #334 , #335 , #336 , #337
2020-09-21 09:34:41 +01:00
Slavomir
a7dba54001
Merge branch 'standard-lib-pt-15' into from-331-to-337
2020-09-20 18:25:29 +02:00
Slavomir
ad53583b5e
Remove methods on IP
2020-09-20 18:23:56 +02:00
Slavomir
17868dd6b1
Merge branch 'standard-lib-pt-16' into from-331-to-337
2020-09-20 15:47:35 +02:00
Slavomir
ed965c7101
Merge branch 'standard-lib-pt-19' into from-331-to-337
2020-09-20 15:47:14 +02:00
Slavomir
53e0e3ffbf
Merge branch 'standard-lib-pt-20' into from-331-to-337
2020-09-20 15:46:47 +02:00
Slavomir
9d1381349f
Merge branch 'standard-lib-pt-23' into from-331-to-337
2020-09-20 15:46:26 +02:00
Slavomir
1d13ca58ff
Merge branch 'standard-lib-pt-22' into from-331-to-337
2020-09-20 15:46:02 +02:00
Slavomir
cd151fcdd1
Merge branch 'standard-lib-pt-5' into from-331-to-337
2020-09-20 15:45:46 +02:00
Slavomir
5e7b279569
Remove model for a method that satisfies an interface that already has its own model.
2020-09-20 15:38:37 +02:00
Slavomir
3fd6f9c400
Extend QueryString::Range with database/sql/driver interfaces' methods
2020-09-20 15:38:37 +02:00
Slavomir
24e8a18d22
Add database/sql/driver taint-tracking
2020-09-20 15:38:37 +02:00
Slavomir
5e4d75561c
Add database/sql/driver taint-tracking
2020-09-20 15:38:37 +02:00
Slavomir
6f0bfbfa96
Add taint-tracking to database/sql package in the SQL module
2020-09-20 15:38:37 +02:00
Slavomir
55a8e24055
Taint-track package expvar
2020-09-20 15:38:37 +02:00
Slavomir
29382744fe
Taint-track package errors
2020-09-20 15:38:37 +02:00
Slavomir
4127cb5cc4
Remove rune/byte read/write from TaintStep/io.go
2020-09-20 15:35:02 +02:00
Slavomir
07fdd3d17a
Fix TaintStep.expected: fix io.Pipe logic, remove rune/byte read/write
2020-09-20 15:33:11 +02:00
Slavomir
c4a493f003
Remove models for methods where there are already interface models
2020-09-20 15:13:48 +02:00
Slavomir
dc159eeee1
Remove io.Writer model from io/ioutil
2020-09-20 15:13:48 +02:00
Slavomir
f1cdfff331
Import IoIoutil module
2020-09-20 15:13:48 +02:00
Slavomir
073fae9ff8
Move to stdlib and extend the module for io/ioutil package
2020-09-20 15:13:48 +02:00
Slavomir
45dfc2bcf2
Move to stdlib, extend and refactor the Io module
2020-09-20 15:13:48 +02:00
Slavomir
a784a25a61
Remove (net.IP).UnmarshalText
2020-09-20 15:01:42 +02:00
Slavomir
1578a66731
Remove models for net.Parse*
2020-09-20 15:01:42 +02:00
Slavomir
e14f857761
Add taint-tracking for package net/textproto
2020-09-20 15:01:42 +02:00
Slavomir
75751d732b
Add taint-tracking for package net/mail
2020-09-20 15:01:42 +02:00
Slavomir
e6cb8fe5ce
Add taint-tracking for package net/http/httputil
2020-09-20 15:01:42 +02:00
Slavomir
85f9760662
Move existing net/http classes from private module StdlibHttp to stdlib.NetHttp
2020-09-20 15:01:41 +02:00
Slavomir
e66fcef396
Add taint-tracking for net/http package
2020-09-20 15:01:41 +02:00
Slavomir
fa04d5a74d
Add taint-tracking for package net
2020-09-20 15:01:41 +02:00
Slavomir
c89cfc8867
Use go 1.14.3
2020-09-20 14:52:40 +02:00
Slavomir
8eeb019b5c
Move existing OS (all caps name) module classes to stdlib.Os module (notice the camelcase name)
2020-09-20 14:52:40 +02:00
Slavomir
f811dff527
Add taint-tracking for package os
2020-09-20 14:52:40 +02:00
Chris Smowton
fee596ac83
Merge pull request #343 from smowton/smowton/feature/chi-models
...
Add models for the Chi web framework
2020-09-16 11:38:08 +01:00
Chris Smowton
1bf366c1e3
Add models for the Chi web framework
...
This is mostly simple as the framework uses ordinary net/http methods and ordinary Go contexts for most purposes.
2020-09-16 09:14:23 +01:00
Slavomir
b529cf4c86
Import Fmt module
2020-09-15 19:19:30 +02:00
Max Schaefer
88e03c3ee5
Merge pull request #322 from gagliardetto/standard-lib-pt-11
...
Add taint-tracking for packages in `html/*`
2020-09-15 17:54:35 +01:00
Slavomir
375ac63499
Move to stdlib and extend the models for fmt package
2020-09-15 17:27:56 +02:00
Slavomir
a340270dc1
Move html TemplateEscape out of Texttemplate module
2020-09-14 15:47:52 +02:00
Slavomir
9a560e994c
Remove redundant field
2020-09-14 15:47:51 +02:00
Slavomir
ce67720542
Add taint-tracking for html/template package.
2020-09-14 15:47:51 +02:00
Slavomir
35136bbb2c
Add escape function.
2020-09-14 15:47:51 +02:00
Slavomir
52d4c71ec2
Add taint-tracking for html package.
2020-09-14 15:47:51 +02:00
Chris Smowton
8d7cbe3aa5
Merge pull request #323 from gagliardetto/standard-lib-pt-8
...
Add taint-tracking for packages in `encoding/*`
2020-09-14 14:41:19 +01:00
Chris Smowton
3ba85576ea
Merge pull request #338 from smowton/smowton/admin/update-dataflow-libs-2020-09-14
...
Port codeql#4238 (Dataflow: small fixes for naming in taint tracking)…
2020-09-14 14:19:06 +01:00
Slavomir
6bbe0182ca
Rename Syscall_non_windows.go to Syscall_non_win.go
2020-09-14 13:34:24 +02:00
Slavomir
4c2537017f
Fix TaintStep.expected: add params to json.MarshalIndent
2020-09-14 13:10:25 +02:00
Slavomir
64a61bd648
Remove redundant taint-tracking from MarshalingFunction and UnmarshalingFunction classes in EncodingXml module.
2020-09-14 13:10:25 +02:00
Slavomir
947bbabf62
Extend MarshalingFunction and UnmarshalingFunction with encoding/pem
2020-09-14 13:10:25 +02:00
Slavomir
d472d5abe5
Remove redundant taint-tracking from MarshalingFunction and UnmarshalingFunction classes in EncodingJson module.
2020-09-14 13:10:25 +02:00
Slavomir
ed2e5b0f92
Extend MarshalingFunction and UnmarshalingFunction with encoding/asn1
2020-09-14 13:10:25 +02:00
Slavomir
afede9bde5
Remove encoder taint-tracking for encoding/hex
2020-09-14 13:10:25 +02:00
Slavomir
96a700becb
Remove encoder taint-tracking for encoding/base64
2020-09-14 13:10:25 +02:00
Slavomir
0baca5fa6c
Remove encoder taint-tracking for encoding/base32
2020-09-14 13:10:25 +02:00
Slavomir
828d3863a0
Remove encoder taint-tracking for encoding/ascii85
2020-09-14 13:10:25 +02:00
Slavomir
f3a61ed65c
Add MarshalFunction and UnmarshalFunction classes to EncodingXml module.
2020-09-14 13:10:25 +02:00
Slavomir
b4ff653071
Add taint-tracking for encoding/xml
2020-09-14 13:10:25 +02:00
Slavomir
e7fc3c5039
Add taint-tracking for encoding/pem
2020-09-14 13:10:25 +02:00
Slavomir
669ed91b0b
Move EncodingJson to stdlib; add Escape class.
2020-09-14 13:10:25 +02:00
Slavomir
24c23ba333
Add taint-tracking for encoding/json
2020-09-14 13:10:25 +02:00
Slavomir
f5fc9494fc
Remove old EncodingHex module
2020-09-14 13:10:25 +02:00
Slavomir
74fdfba85c
Add taint-tracking for encoding/hex
2020-09-14 13:10:25 +02:00
Slavomir
7a42992850
Add taint-tracking for encoding/gob
2020-09-14 13:10:25 +02:00
Slavomir
57518c7e3d
Add taint-tracking for encoding/csv
2020-09-14 13:10:25 +02:00
Slavomir
df55bb459f
Add taint-tracking for encoding/binary
2020-09-14 13:10:25 +02:00
Slavomir
20b4826e8e
Add taint-tracking for encoding/base64
2020-09-14 13:10:25 +02:00
Slavomir
7060367de5
Add taint-tracking for encoding/base32
2020-09-14 13:10:24 +02:00
Slavomir
ba78eda277
Add taint-tracking for encoding/asn1
2020-09-14 13:10:24 +02:00
Slavomir
412ba1263b
Add taint-tracking for encoding/ascii85
2020-09-14 13:10:24 +02:00
Slavomir
a47842d1c3
Add taint-tracking for package encoding
2020-09-14 13:10:24 +02:00
Slavomir
27ba893ba2
Add taint-tracking for context package
2020-09-14 13:09:45 +02:00
Slavomir
eb3a18f172
Add taint-tracking for package sort
2020-09-14 13:08:54 +02:00
Slavomir
71dbb244f9
Move existing Regexp module to stdlib
2020-09-14 13:08:16 +02:00
Slavomir
7f3a911f86
Add taint-tracking for package regexp
2020-09-14 13:08:16 +02:00
Slavomir
c2fc26a96a
Remove Range method on sync.Map
2020-09-14 13:04:52 +02:00
Slavomir
d51518f411
Add taint-tracking for sync/atomic package
2020-09-14 13:04:52 +02:00
Slavomir
e47715b2a9
Add taint-tracking for sync package
2020-09-14 13:04:52 +02:00
Chris Smowton
86ed037fd3
Port codeql#4238 (Dataflow: small fixes for naming in taint tracking) to Go's local copy of the dataflow libs
2020-09-14 12:01:30 +01:00
Slavomir
d929e8313a
Build syscall.StringSlicePtr only on non-windows OS
2020-09-14 12:49:41 +02:00
Slavomir
702a984dc0
Comment out test for syscall.StringSlicePtr because it's not present on windows.
2020-09-14 12:49:41 +02:00
Slavomir
72ef65f257
Add taint-tracking for syscall
2020-09-14 12:49:41 +02:00
Chris Smowton
362d210bc5
Merge pull request #330 from smowton/smowton/admin/standard-lib-pt-21-with-sanitiser
...
Move `strconv` and `strings` packages' taint-tracking to stdlib, and expand them + sanitise substrings of the HTTP Authorization header
2020-09-14 11:25:57 +01:00
Chris Smowton
b9b306aade
CleartextLogging: sanitize strings.Split(authheader, ":")[0] and similar
...
These can represent a username, method name or other non-sensitive component of an Authorization header. For greater precision we could split the query into one investigating Authorization headers and one investigating other sources of sensitive data that can't be sanitized by splitting this way.
2020-09-14 09:46:14 +01:00
Slavomir
cf29f9dede
Remove taint-tracking on single bytes and runes
2020-09-14 09:46:14 +01:00
Slavomir
6d3e6ded26
Fix: the Append* functions do not modify the dst slice argument.
2020-09-14 09:46:14 +01:00
Slavomir
9293bcde1d
Fix ql/test/library-tests/semmle/go/frameworks/TaintSteps/TaintStep.expected: calls to strings.NewReader are a step now.
2020-09-14 09:46:14 +01:00
Slavomir
3075294cd8
Move strings module to stdlib, and add more taint-tracking classes to it.
2020-09-14 09:46:13 +01:00
Slavomir
42c7f8cc0d
Add taint-tracking for strconv package; rename module StrConv to Strconv and move into stdlib
2020-09-14 09:44:25 +01:00
Max Schaefer
b8d36b936e
Merge pull request #321 from gagliardetto/standard-lib-pt-14
...
Add taint-tracking for packages inside `mime/*`
2020-09-14 09:26:29 +01:00
Max Schaefer
c10942d044
Merge pull request #320 from gagliardetto/standard-lib-pt-24
...
Add taint-tracking for packages inside `text/*`
2020-09-11 15:57:14 +01:00
Max Schaefer
c889bc3dae
Merge branch 'main' into standard-lib-pt-24
2020-09-11 14:09:50 +01:00
Chris Smowton
84def5f6c2
Merge pull request #327 from smowton/smowton/feature/more-post-update-nodes
...
Add PostUpdateNodes for nested structs and arrays
2020-09-11 12:47:20 +01:00
Max Schaefer
903cffe7ed
Merge pull request #317 from gagliardetto/standard-lib-pt-18
...
Add taint-tracking for `reflect` package
2020-09-11 11:26:48 +01:00
Chris Smowton
650bc1d38f
Add PostUpdateNodes for derferenced expressions on an access path to a field- or element-write
2020-09-11 10:46:58 +01:00
Max Schaefer
e9bf3317b5
Merge pull request #328 from owen-mc/gorm-exec
...
Update GORM model
2020-09-11 08:41:09 +01:00
Max Schaefer
3758c6b7d8
Merge pull request #329 from smowton/smowton/feature/xss-detect-more-json-encoding
...
Reflected XSS query: exclude more uses of encoding/json.Marshal
2020-09-11 08:38:30 +01:00
Owen Mansel-Chan
13e82de53d
Add change note
2020-09-10 17:29:06 +01:00
Chris Smowton
405babf5af
Reflected XSS query: exclude more uses of encoding/json.Marshal
...
Previously we only detected these if the marshalling directly fed the request body within the same function; now it's a general sanitiser for the purposes of XSS.
2020-09-10 16:52:06 +01:00
Owen Mansel-Chan
3af90c9fc8
Update GORM tests
2020-09-10 13:48:12 +01:00
Owen Mansel-Chan
d807e8de75
Add more methods from GORM as sinks
...
Cf. https://gorm.io/docs/security.html
2020-09-09 16:18:41 +01:00
Owen Mansel-Chan
95c1f754c6
Add alternative package locations
2020-09-09 14:52:26 +01:00
Max Schaefer
baf048f293
Merge pull request #326 from owen-mc/change-note-for-allocation-size-overflow-sanitizers
...
Add change note for #296
2020-09-08 16:53:05 +01:00
Owen Mansel-Chan
cd6020810a
Add change note for #296
2020-09-08 16:32:12 +01:00
Chris Smowton
5068b8b195
Add PostUpdateNodes for nested structs and arrays
...
This creates a PostUpdateNode for x in the contexts `x.field[element]`, `x.field.otherfield`, `x[element].field` and so on.
Most uses of PostUpdateNode implicitly assume its old definition, but our protobuf model benefits.
2020-09-08 16:28:02 +01:00
Max Schaefer
65c449cff0
Merge pull request #325 from max-schaefer/revert-237
...
Revert "Revert "autobuilder: Add support for GITHUB_REPOSITORY environment variable""
2020-09-08 08:04:58 +01:00
Max Schaefer
52a659183d
Merge pull request #314 from smowton/smowton/admin/bump-golang-tools
...
Bump to latest version of golang.org/x/tools
2020-09-07 16:02:55 +01:00
Max Schaefer
655e229d1e
Revert "Revert "autobuilder: Add support for GITHUB_REPOSITORY environment variable""
...
This reverts commit ccfccb4828 .
2020-09-07 15:14:52 +01:00
Max Schaefer
1821cca5d2
Merge pull request #285 from smowton/protobufs
...
Protobuf modelling
2020-09-07 11:42:37 +01:00
Slavomir
25e3f75ddc
Add taint-tracking for mime/quotedprintable package.
2020-09-06 17:45:09 +02:00
Slavomir
99b251d4f0
Add taint-tracking for mime/multipart
2020-09-06 17:42:57 +02:00
Slavomir
c44d426794
Add taint-tracking for mime package.
2020-09-06 17:39:41 +02:00
Slavomir
3b2e16e292
Move text/template classes to TextTemplate module inside stdlib.
2020-09-06 17:32:34 +02:00
Slavomir
0d5c7e3132
Add taint-tracking for text/template template.
2020-09-06 17:32:34 +02:00
Slavomir
db0b09beb4
Add taint-tracking for text/tabwriter package.
2020-09-06 17:32:34 +02:00
Slavomir
4df363d2ce
Add taint-tracking for text/scanner package.
2020-09-06 17:32:34 +02:00
Chris Smowton
cfba0896f0
Improve code style
...
No behavioural changes
2020-09-04 17:05:32 +01:00
Chris Smowton
fb85ccb2a5
Look through implicit deref operations when propagating taint down a chain of field- and element-access instructions.
...
This enables us to use PostUpdateNode properly. Also introduce a test showing a case where this doesn't work, because the underlying variable doesn't have a post-update node.
2020-09-04 17:03:52 +01:00
Chris Smowton
3635d7d007
Introduce and use writeComponent
2020-09-04 17:03:52 +01:00
Chris Smowton
2a863fbbe7
Abbreviate protobuf package names
2020-09-04 17:03:52 +01:00
Chris Smowton
18ed6bd1ee
Add missing qldoc
2020-09-04 17:03:52 +01:00
Chris Smowton
90915284ba
Move getUnderlyingNode into Protobuf.qll
...
This is its only user for now.
2020-09-04 17:03:52 +01:00
Chris Smowton
59f9c6073d
Introduce instruction type for component access
...
This is the union of a field-access and an element-access instruction
2020-09-04 17:03:52 +01:00
Chris Smowton
455cf0c502
Add support and tests for protobuf messages with map fields
2020-09-04 17:03:52 +01:00
Chris Smowton
b2d4e2692f
Taint underlying aggregates of protobuf messages when an element is written
...
For example, writing to a[b].c[d] taints 'a'.
2020-09-04 17:03:52 +01:00
Chris Smowton
3d82308e07
Introduce common base class for ElementReadNode and FieldReadNode
2020-09-04 17:03:52 +01:00
Chris Smowton
56f6e67671
Protobufs: improve comment and code style
...
No functional changes
2020-09-04 15:14:49 +01:00
Chris Smowton
65dc6272d1
Remove prototype tests
...
I don't think we need these when we have the end-to-end taintFlows test.
2020-09-04 15:14:49 +01:00
Chris Smowton
b639b6ec6a
Remove redundant copies of the generated protoc output
2020-09-04 15:14:49 +01:00
Chris Smowton
8058d096d2
Model and test UnmarshalOptions.Unmarshal
...
Support for UnmarshalOptions.UnmarshalState is dropped for now as too hard to model.
2020-09-04 15:14:49 +01:00
Chris Smowton
c2ff2df403
Add test showing false-negative for MarshalState
2020-09-04 15:14:49 +01:00
Chris Smowton
42d6250b8d
Add modern-API variants of tests
2020-09-04 15:14:49 +01:00
Chris Smowton
8682eb9dec
Add tests showing imprecision of our current implementation
2020-09-04 15:14:49 +01:00
Chris Smowton
a832342ecb
Add test for unmarshalling submessages
2020-09-04 15:14:49 +01:00
Chris Smowton
596204f79d
Add (currently-failing) expectations for submessage tainting
2020-09-04 15:14:49 +01:00
Chris Smowton
c9296abe25
Restrict tainting from field-writes to Message types
2020-09-04 15:14:49 +01:00
Chris Smowton
95798590ce
Implement MarshalState method
...
Currently relies on blanket field-write propagation.
2020-09-04 15:14:49 +01:00
Chris Smowton
c34fc3c9ad
Add tests for MarshalAppend and MarshalState
...
The MarshalState test doesn't work yet, because we don't know to read taint from the Message field of the input or write it to the Buf field of the output
2020-09-04 15:14:49 +01:00
Chris Smowton
2ca6157836
Protobuf: support both legacy and modern APIs
2020-09-04 15:14:49 +01:00
Chris Smowton
df0238a352
Fix proto.Clone method
...
This is top-level, not a member.
2020-09-04 15:14:49 +01:00
Chris Smowton
e76c07d77b
Temporarily taint all structs from field writes
...
This should be either refined to just Message types, or else a macro taint step should be added conducting taint from field-write-of-argument to Marshal's result.
On the read-side we're currently fine: the bytes are tainted, so the object is tainted, so the field reads are tainted.
2020-09-04 15:14:49 +01:00
Chris Smowton
19e1dacced
WIP: add more (manual) protobuf models, and a test that checks various taint-flow cases
...
Only some of the cases are currently working.
2020-09-04 15:14:49 +01:00
Sauyon Lee
4ff325aa13
--wip-- [skip ci]
2020-09-04 15:14:49 +01:00
Slavomir
095baeb8b6
Remove taint-tracking of booleans and numbers (but keep uintptr)
2020-09-04 12:06:34 +02:00
Max Schaefer
25e4245568
Merge pull request #291 from smowton/smowton/admin/oauth2-query-polish
...
Promote OAuth2-misuse query to mainline
2020-09-04 10:50:31 +01:00
Chris Smowton
47958e6de8
Go.mod comments: trim newlines
...
These weren't previously reported as part of the comment text, but are as of the latest version of golang.org/x/tools
2020-09-03 15:54:56 +01:00
Slavomir
5e62b002ff
Fix: Append* does not modify the dst slice argument.
2020-09-03 15:43:16 +02:00
Slavomir
e7f2fb27eb
Add taint-tracking for reflect package
2020-09-03 15:43:16 +02:00
Chris Smowton
380410e687
Go autoformat: exclude vendor/ directory
2020-09-03 14:37:26 +01:00
Chris Smowton
e386346a25
Extractor: tolerate ast.File structures without a package declaration
...
In earlier versions of golang/x/tools these would be omitted entirely; now they can result in ast.File structures whose ast.Package field is zero (NoPos), and in my experience these contain no information in their other fields either.
2020-09-03 14:32:23 +01:00
Max Schaefer
c7b4db8d16
Merge pull request #319 from aeisenberg/patch-1
...
Update devcontainer memory settings
2020-09-03 14:31:11 +01:00
Andrew Eisenberg
2e8e970978
Update devcontainer memory settings
...
CodeQL CLI needs a minimum of 2G of memory. By default, the memory used is slightly less than that, leading to poor performance.
This change also removes two old, unused settings.
2020-09-02 12:07:05 -07:00
Chris Smowton
b487799f69
Oauth2 state query: avoid duplicate paths by excluding variable references as sources
2020-09-02 17:40:53 +01:00
Chris Smowton
6fea8abd82
Oauth2 state query: improve code style
...
No behavioural changes intended.
2020-09-02 15:06:23 +01:00
Chris Smowton
2f175e365e
Oauth2 state query: remove unnecessary isSource overload
2020-09-02 15:05:22 +01:00
Chris Smowton
8f99972833
OAuth2 CSRF query: improve documentation
2020-09-02 15:05:22 +01:00
Chris Smowton
0ba42f7f87
OAuth2 state query: set precision
2020-09-02 15:05:22 +01:00
Chris Smowton
406ea741f4
Improve comment style
2020-09-02 15:05:22 +01:00
Chris Smowton
faf43efb60
Promote OAuth2 constant-state query to mainline
2020-09-02 15:05:22 +01:00
Chris Smowton
0ee7bbbaa7
Extend oauth2 tests
2020-09-02 15:05:21 +01:00
Chris Smowton
f61c62d2d8
Generalise isReturnedWithError
...
It now recognises any function returning an Error alongside other return values
2020-09-02 15:05:21 +01:00
Chris Smowton
9e4ee0accf
OAuth2 constant state query: trace local URLs across reference operations and Sprintf calls
2020-09-02 15:05:21 +01:00
Chris Smowton
050a823397
OAuth2 exclusion: hide cases that clearly target an out-of-band process or private HTTP server
2020-09-02 15:05:21 +01:00
Chris Smowton
bcb65157e6
Oauth2-state query: treat log calls the same as stdout printers
...
These presumably get to the user somehow, and in conjunction with stdin use are enough to identify use of oauth at the terminal.
2020-09-02 15:05:21 +01:00
Chris Smowton
3d877fc67d
Oauth2 state: note bufio.NewScanner is also a sign of probable terminal-interactive use
2020-09-02 15:05:21 +01:00
Chris Smowton
6fee4f382f
Constant-oauth2-state: exclude strings returned alongside an error value
...
For example, getState() { ... return "", someError } is commonly seen in the wild.
2020-09-02 15:05:21 +01:00
Chris Smowton
aac303c0a2
Merge pull request #287 from smowton/smowton/feature/restore-repo-after-build
...
Restore repo layout post-autobuild
2020-09-02 13:38:36 +01:00
Chris Smowton
246e8b1b27
Make failure to restore a file to its original location non-fatal
2020-09-02 11:44:43 +01:00
Chris Smowton
8de188a6ca
Restore repo layout post-autobuild
2020-09-02 11:44:43 +01:00
Max Schaefer
be64f3ed22
Merge pull request #316 from gagliardetto/standard-lib-pt-17
...
Move `path` and `path/filepath` packages to stdlib
2020-09-02 08:26:11 +01:00
Slavomir
386005d361
Add path and path/filepath packages to stdlib
2020-09-01 13:09:41 +02:00
Sauyon Lee
976151c08f
Merge pull request #315 from max-schaefer/fix-frontend-errors
...
Fix frontend errors in test.
2020-08-28 12:40:11 -07:00
Max Schaefer
2fe8fb9d83
Fix frontend errors in test.
2020-08-28 12:01:33 +01:00
Max Schaefer
031a48ecd3
Merge pull request #296 from owen-mc/allocation-size-overflow-improve-sanitizers-easy
...
Add new sanitizer guard to Allocation size overflow query
2020-08-28 07:44:45 +01:00
Max Schaefer
b4550f244b
Merge pull request #313 from github/rc/1.25
...
Merge rc/1.25 into main
2020-08-27 14:27:26 +01:00
Sauyon Lee
1743dae7b0
Merge pull request #312 from smowton/smowton/autobuilder-fixes-fixed-further
...
Autobuilder: always check the vendor directory works and if go.mod exists
2020-08-27 04:16:04 -07:00
Chris Smowton
af1be2f465
Bump to latest version of golang.org/x/tools
2020-08-27 11:57:21 +01:00
Chris Smowton
4d084372b5
Fix autobuilder Go version comparison
...
The semver package requires versions of the form v1.2.3, and unhelpfully evaluates any malformed versions as equal.
2020-08-27 11:02:23 +01:00
Chris Smowton
c6dbb9fcb2
Tidy up -mod argument stringification
2020-08-27 10:46:36 +01:00
Chris Smowton
b13b54f7d7
Don't try to use -mod=... when go.mod doesn't exist
...
Also don't pass a blank argument to `go` when using an old version.
2020-08-26 13:56:36 +01:00
Chris Smowton
9ad2d6c119
Factor default and custom install paths
...
These now follow the same route:
* Run a default or custom build script
* If needed, check if vendor/ is usable
* If it isn't, or if their build failed, install dependencies using go get etc
This commit shouldn't cause any behavioural change.
2020-08-26 12:02:54 +01:00
Chris Smowton
859b427881
Check if the vendor/ directory is usable, even after a successful build
2020-08-26 11:53:50 +01:00
Sauyon Lee
8f6b25e0ac
autobuilder: Use -mod=mod for vendor directories wihtout modules.txt
2020-08-26 11:25:30 +01:00
Sauyon Lee
70d425d317
autobuilder: move vendor check before dependency installation check
...
This means dependency installation is still attempted when a vendor
directory is inconsistent.
2020-08-26 11:25:30 +01:00
Sauyon Lee
852ae9397b
autobuilder: Test for vendor inconsistency
2020-08-26 11:25:30 +01:00
Sauyon Lee
28c69743a4
Add workaround for go 1.14 explicit vendoring requirement
...
This only applies for module files for which no Go version has
been specified; Go will assume these should be parsed with the
latest Go version, which will cause them to fail if the vendor
directory has been generated with an old version of Go, as
the vendor/modules.txt will not meet the new requirements for
consistency.
2020-08-26 11:25:30 +01:00
Max Schaefer
34d5e970ff
Merge pull request #311 from owen-mc/add-missing-change-notes
...
Add missing change notes
2020-08-26 11:21:00 +01:00
Owen Mansel-Chan
7fd5e7e978
Add change note for https://github.com/github/codeql-go/pull/277
2020-08-26 10:54:18 +01:00
Owen Mansel-Chan
ad6c94e8f9
Add change note for https://github.com/github/codeql-go/pull/251
2020-08-26 07:58:19 +01:00
Owen Mansel-Chan
210208b003
Add change note for https://github.com/github/codeql-go/pull/226
2020-08-26 07:46:56 +01:00
Owen Mansel-Chan
d4a377b7cc
Add change note for https://github.com/github/codeql-go/pull/107
...
The model for websocket was included in another change note
2020-08-26 07:21:05 +01:00
Owen Mansel-Chan
944b69066e
Add change note for github/codeql-go#125
2020-08-26 07:20:24 +01:00
Max Schaefer
3376e45508
Merge pull request #309 from owen-mc/restore-gin-change-note
...
Add change note for Gin framework
2020-08-25 10:42:57 +01:00
Owen Mansel-Chan
dc99a62dca
Add change note for Gin framework
...
This was originally put in too early because the Gin framework was
accidentally not added to the default includes.
This reverts commit 41e98d6afc .
2020-08-25 10:29:42 +01:00
Sauyon Lee
0de8ac3b87
Merge pull request #305 from max-schaefer/consistency-queries
...
Enable consistency queries in tests
2020-08-25 01:01:11 -07:00
Max Schaefer
76f3bd63ac
Merge pull request #306 from max-schaefer/fix-stringops-magic
...
Prevent misoptimisation in `StringOps`.
2020-08-25 08:45:54 +01:00
Max Schaefer
b72c4f958c
Fix tests for ExprHasNoEffect on non-Linux systems.
2020-08-25 08:05:19 +01:00
Max Schaefer
4c82ad6064
Apply suggestions from code review
...
Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com >
2020-08-25 07:37:11 +01:00
Max Schaefer
bdcb1f233c
Prevent misoptimisation in StringOps.
2020-08-24 20:11:23 +01:00
Max Schaefer
ab19d40f4b
Merge pull request #304 from max-schaefer/fix-frontend-errors
...
Fix frontend errors in tests
2020-08-24 18:44:32 +01:00
Max Schaefer
57180c24c7
Simplify consistency query.
...
Unlike the old ODASA consistency queries, new consistency queries can have expected results, so there is no need to have special handling of files with expected errors.
2020-08-24 17:39:28 +01:00
Max Schaefer
d7cfcf46a5
Run tests with consistency queries.
2020-08-24 17:39:28 +01:00
Max Schaefer
181438b827
Bump CodeQL version for CI to 2.2.5.
2020-08-24 17:39:28 +01:00
Max Schaefer
42c1116ac7
Merge pull request #303 from github/rc/1.25
...
Merge rc/1.25 into main
2020-08-24 17:22:56 +01:00
Max Schaefer
c06531d9c0
Fix tests for InsecureHostKeyCallback.
2020-08-24 17:18:28 +01:00
Max Schaefer
4d4129313a
Fix tests for Gorestful.
2020-08-24 17:18:06 +01:00
Max Schaefer
aad9ce0c97
Fix tests for OpenUrlRedirect.
2020-08-24 17:06:26 +01:00
Max Schaefer
4e202666dc
Fix tests for InsecureHostKeyCallback.
2020-08-24 17:06:01 +01:00
Max Schaefer
368227fff5
Fix tests for NegativeLengthCheck.
2020-08-24 17:04:55 +01:00
Max Schaefer
149ceda636
Fix tests for Gorestful.
2020-08-24 17:04:31 +01:00
Max Schaefer
a0a8a584a4
Fix error in ellipsis.go.
2020-08-24 17:01:16 +01:00
Sauyon Lee
402b239520
Merge pull request #300 from srt32/patch-1
...
Update bad / good message for CWE 079
2020-08-24 08:57:26 -07:00
Owen Mansel-Chan
a669fa4aa1
Do not flow taint through remainder expressions
...
If the tainted operand is the first operand then it is being bounded above
by the remainder expression. If it is the second operand then
2020-08-24 16:18:08 +01:00
Owen Mansel-Chan
aed3ef4cde
Improve performance of new barrier guard
...
Some projects on lgtm were taking >1 hour, and with this commit they take
<10 minutes
2020-08-24 16:18:08 +01:00
Simon Taranto
bd9100eb4e
Update other file too
2020-08-24 09:00:26 -06:00
Max Schaefer
5dc822886b
Merge pull request #302 from max-schaefer/fix-qhelp
...
Fix qhelp for incorrect integer-conversion query.
2020-08-24 11:20:32 +01:00
Max Schaefer
111d2a745b
Fix qhelp for incorrect integer-conversion query.
...
It seems qhelp doesn't like `<code>` inside `<a>`.
2020-08-24 09:55:43 +01:00
Simon Taranto
7adf477e2d
Update bad / good message for CWE 079
...
Previously, the "good" example still had the "BAD: " comment in it which was confusing.
This change updates the good example to have a "GOOD: " comment instead.
2020-08-21 15:31:47 -06:00
Owen Mansel-Chan
caf77e2a44
Merge pull request #298 from smowton/smowton/admin/changenote-blank-lines
...
Remove blank lines from changenote
2020-08-20 16:05:29 +01:00
Chris Smowton
b983778cd1
Merge pull request #297 from ginsbach/noinferred
...
remove reliance on InferredBinding
2020-08-20 11:52:14 +01:00
Chris Smowton
cc2a153c57
Remove blank lines from changenote
2020-08-20 11:45:29 +01:00
Owen Mansel-Chan
dbf1d24e19
Add new barrier guard for second half of path
2020-08-20 11:37:07 +01:00
Chris Smowton
ce93a449fa
Merge pull request #295 from owen-mc/remove-gin-change-note
...
Remove gin change note
2020-08-20 10:39:13 +01:00
Owen Mansel-Chan
41e98d6afc
Remove change note so it isn't accidentally put into this release
2020-08-20 10:27:51 +01:00
Owen Mansel-Chan
53cc3621ad
Change date on Gin change note
...
The Gin model wasn't added to the default imports
till 2020-08-19
2020-08-20 10:27:41 +01:00
Philip Ginsbach
1149d43488
remove reliance on InferredBinding from InsecureFeatureFlag::getAFlagName
2020-08-20 10:26:46 +01:00
Chris Smowton
89e420d49f
Merge pull request #294 from smowton/smowton/admin/reenable-checkout-v2
...
Revert "Downgrade to checkout@v1 to work around https://github.com/actions/checkout/issues/237 "
2020-08-20 07:48:12 +01:00
Chris Smowton
9b9b0b217e
Revert "Downgrade to checkout@v1 to work around https://github.com/actions/checkout/issues/237 "
...
This reverts commit 8aaa7c8925 .
The bug it was working around (if it ever did) has been fixed.
2020-08-19 17:53:25 +01:00
Owen Mansel-Chan
0260438ff3
Merge pull request #293 from owen-mc/import-gin-framework-by-default
...
Import Gin framework by default
2020-08-19 17:24:29 +01:00
Chris Smowton
33d35112e1
Merge pull request #292 from smowton/smowton/admin/document-public-predicates
...
Document undocumented public symbols
2020-08-19 15:52:06 +01:00
Owen Mansel-Chan
35e336fe96
Add tests for sanitizers and sanitizer guards
2020-08-19 15:36:48 +01:00
Owen Mansel-Chan
17b3d56195
Remove unnecessary string concat
2020-08-19 15:36:48 +01:00
Owen Mansel-Chan
103e655395
Import Gin framework by default
2020-08-19 15:26:12 +01:00
Chris Smowton
60d3de1911
Document undocumented public symbols
2020-08-19 14:29:12 +01:00
Chris Smowton
1e7bbcc23a
Merge pull request #290 from sauyon/openredirect-uri
...
Open URL Redirect: make isValidURI and the like sanitizers
2020-08-18 10:07:43 +01:00
Sauyon Lee
5b9fb2a28b
openurlredirect: make isValidURI and the like sanitizers
2020-08-17 10:45:46 -07:00
Chris Smowton
c07db2a373
Merge pull request #289 from smowton/gorand
...
(admin) Slightly cleaned up version of Insufficient Randomness
2020-08-17 12:00:26 +01:00
dilanbhalla
986f3c3084
Add experimental query detecting use of an insecure PRNG in a cryptographic context
2020-08-17 10:52:36 +01:00
Max Schaefer
d675daa1d1
Merge pull request #284 from dilanbhalla/gocrypto
...
Adding Crypto Query/Library
2020-08-14 12:00:18 +01:00
dilanbhalla
a58070f920
fixed build test error
2020-08-14 01:56:30 -07:00
dilanbhalla
7f980a4901
pr fixes
2020-08-14 00:45:08 -07:00
Max Schaefer
fe6cf8c625
Merge pull request #275 from owen-mc/incorrect-integer-conversion
...
Incorrect integer conversion
2020-08-13 20:19:47 +01:00
Owen Mansel-Chan
951d59752a
Address review comments 7
2020-08-13 18:22:58 +01:00
dilanbhalla
40d3f22193
fixing commit error
2020-08-12 10:49:11 -07:00
Owen Mansel-Chan
2e60d40ccd
Address review comments 6
2020-08-12 17:07:29 +01:00
Owen Mansel-Chan
69212b9ad9
Deal with build constraints
...
Note that build constraints can be explicit (comments at the top of the
file) or implicit (part of the file name)
2020-08-12 17:07:29 +01:00
dilanbhalla
37eca95d44
restructured library
2020-08-11 23:53:50 -07:00
dilanbhalla
79002b0c38
pr fixes
2020-08-11 10:34:45 -07:00
Owen Mansel-Chan
08d9af1bd7
Merge pull request #280 from owen-mc/negative-length-check-unsigned
...
Extend negativeLengthCheck query to unsigned integers
2020-08-11 11:59:24 +01:00
Owen Mansel-Chan
1e0b9cc6a3
Address review comments 5
2020-08-11 10:57:02 +01:00
Owen Mansel-Chan
97bbdca8a3
Extend negativeLengthCheck query to unsigned integers
...
Like return values from len and cap, unsigned integers are never negative
2020-08-11 10:48:03 +01:00
dilanbhalla
2ee654d643
attempting to fix autoformat build error
2020-08-11 01:07:53 -07:00
Max Schaefer
117fd686c4
Merge pull request #276 from gagliardetto/standard-lib-pt-3
...
Add taint tracking for the compress/* packages
2020-08-11 07:56:45 +01:00
Max Schaefer
cb5c596ab6
Merge pull request #283 from github/rc/1.25
...
Merge rc/1.25 into main
2020-08-11 07:51:17 +01:00
Owen Mansel-Chan
c7a8730c40
Improve tests of paths with more than one sink
2020-08-11 07:24:58 +01:00
Owen Mansel-Chan
4907f6529e
Address review comments 4
2020-08-11 07:24:58 +01:00
dilanbhalla
4433f193f9
pr fixes for typo and qldoc
2020-08-10 16:06:02 -07:00
dilanbhalla
7ce9e976c2
removing precision tag
2020-08-10 12:06:10 -07:00
dilanbhalla
95342cdea7
adding go crypto library
2020-08-10 11:56:41 -07:00
Owen Mansel-Chan
ed469a355e
Fix mistake in test
2020-08-10 17:32:49 +01:00
Max Schaefer
097775bf64
Merge pull request #282 from sauyon/tomain
...
Fix one use of master in README
2020-08-10 17:03:22 +01:00
Max Schaefer
61f4d8ddfc
Merge pull request #278 from max-schaefer/fix-upgrade-performance
...
Improve performance of upgrade script
2020-08-10 17:01:49 +01:00
Max Schaefer
d31b4d262f
Merge pull request #281 from max-schaefer/has_ellipsis
...
Teach extractor to distinguish calls with an ellipsis from calls without
2020-08-10 16:51:38 +01:00
Owen Mansel-Chan
30f176246a
Address review comments 3
2020-08-10 15:21:20 +01:00
Max Schaefer
6d35c60acb
Add pragma to prevent accidental inlining.
2020-08-10 14:51:28 +01:00
Max Schaefer
2ef421255a
Add a clarifying comment.
2020-08-10 14:49:19 +01:00
Max Schaefer
9385857c39
Add a regression test.
2020-08-10 14:48:13 +01:00
Owen Mansel-Chan
89eae10d96
Address review comments 2
2020-08-10 11:07:44 +01:00
Owen Mansel-Chan
4bfb2b4138
Address review comments 1
2020-08-10 11:04:25 +01:00
Owen Mansel-Chan
681ca9065a
Add change note
2020-08-10 11:04:25 +01:00
Owen Mansel-Chan
06d1eb9bdb
Add tests for incorrect integer conversion
2020-08-10 11:04:25 +01:00
Owen Mansel-Chan
329888e62c
Add query for incorrect integer conversion
2020-08-10 11:04:25 +01:00
Owen Mansel-Chan
34fa07267b
Add modeling to Stdlib.qll
...
Adds classes for some integer-parsing functions and a constant from
strconv, plus a class for calls to integer-parsing functions.
2020-08-10 11:04:25 +01:00
Owen Mansel-Chan
ac49aa2527
Delete experimental query and tests for it
2020-08-10 11:04:25 +01:00
Owen Mansel-Chan
3a6aa58e48
Fix typo in QLDoc
2020-08-10 11:04:25 +01:00
Max Schaefer
c2a26f8ec9
Don't allow varargs as function outputs.
...
In a call of the form `f(xs...)`, when we say that `f` taints its 0th argument its ambiguous whether that means that it taints the slice `xs` or its 0th element `xs[0]`.
In practice, it's usually the latter, but we have no way of expressing that using our current `FunctionOutput` implementation.
2020-08-10 07:30:23 +01:00
Max Schaefer
bdfd1d131f
Teach extractor to record the presence of an ellipsis in a call expression.
2020-08-10 07:30:23 +01:00
Sauyon Lee
0b97e486a2
Fix one use of master in README
2020-08-07 08:49:57 -07:00
Max Schaefer
97291e4c41
Merge pull request #279 from github/rc/1.25
...
Merge rc/1.25 into master
2020-08-06 11:18:11 +01:00
Max Schaefer
75795d80c4
Improve performance of upgrade script.
2020-08-06 09:51:36 +01:00
Max Schaefer
90bab34e88
Merge pull request #277 from sauyon/file-url-fix
...
autobuilder: Don't try to determine import paths for file URLs
2020-08-06 09:46:10 +01:00
Sauyon Lee
8e6c1835dd
autobuilder: Don't try to determine import paths for file URLs
...
Also improve logging
2020-08-05 23:21:34 -07:00
Slavomir
b0259632e1
Remove Read method
2020-08-05 18:37:35 +02:00
Slavomir
6fda46b565
Add compress/zlib taint tracking
2020-08-05 18:35:47 +02:00
Slavomir
441d29b2b7
Add compress/lzw taint tracking
2020-08-05 18:34:05 +02:00
Slavomir
053496dbcc
Add compress/gzip taint tracking
2020-08-05 18:32:51 +02:00
Slavomir
7e5077c174
Add compress/flate taint tracking
2020-08-05 18:31:13 +02:00
Slavomir
6e2af3ead1
Add compress/bzip2 taint tracking
2020-08-05 18:29:12 +02:00
Max Schaefer
4e409aa9fa
Merge pull request #274 from gagliardetto/standard-lib-pt-2
...
Add taint tracking for bufio and bytes packages
2020-08-05 17:10:08 +01:00
Slavomir
df71f0bf8b
Remove ReadByte, WriteByte, ReadRune, WriteRune
2020-08-04 17:53:50 +03:00
Slavomir
ff81ad622f
Fix back ql/test/library-tests/semmle/go/frameworks/TaintSteps/TaintStep.expected
2020-08-04 17:22:40 +03:00
Slavomir
c1f2e77488
Fix generated codeql
2020-08-04 17:11:55 +03:00
Slavomir
6b1bbf16aa
Remove taint-tracking for objects that implement io.Reader
2020-08-04 16:01:30 +03:00
Slavomir
72254b7682
Fix ql/test/library-tests/semmle/go/frameworks/TaintSteps/TaintStep.expected
2020-08-04 15:36:34 +03:00
Slavomir
3fd6062b3d
Add taint-tracking for package "bytes"
2020-08-04 14:15:26 +03:00
Slavomir
dd8e1243a2
Add bufio taint-tracking
2020-08-04 14:11:00 +03:00
Max Schaefer
b057cbee7b
Merge pull request #256 from smowton/smowton/admin/cwe-327-cleanup
...
Polish CWE-327 (weak TLS config) query
2020-08-03 10:28:53 +01:00
Sauyon Lee
5de55d02d7
Merge pull request #273 from max-schaefer/unresolved-reference
...
Speed up `unresolvedReference`.
2020-08-02 22:31:13 -07:00
Max Schaefer
f6da34b546
Speed up unresolvedReference.
2020-07-31 14:13:05 +01:00
Chris Smowton
7e65575e95
Merge pull request #272 from smowton/smowton/admin/fix-makefile-escaping
...
Escape go-fmt file filter
2020-07-30 20:05:04 +01:00
Chris Smowton
2a7754af59
Factor ErrorType out of two duplicate tests
2020-07-30 17:25:53 +01:00
Chris Smowton
4b6810eefc
InsecureFeatureFlag: make getAFlag a member of FlagKind
2020-07-30 17:23:01 +01:00
Chris Smowton
7dd20107fe
Insecure-TLS query: trivial style and typo fixes
2020-07-30 17:18:54 +01:00
Chris Smowton
3c1daf08f8
Escape go-fmt file filter
...
This should have been looking for \.go$, but I forgot to escape the dollar sign in a Makefile
2020-07-30 17:06:01 +01:00
Max Schaefer
2134757ebf
Merge pull request #261 from smowton/smowton/admin/cleanup-cwe-322
...
Polish CWE-322: detect and exclude cases where host-checking is optional
2020-07-30 10:38:57 +01:00
Chris Smowton
cce3a70412
Insecure-TLS: restrict sources to potentially interesting integers.
2020-07-29 16:46:36 +01:00
Chris Smowton
d7c0671ea1
Add test using SSH host-key checker factory knownhosts.New
...
This produces a secure host-key checker; we assume by default that an opaque function not otherwise specified returns an acceptable checker, but we need to particularly cope with its multiple return values to handle this factory function.
2020-07-29 16:30:51 +01:00
Chris Smowton
d0e86f787d
SSH host checking: Expand definition of a host-key checking function to include calls with multiple return types
...
For example, https://godoc.org/golang.org/x/crypto/ssh/knownhosts#New returns a host-key checker and an error value, and we previously didn't consider the first return value a candidate checker function.
2020-07-29 16:06:38 +01:00
Chris Smowton
e89cd16cb1
Move query-specific flag definitions into their respective .ql files
2020-07-29 15:21:49 +01:00
Chris Smowton
f31ed52943
Clean up InsecureFeatureFlag
...
Move the flag regexes inline, use `any` instead of a constructor function to select a particular flag kind, and remove explicit limitation on the common superclass FlagKind.
2020-07-29 15:15:50 +01:00
Chris Smowton
f162a5be94
Promote CWE-322 out of experimental status
2020-07-29 14:43:47 +01:00
Chris Smowton
99f08750f3
Polish CWE-322: detect and exclude cases where host-checking is optional
2020-07-29 14:43:47 +01:00
Max Schaefer
2831ffdad0
Merge pull request #270 from smowton/smowton/cleanup/ricterz-libraries
...
Add support for Gorm, Gorestful, Sqlx and Json-iterator
2020-07-29 14:21:41 +01:00
Max Schaefer
f8b8af5ac5
Merge pull request #269 from aibaars/lgtm-suites
...
CodeQL: complete LGTM suites
2020-07-29 07:19:41 +01:00
Arthur Baars
0db8ba881b
CodeQL: complete LGTM suites
2020-07-28 20:36:53 +02:00
Chris Smowton
abfae4365f
Move CWE-327 out of experimental
2020-07-28 15:47:44 +01:00
Chris Smowton
026dc5c97f
Add changelog notes regarding added library support
2020-07-28 14:57:14 +01:00
Chris Smowton
0e6feb923c
Add test for json-iterator package, and support more of its API
...
Specifically the top-level functions Unmarshal and UnmarshalFromString are just convenience wrappers around the type API, which is the usual documented way to use the library.
2020-07-28 14:52:10 +01:00
Chris Smowton
e19f476341
Add test for Sqlx
2020-07-28 14:52:10 +01:00
Chris Smowton
f5caf7e9e2
Add test for Gorm
2020-07-28 14:52:10 +01:00
Chris Smowton
a813607a76
go-restful model: Add support for ReadEntity method
2020-07-28 14:52:10 +01:00
Chris Smowton
3c4a1b90fe
Add test for Go-restful
2020-07-28 14:52:10 +01:00
Chris Smowton
b96546b0f8
Improve style of library models
2020-07-28 14:40:48 +01:00
Max Schaefer
e9ae697d0d
Merge pull request #251 from gagliardetto/standard-lib-pt-1
...
Add taint-tracking for archive/tar and archive/zip
2020-07-28 14:27:02 +01:00
Chris Smowton
88cb435843
Split security flags into more distinct categories
...
There are now three categories: general security or option flags, those related to TLS version selection, and those related to certificate configuration. The TLS and disabled-certificate-check queries use two categories each.
2020-07-28 13:54:37 +01:00
Chris Smowton
3c244e2235
Insecure-TLS: remove obsolete TODO
...
The case noted works fine.
2020-07-28 13:04:16 +01:00
Chris Smowton
9b4e189374
Insecure-TLS: Use DataFlow::Node::getRoot, and factor getEnclosingFunction
2020-07-28 11:55:58 +01:00
Chris Smowton
2751552cbe
Insecure-TLS: Reintroduce tests for InsecureCipherSuites()
...
These stopped producing an alert because they used a variable name that acknowledges an insecure setup
2020-07-28 11:55:58 +01:00
Chris Smowton
db9760082d
Insecure-TLS: simplify warning message
2020-07-28 11:55:58 +01:00
Chris Smowton
2a0642b67b
Insecure-TLS: remove is-test-file filter
2020-07-28 11:55:58 +01:00
Chris Smowton
5c8534f56e
EXCUSED -> OK
2020-07-28 11:55:58 +01:00
Chris Smowton
d0c76187da
Fix comment
2020-07-28 11:55:58 +01:00
Chris Smowton
a10db25b7d
Remove redundant constraint
2020-07-28 11:55:58 +01:00
Chris Smowton
779901cdbd
Reference Mozilla's TLS advice in qhelp
2020-07-28 11:55:58 +01:00
Chris Smowton
718c4e8531
Add change note for insecure-TLS query
2020-07-28 11:55:58 +01:00
Chris Smowton
db27f8477a
Update CWE-327 test
...
This now checks various carve-outs for probable feature / compatibility flags
2020-07-28 11:55:58 +01:00
Chris Smowton
21d107e0e9
Check for suspected feature-flags more uniformly
...
These are now checked of all source *and* sink nodes, and the checks are factored with similar paths for is-insecure and is-old flags.
2020-07-28 11:55:58 +01:00
Chris Smowton
7d294c5d81
Factor and generalise InsecureFeatureFlag
...
The same path is now used to classify flags relating to old/legacy versions.
2020-07-28 11:21:51 +01:00
Chris Smowton
34c8cc5019
Improve documentation and function naming
2020-07-28 11:21:51 +01:00
Chris Smowton
17200a8569
Use SsaWithFields to find similar good-tls-version flows
...
Note: if accepted, merge this into a previous commit before submitting the PR
2020-07-28 10:31:45 +01:00
Chris Smowton
a7e549e771
Exclude TLS version sources accompanied by a non-nil error
...
It is common to return 0 has a dummy value with an error; these are very likely not going to be used as a real TLS version.
2020-07-28 10:31:44 +01:00
Chris Smowton
af960ed2cd
Exclude more hits whose context suggests an intentionally old TLS configuration
2020-07-28 10:31:44 +01:00
Chris Smowton
8afa0c51d9
Filter out bad TLS versions where there is a converging flow supplying a good version
...
I'm supposing these usually indicate something configurable, rather than a hard-coded insecure choice. The *default* being insecure is still a problem, but probably not amenable to automated analyses.
2020-07-28 10:31:44 +01:00
Chris Smowton
b66a91bd5f
Exclude InsecureTLS problems guarded by feature flags
2020-07-28 10:31:44 +01:00
Chris Smowton
6058c90485
Factor predicates for identifying security-related feature flags from DisabledCertificateCheck
2020-07-28 10:31:44 +01:00
Chris Smowton
a6ab92bbca
Supress paths that extend beyond the first sink
...
For this particular query it's hardly ever interesting to complain about a bad cipher suite being configured, then read from the list and re-added elsewhere. In such a case the longer path will be detected when the shorter one is fixed in any case.
2020-07-28 10:31:44 +01:00
Chris Smowton
08ec017e4c
Cleanup: disjunction -> set literal
2020-07-28 10:31:44 +01:00
Chris Smowton
75d69efb15
Merge pull request #267 from smowton/smowton/feature/print-ast-label-package-node
...
PrintAst: Label File nodes' package-name children, and ensure that child comes before all declarations
2020-07-24 13:30:12 +01:00
Chris Smowton
b4e15fb17a
Merge pull request #268 from smowton/smowton/admin/downgrade-checkout-action
...
Downgrade to checkout@v1 to work around https://github.com/actions/checkout/issues/237
2020-07-24 13:28:06 +01:00
Chris Smowton
8aaa7c8925
Downgrade to checkout@v1 to work around https://github.com/actions/checkout/issues/237
2020-07-24 11:24:51 +01:00
Chris Smowton
454993fe64
PrintAst: Label File nodes' package-name children, and ensure that child comes before all declarations
2020-07-24 11:08:57 +01:00
Ricter Z
bb2d5ea6b5
add some sinks in commonly-used SQL libraries
2020-07-23 16:19:42 +01:00
Chris Smowton
b9e61115f3
Merge pull request #266 from sauyon/query-tags
...
Add correctness tag to MistypedExponentiation
2020-07-22 15:27:46 +01:00
Chris Smowton
6c4a1d0a34
Merge pull request #264 from smowton/smowton/feature/printast-restrict-files
...
PrintAst: improve support for restricting subsets of the AST to print
2020-07-22 15:20:14 +01:00
Chris Smowton
f8d141f7ff
PrintAst: Sort root File nodes by relative path.
...
This should make graphtext output deterministic, rather than depending on the order the results interpretation step happens to see the nodes.
2020-07-22 13:43:34 +01:00
Sauyon Lee
c9df4d81b4
Add correctness tag to MistypedExponentiation
2020-07-22 04:26:56 -07:00
Chris Smowton
c30d198f3d
Switch to using top-level function declarations to filter PrintAst
...
This means it's no longer possible to ask for the AST of a function literal, but this is hopefully a niche use-case that we can add if and when there is demand.
2020-07-22 10:40:41 +01:00
Owen Mansel-Chan
3018874f69
Merge pull request #259 from gagliardetto/oauth2-fixed-state
...
CWE-352: Use of constant `state` in Oauth2 flow
2020-07-21 17:11:46 +01:00
Chris Smowton
09990f9764
Configure plugin AST printer to ignore comments and only print one file
2020-07-21 17:01:07 +01:00
Chris Smowton
b8c4004c59
PrintAst: support excluding comments
2020-07-21 17:01:07 +01:00
Chris Smowton
e0aa59ced1
PrintAst: improve support for restricting subsets of the AST to print
...
* Exclude function definitions, not just their children, when excluded by configuration
* Allow excluding files
* Test both features
2020-07-21 17:00:28 +01:00
Chris Smowton
a625a4c7d5
Merge pull request #263 from smowton/smowton/feature/order-functypeexpr-children
...
PrintAst: order parameter and result declarations
2020-07-21 15:47:26 +01:00
Andrew Eisenberg
f35343e618
Merge pull request #262 from aeisenberg/aeisenberg/print-ast
...
Add the printAst contextual query
2020-07-20 11:11:42 -07:00
Slavomir
02b5fce67e
Add go.mod to CWE-352 test folder
2020-07-20 17:46:12 +03:00
Chris Smowton
ce0cc31b03
PrintAst: order parameter and result declarations
...
This adds support for generally overriding the default AstNode child ordering, and uses it to sort parameter and result declarations in the context of a FuncTypeExpr in left-to-right textual order.
2020-07-20 14:32:42 +01:00
Andrew Eisenberg
0ae1330c02
Add the printAst contextual query
...
This is similar to the cpp query for printing the AST in the
context of VS Code.
This PR also includes a small refactoring to extract the
`getEncodedFile` predicate to a new `qll` file.
2020-07-17 10:12:48 -07:00
Slavomir
27f62b0b3a
Fix examples
2020-07-17 13:12:18 +03:00
Slavomir
ee2804dfb1
Improve comments
2020-07-17 11:01:25 +03:00
Slavomir
ee4356501a
Apply suggestions from code review
...
Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com >
2020-07-16 18:36:40 +03:00
Slavomir
fb78818db7
Fix .expected
2020-07-16 18:33:35 +03:00
Slavomir
ef7198c0cb
Improve query scenarios
2020-07-16 18:29:15 +03:00
Slavomir
282f7af6d9
Improve comments, naming, docs
2020-07-16 12:52:41 +03:00
Slavomir
8cc8b8ef47
Add CWE-352: CSRF because of constant oauth2 state value
2020-07-16 12:38:08 +03:00
Slavomir
437f4b7eab
Fix go autoformat
2020-07-15 19:12:33 +03:00
Slavomir
9cd86f9be8
Generated Go files: add what they were generated with
2020-07-15 19:05:12 +03:00
Slavomir
f7a03c0862
Update main.go
2020-07-15 19:05:12 +03:00
Slavomir
19348d2773
Simplify tests
2020-07-15 19:05:12 +03:00
Slavomir
1591ed3440
Implement code review feedback
2020-07-15 19:05:12 +03:00
Slavomir
5b63228690
Add StdlibTaintFlow.expected
2020-07-15 19:05:12 +03:00
Slavomir
19287fb5ff
Add taint-tracking for archive/tar and archive/zip
2020-07-15 19:05:12 +03:00
Chris Smowton
830f83f21a
Merge pull request #257 from smowton/smowton/fix/go-mod-comment-group-indices
...
Extractor: assign unique indices to comment-groups in go.mod files
2020-07-13 15:40:14 +01:00
Chris Smowton
3ab948f81c
Extractor: assign unique indices to comment-groups in go.mod files
...
The schema requires that (parent, index) is a key.
2020-07-13 11:28:28 +01:00
Sauyon Lee
32510eb2d0
Merge pull request #255 from max-schaefer/alias-types
...
Improve modelling of alias declarations
2020-07-10 21:07:48 -07:00
Max Schaefer
4eac5a1d4e
Add test to demonstrate that aliases have entities.
...
There are, however, no corresponding types.
2020-07-10 14:41:15 +01:00
Max Schaefer
1a8688a8f4
Extract enough information to distinguish type definitions from alias declarations.
2020-07-10 14:12:51 +01:00
Max Schaefer
4257a68c27
Include newlines in messages printed by go-gen-dbscheme.
2020-07-10 14:08:37 +01:00
Max Schaefer
9347413e77
Merge pull request #254 from smowton/smowton/admin/fix-go-autoformat
...
Make the gofmt CI test actually fatal
2020-07-10 14:01:44 +01:00
Chris Smowton
d05657ddff
Make the gofmt CI test actaully fatal
...
Turns out gofmt doesn't actually return 1 when it finds problems, only when it finds source files which don't compile (all of which are now excluded).
This also fixes existing overlooked inconsistencies as a result of this mistake.
2020-07-10 11:02:50 +01:00
Max Schaefer
302eb55d23
Merge pull request #245 from smowton/smowton/feature/missing-error-check-query-conservative
...
Add query searching for missing error checks on functions that return a (pointer, error) pair
2020-07-09 15:37:32 +01:00
Chris Smowton
429a385a20
Add query searching for missing error checks on functions that return a (pointer, error) pair
2020-07-09 13:06:31 +01:00
Max Schaefer
02920abc62
Merge pull request #249 from smowton/smowton/feature/comment-group-ast-node-parents
...
Make CommentGroups AST-children of Files
2020-07-08 19:58:13 +01:00
Chris Smowton
6bf3802b3f
Make CommentGroups AST-children of Files
...
Previously they were roots, with children hanging off them. Now they are children of Files, and both CommentGroups and Comments can be discovered using AstNode.getAChild.
The PrintAst pass is also adapted to account for their new position.
2020-07-08 17:49:47 +01:00
Max Schaefer
650cb5e626
Merge pull request #253 from smowton/smowton/admin/gofmt-in-ci
...
Add Go autoformatting to the 'autoformat' make target and to CI
2020-07-08 17:37:17 +01:00
Chris Smowton
ce94c68e0a
Add Go autoformatting to the 'autoformat' make target and to CI
...
Existing gofmt complaints are fixed, and files that specifically test queries that relate to badly formatting code are tagged as such.
2020-07-08 14:20:19 +01:00
Max Schaefer
26eeb3c658
Merge pull request #252 from gagliardetto/patch-3
...
taint-tracking: String() must return a string type
2020-07-08 12:01:20 +01:00
Slavomir
59071732a8
taint-tracking: String() must return a string type
...
Make sure that the taint-tracking class for the `String()` method checks that the result type is a string.
2020-07-08 12:34:13 +03:00
Max Schaefer
bc778b5899
Merge pull request #243 from max-schaefer/cve-2019-11250
...
Improvements to clear-text logging query
2020-07-07 16:03:40 +01:00
Max Schaefer
3a897a9dd0
Merge pull request #247 from shati-patel/docs
...
Docs: Editorial changes to library modeling topic
2020-07-07 13:37:51 +01:00
Max Schaefer
b4c56928c4
Merge pull request #248 from max-schaefer/location-doc
...
Port Location qldoc update.
2020-07-07 13:37:36 +01:00
Max Schaefer
47a858610d
Merge pull request #239 from smowton/smowton/feature/find-noreturn-user-functions
...
Switch from using mustPanic to mayReturnNormally to construct a call-expression's CFG
2020-07-07 13:37:18 +01:00
Chris Smowton
6e5ee47ade
Switch from using mustPanic to mayReturnNormally to construct a call-expression's CFG
...
We also use this to note that user-defined functions can only return normally if their CFG normal exit node is reachable, and annotate some well-known functions as noreturn.
For example, this will by fiat declare os.Exit noreturn (never returns normally), and will also notice that a user function `func myExit() { os.Exit(1) }` is also noreturn, because it doesn't have any control-flow edges that reach the normal return node.
2020-07-07 11:40:06 +01:00
Max Schaefer
842860d7ca
Port Location qldoc update.
...
cf https://github.com/github/codeql/pull/3907
2020-07-07 10:58:00 +01:00
Shati Patel
5ddcf92859
Editorial changes to library modeling topic
2020-07-07 10:02:33 +01:00
Max Schaefer
d8ff2d1641
Merge pull request #246 from smowton/smowton/feature/nuisance-dead-code-warnings
...
UnreachableStatement: tolerate more harmless unreachable return statements
2020-07-07 09:26:48 +01:00
Chris Smowton
5b34c05916
UnreachableStatement: tolerate more harmless unreachable return statements
...
The Golang compiler isn't particularly good at spotting paths that don't need a return statement due to a dominating noreturn statement (e.g. os.Exit(1)), so dead return statements are common. We already tried to tolerate some instances of this pattern; this additionally allows 'true' and 'false' literals, and anything of type 'error'.
The carte-blanche for error values aims to accommodate the pattern "abort(); return whateverErrorWouldOtherwiseBeAppropriate();", which is probably preferable to "return nil", a misleading no-error indication.
2020-07-06 17:02:26 +01:00
Max Schaefer
61bc51c133
Merge pull request #242 from max-schaefer/remove-experimental-precision
...
Remove `@precision` from experimental query.
2020-07-03 10:53:18 +01:00
Max Schaefer
5343315ad0
Remove @precision from experimental query.
...
We'll add it back when we take it out of experimental status.
2020-07-03 09:51:24 +01:00
Max Schaefer
570b232836
Merge pull request #235 from gagliardetto/bad-unsafe
...
Query to find wrong uses of package "unsafe"
2020-07-03 09:36:10 +01:00
Slavomir
94c0bc361d
Improve comments and alerts
2020-07-02 22:10:17 +03:00
Max Schaefer
534ab94067
Merge pull request #241 from max-schaefer/update-data-flow
...
Update shared data-flow libraries
2020-07-02 14:07:32 +01:00
Max Schaefer
b83076853f
Add change note.
2020-07-02 12:03:43 +01:00
Max Schaefer
89e9c6c2da
Teach clear-text logging query to ignore dummy passwords.
2020-07-02 12:02:56 +01:00
Max Schaefer
63187a0889
Make clear-text logging sources more precise.
2020-07-02 12:02:56 +01:00
Max Schaefer
7b903dd062
Teach CleartextLogging not to track through error.Error() and fmt.Stringer.String().
...
These two are very heavily overloaded and cause all sorts of false positives.
2020-07-02 12:02:56 +01:00
Max Schaefer
f807aa8b5e
Merge pull request #233 from owen-mc/library-modeling
...
Create guide for modeling go libraries
2020-07-02 12:01:45 +01:00
Max Schaefer
dc5813b159
Data flow: Remove big-step relation in flow-through code
...
cf https://github.com/github/codeql/pull/3857
2020-07-02 11:55:41 +01:00
Max Schaefer
09d2fe391e
Data flow: Replace getErasedRepr() and Node::getTypeBound() with getNodeType().
...
cf https://github.com/github/codeql/pull/3854
2020-07-02 11:55:41 +01:00
Max Schaefer
7925db7911
Merge pull request #240 from max-schaefer/fix-frontend-errors
...
Fix frontend errors
2020-07-02 10:14:39 +01:00
Max Schaefer
25c969d14c
Model message components for Fprintf and friends more precisely.
2020-07-02 09:41:03 +01:00
Max Schaefer
c80314a3fb
Treat non-sensitive header retrieval as a barrier.
2020-07-02 09:41:03 +01:00
Max Schaefer
29cbac429f
Fix stub for crypto/ssh.
2020-07-02 07:51:29 +01:00
Max Schaefer
5ac8ba9cef
Fix an error in Types test.
2020-07-02 07:51:16 +01:00
Max Schaefer
eeae713c2f
Dataflow: Refactor dispatch with call context.
...
cf https://github.com/github/codeql/pull/3804
2020-07-01 20:02:40 +01:00
Slavomir
b919ee03bf
Merge branch 'bad-unsafe' of https://github.com/gagliardetto/codeql-go into bad-unsafe
2020-07-01 17:36:50 +03:00
Slavomir
267057b4b2
Use Nodes instead of Expressions
2020-07-01 17:33:40 +03:00
Owen Mansel-Chan
4a002c3044
Address review comments and delete md file
2020-07-01 15:08:00 +01:00
Max Schaefer
f74a94e382
Merge pull request #170 from sauyon/tracing
...
Extract more dependency ASTs
2020-07-01 14:25:52 +01:00
Owen Mansel-Chan
3a2a33b956
Convert to reStructuredText
...
Annoyingly rst won't easily let you make some text monospace inside the
text for a link. The only other things I've changed from pandoc's output
are changing "code::" to "code-block::" and adding whitespace to get the
lists to format correctly.
2020-07-01 10:43:08 +01:00
Slavomir
62ccceb543
Apply suggestions from code review
...
Co-authored-by: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-07-01 12:16:40 +03:00
Slavomir
87c2ac3caf
Remove deprecated; plus aesthetic fix
2020-07-01 12:11:41 +03:00
Owen Mansel-Chan
126d214a2d
Address review comments
2020-07-01 10:04:55 +01:00
Slavomir
37af579f27
Implement code review feedback
2020-07-01 12:02:12 +03:00
Max Schaefer
05da78d0f2
Merge pull request #238 from owen-mc/tfunctionoutput-receiver-separate-case
...
Make receiver a separate case in TFunctionOutput
2020-07-01 09:53:13 +01:00
Slavomir
7475170ced
Fix getBaseType
2020-07-01 11:21:15 +03:00
Slavomir
7f65424556
Fix comments and tests
2020-07-01 10:40:34 +03:00
Slavomir
9421476bea
Add IndexExpr logic and example
2020-07-01 10:21:16 +03:00
Slavomir
036a1faffa
Remove redundancy
2020-06-30 23:00:19 +03:00
Slavomir
c5354a88f0
Update tests
2020-06-30 22:11:05 +03:00
Slavomir
22e9c75d68
If pointer is to an IndexExpr, the use base type of that index expression
2020-06-30 22:07:40 +03:00
Sauyon Lee
6e5e9ce5de
Improve comments for extractor utility functions
2020-06-30 11:44:10 -07:00
Sauyon Lee
c6dfcf7365
Merge pull request #237 from github/revert-165-support-actions
...
Revert "autobuilder: Add support for GITHUB_REPOSITORY environment variable"
2020-06-30 11:40:34 -07:00
Owen Mansel-Chan
83fffa6350
Address review comments
2020-06-30 18:37:00 +01:00
Owen Mansel-Chan
826603a396
Make receiver a separate case in TFunctionOutput
...
This is for consistency with TFunctionInput, which already does this
2020-06-30 17:15:52 +01:00
Owen Mansel-Chan
88e2ae1b2e
Address review comments
2020-06-30 17:00:05 +01:00
Remco Vermeulen
a89b87f643
CWE-322 InsecureHostKeyCallback ( #234 )
2020-06-30 15:38:21 +01:00
Max Schaefer
ccfccb4828
Revert "autobuilder: Add support for GITHUB_REPOSITORY environment variable"
2020-06-30 15:13:26 +01:00
Chris Smowton
595866a6d8
Extractor: give the go.mod comment groups a source location ( #232 )
...
The comment group is now omitted entirely if empty, and otherwise delimits the range of the comments ascribed to this group.
2020-06-30 14:59:13 +01:00
Max Schaefer
e374f92555
Merge pull request #236 from max-schaefer/update-data-flow
...
Update data-flow libraries
2020-06-30 14:32:56 +01:00
Slavomir
8238d111b5
Fix tests
2020-06-30 13:37:44 +03:00
Slavomir
c28e83a793
Add references
2020-06-30 12:53:51 +03:00
Slavomir
3181ac6ec8
Add qhelp file and examples
2020-06-30 12:43:42 +03:00
Slavomir
27ac4c3236
Fix comment
2020-06-30 12:12:03 +03:00
Max Schaefer
df4265e31b
Add more tests for clear-text logging.
2020-06-30 10:05:01 +01:00
Max Schaefer
ef340954e4
Add mask* as a heuristic name for an obfuscating function.
2020-06-30 10:05:01 +01:00
Max Schaefer
e6a44d4578
Add HTTP-request headers as a source for clear-text logging.
2020-06-30 10:05:01 +01:00
Max Schaefer
e692af21ac
Extend model of glog to also cover two API-compatible forks.
2020-06-30 10:05:01 +01:00
Slavomir
6f396b9ad8
Add comments to codeql query
2020-06-30 11:47:14 +03:00
Slavomir
8473ed0d81
Add tests
2020-06-30 11:31:24 +03:00
Slavomir
c71ecd678e
Initial commit for: wrong use of package unsafe
2020-06-30 10:45:03 +03:00
Owen Mansel-Chan
63b2afb4ce
Create guide for modeling go libraries
2020-06-29 11:46:09 +01:00
Max Schaefer
2b3e3bda8f
Data flow: Model field clearing.
...
cf https://github.com/github/codeql/pull/3762
2020-06-29 11:06:35 +01:00
Max Schaefer
f7ed65692f
Data flow: Use accessPathLimit() in partial flow as well.
...
cf. https://github.com/github/codeql/pull/3494
2020-06-29 11:02:35 +01:00
Max Schaefer
5275168253
Make target branch configurable for sync-dataflow-libraries.
...
You can now do `make DATAFLOW_BRANCH=<committish> sync-dataflow-libraries`; default is still `master`.
2020-06-29 10:02:59 +01:00
Max Schaefer
76f482682c
Merge pull request #182 from owen-mc/gin-framework
...
Move model for Gin framework out of experimental
2020-06-26 20:26:48 +01:00
Max Schaefer
91ca2bb434
Merge pull request #231 from max-schaefer/taint-through-range
...
Propagate taint through `range` statements
2020-06-26 19:58:53 +01:00
Sauyon Lee
468d9812c4
Merge pull request #227 from max-schaefer/cve-2018-15798
...
Teach `OpenUrlRedirect` to propagate out of `URL.Path` and a few other fields.
2020-06-26 06:21:59 -07:00
Max Schaefer
57f8b08568
Update expected test output.
...
The tests for `UnsafeTLS` now work as expected.
2020-06-26 11:30:26 +01:00
Max Schaefer
66ec160f64
Add change note.
2020-06-26 11:20:45 +01:00
Max Schaefer
258a276242
Propagate taint through range loops.
2020-06-26 11:20:45 +01:00
Max Schaefer
ce3007395f
Rename arrayStep to elementStep, which is more accurate.
2020-06-26 11:20:45 +01:00
Max Schaefer
ba82a76948
Merge pull request #229 from max-schaefer/getAPrimaryQlClass
...
Rename `describeQlClass` to `getAPrimaryQlClass`.
2020-06-26 07:51:04 +01:00
Max Schaefer
9904b9e926
Allow flow through more URL fields.
2020-06-26 07:50:08 +01:00
Max Schaefer
3bf934d64b
Add change note.
2020-06-25 22:23:49 +01:00
Owen Mansel-Chan
82361ce060
Fix modelling of Params part 2
2020-06-25 21:55:10 +01:00
Owen Mansel-Chan
cf47159a30
Change how Param and Params are modeled
...
Previously any read of type Param or Params was a source. Now reading
Context.Params is a source. This should reduce the number of duplicate
paths.
2020-06-25 21:55:10 +01:00
Owen Mansel-Chan
9fd892ab94
Fix context bind sources
...
Using FunctionOutput was recommended in the first PR but not implemented.
2020-06-25 21:55:00 +01:00
Owen Mansel-Chan
93399c6348
Add tests for bind methods with pointer-typed variables
2020-06-25 16:17:57 +01:00
Max Schaefer
d290bea39a
Rename describeQlClass to getAPrimaryQlClass.
2020-06-25 15:08:01 +01:00
Max Schaefer
a89e4971ac
Merge pull request #221 from gagliardetto/bad-tls
...
Add CWE-327 (unsafe TLS)
2020-06-25 09:18:42 +01:00
Sauyon Lee
380060c7e4
extractor: Refactor regexp compilation for the relative directory check
2020-06-24 23:29:55 -07:00
Sauyon Lee
9e8d386f3c
Clarify change note
2020-06-24 23:29:55 -07:00
Sauyon Lee
fa391b1516
extractor: Factor out common bits for running go list
2020-06-24 23:29:54 -07:00
Sauyon Lee
ebdd724b75
Simplify logic for deciding whether to extract a package
2020-06-24 23:29:53 -07:00
Sauyon Lee
e25b882e42
Clarify some comments
...
As suggested in code review
Co-authored-by: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-06-24 23:29:52 -07:00
Sauyon Lee
9bd1f87d66
Address review comments
2020-06-24 23:29:51 -07:00
Sauyon Lee
de2f407c69
Add change note for more dependency AST extraction
2020-06-24 23:29:50 -07:00
Sauyon Lee
7863bb656e
Use the -mod argument from the build when calling go list
2020-06-24 23:29:49 -07:00
Sauyon Lee
296d2d5fd3
extractor: modify FileExists to check that the path isn't a directory
2020-06-24 23:29:48 -07:00
Sauyon Lee
3513c352e6
extractor: Factor out FileExists utility function
2020-06-24 23:29:48 -07:00
Sauyon Lee
f197975c6e
Extract packages more intelligently
...
We now extract packages that have the same module root as the specified packages, as determined by
the `go list` command.
2020-06-24 23:29:47 -07:00
Slavomir
95b76dceca
Remove check
2020-06-24 21:39:23 +03:00
Slavomir
4dc1399385
Update comments on the lines that have incorrect flagging
2020-06-24 15:11:33 +03:00
Sauyon Lee
6883a97628
Merge pull request #223 from max-schaefer/update-data-flow
...
Data flow: Track precise types during field flow
2020-06-24 00:10:54 -07:00
Max Schaefer
8c27e16190
Merge pull request #226 from smowton/smowton/fix/remove-spurious-cfg-edge-from-expressionless-switch
...
Remove spurious control-flow edge around switch block without a test
2020-06-24 07:47:37 +01:00
Slavomir
3aa9b25673
Fix comment
2020-06-23 22:40:25 +03:00
Chris Smowton
4882f277f5
Remove spurious control-flow edge around switch block without a test-expression
...
Previously we thought it possible to get from top to bottom of a block like "switch { case f(): ... }", when in fact this is only possible if there are no case blocks to execute.
I also add tests for two possible corner cases of a switch without a test-expression: a completely empty switch (the 'true' is indeed the last node) and switch with an empty default block (a single 'skip' is generated for the default block and the 'true' is not the last node)
2020-06-23 17:46:08 +01:00
Chris Smowton
1dc427a2c5
Cleanup: use TypeSwitchStmt.getAssign, not a raw child accessor
2020-06-23 17:46:08 +01:00
Max Schaefer
4e6d9b3811
Teach OpenUrlRedirect to propagate out of URL.Path and a few other fields.
2020-06-23 15:29:18 +01:00
Slavomir
561c5b91d2
Implement code review feedback
2020-06-23 16:07:05 +03:00
Max Schaefer
95011cebc2
Merge pull request #225 from sauyon/unqualify-functioninput
...
Unqualify uses of FunctionInput and FunctionOutput
2020-06-23 11:24:46 +01:00
Slavomir
56727b220b
Try different ways of passing taint through a field
2020-06-23 12:14:49 +03:00
Sauyon Lee
ecff1e6a16
Unqualify uses of FunctionInput and FunctionOutput
2020-06-22 22:25:33 -07:00
Max Schaefer
d3e6e5c0b3
Data flow: Track precise types during field flow
...
cf https://github.com/github/codeql/pull/3456
2020-06-22 20:53:05 +01:00
Slavomir
4ab929a656
Simplify
2020-06-22 17:54:07 +03:00
Slavomir
29eba441d7
Determine TLS version from int value
2020-06-22 17:50:20 +03:00
Slavomir
70bc4c81a0
Fix typo
2020-06-22 17:15:56 +03:00
Slavomir
783f710188
Fix comments
2020-06-22 17:12:15 +03:00
Slavomir
e38d4ecd9c
Fix typos
2020-06-22 17:00:31 +03:00
Slavomir
bbf8d7306b
Add CWE-327
2020-06-22 16:54:14 +03:00
Max Schaefer
d8374adbde
Merge pull request #219 from max-schaefer/refine-virtual-dispatch
...
Refine potential targets for method call through interface
2020-06-22 13:47:48 +01:00
Max Schaefer
b2ea23685c
Merge pull request #220 from max-schaefer/master
...
Temporarily disable CodeQL analysis
2020-06-22 13:46:51 +01:00
Max Schaefer
b64d3467aa
Temporarily disable CodeQL analysis
...
https://github.com/github/codeql-go/pull/184 added a regression test for the non-termination it was fixing. The fix hasn't made it into Code Scanning yet, so for the time being it will fail with precisely that non-termination when analysing the regression tests.
2020-06-22 12:18:29 +01:00
Max Schaefer
1f68a32cdc
Add change note.
2020-06-22 09:22:47 +01:00
Max Schaefer
759e3d5632
Further refine potential call targets for interface calls.
...
The call target must belong to the method set of a type that implements the interface type of the method call receiver, if any.
For example, assume `h` has type `hash.Hash`, then `h.Write(...)` should only be resolved to implementations of `Write` in types implementing `hash.Hash`, not arbitrary other `Writer`s.
2020-06-22 09:22:47 +01:00
Max Schaefer
1c58028ae3
Expose receiver type in isInterfaceCallReceiver.
2020-06-22 09:22:47 +01:00
Max Schaefer
0e5e116217
Add a few more utility predicates to DataFlow::Node.
2020-06-22 09:22:47 +01:00
Max Schaefer
18db1fe79f
Merge pull request #184 from max-schaefer/lookup-fields-in-cyclic-struct
...
Fix field lookup in cyclic structs
2020-06-21 09:23:57 +01:00
Max Schaefer
47c4c55923
Merge pull request #185 from github/max-schaefer-patch-2
...
Set up Code Scanning
2020-06-20 10:41:25 +01:00
Sauyon Lee
8742f09343
Merge pull request #186 from max-schaefer/fix-test-compile-errors
...
Fix compiler errors in tests.
2020-06-19 08:28:34 -07:00
Chris Smowton
6c230980a3
Merge pull request #187 from max-schaefer/fill-in-qldoc
...
Add qldoc for three public predicates in `PrintAst.qll`.
2020-06-19 15:30:24 +01:00
Max Schaefer
0f4297ff5c
Add qldoc for three public predicates in PrintAst.qll.
...
It's bland, but we try to maintain a 100% documentation coverage for our public library elements.
2020-06-19 14:25:57 +01:00
Max Schaefer
314bda2a7f
Fix compiler errors in tests.
2020-06-19 14:21:10 +01:00
Max Schaefer
df02ad404e
Set up Code Scanning
2020-06-19 14:02:31 +01:00
Max Schaefer
79b0ea8d77
Merge pull request #183 from smowton/smowton/cleanup/field-parent
...
Clean up @field and @fieldparent usage
2020-06-19 11:30:52 +01:00
Chris Smowton
3c8153ca1e
Clean up @field and @fieldparent usage
...
* Centralise use of raw types and database predicates in FieldParent and FieldBase classes
* Deduplicate type predicates common to all fields
* Deduplicate predicates common to function parameters and results
2020-06-19 11:00:42 +01:00
Max Schaefer
c31a7fc228
Add a few more tests.
2020-06-19 09:28:12 +01:00
Max Schaefer
2df8c275e0
Fix field lookup in cyclic structs.
2020-06-19 08:16:09 +01:00
Max Schaefer
7c2358c1d0
Merge pull request #181 from sauyon/reflectedxss-fps
...
ReflectedXSS refinement
2020-06-18 11:14:13 +01:00
Max Schaefer
7af168fc3b
Merge pull request #179 from smowton/smowton/feature/printast
...
Add barebones PrintAST for Go
2020-06-17 17:02:53 +01:00
Owen Mansel-Chan
c5cb55afc6
Add a change note
2020-06-17 15:14:16 +01:00
Owen Mansel-Chan
2282def1e2
Merge pull request #180 from owen-mc/email-injection
...
Move email injection query out of experimental folder
2020-06-17 15:11:31 +01:00
Chris Smowton
1a823b21f1
PrintAst: Emit relative paths for file nodes
...
This is a workaround for codeql run test not itself truncating absolute paths
when comparing against actual output.
2020-06-17 15:03:29 +01:00
Owen Mansel-Chan
49abd0b9b1
Add test using hashing
2020-06-17 14:33:53 +01:00
Chris Smowton
80b9be1004
Add simple PrintAst test
...
This both checks that many common control-flow structures print as expected, and checks our unique child node numbering, which would otherwise give the same label to a file's package (its 0th child expression) and its 0th declaration.
2020-06-17 14:25:45 +01:00
Owen Mansel-Chan
83697f62ac
Address review comments on qhelp
2020-06-17 14:21:37 +01:00
Chris Smowton
bd7b7c06b5
Add AstNode.getCanonicalQlClass and use it in PrintAst
...
This gives those classes satisfied by an AstNode that are considered useful for developer understanding, cf. getAQlClass which returns all satisfied classes and hides overridden ones, even if they are interesting.
2020-06-17 13:47:23 +01:00
Owen Mansel-Chan
3a3fbfff45
Update moved files
2020-06-17 11:36:11 +01:00
Owen Mansel-Chan
d7c6391b41
Move Gin files out of experimental
...
No changes have been made to the files in this commit
2020-06-17 11:34:09 +01:00
Owen Mansel-Chan
f926808c8a
Address review comments
2020-06-17 10:11:41 +01:00
Sauyon Lee
ed87c346cf
Add tests for the ReflectedXSS HTML content type sniffing regexp
2020-06-17 00:28:03 -07:00
Sauyon Lee
95235c8415
Add change note for reflected xss regexp fixes
2020-06-17 00:28:03 -07:00
Sauyon Lee
4f3854c052
ReflectedXSS: Ignore whitespace for HTML content type detection
2020-06-17 00:28:02 -07:00
Chris Smowton
464773d99a
Add initial implementation of PrintAST for Go
...
Known shortcomings:
* Uses getAQlClass rather than tagging AST nodes with a canonical class, as the C++ version of the same query does
* Types and go.mod lines are not printed informatively (typically we just get a short description of the node kind, e.g. 'function type')
* Children are always named for their child indices; we should give informative names to the edges where an accessor is declared (e.g. IfStmt names its children 'init', 'cond', 'if', 'else')
2020-06-16 17:21:56 +01:00
Owen Mansel-Chan
a3bc094731
Add change note
2020-06-16 15:48:39 +01:00
Owen Mansel-Chan
1b49bcc3b3
Put code snippets from qhelp in test folder
2020-06-16 15:44:51 +01:00
Owen Mansel-Chan
336eba1be4
Add Hash.Write and similar as sanitizers
2020-06-16 12:48:43 +01:00
Sauyon Lee
1853e990a3
ReflectedXss: Allow regexp to match newlines
2020-06-16 00:43:12 -07:00
Owen Mansel-Chan
f27ecdabb8
Set precision to high
2020-06-15 17:42:19 +01:00
Owen Mansel-Chan
4f6ce61de2
Move EmailInjection query out of experimental
2020-06-15 17:42:19 +01:00
Max Schaefer
a88bf4c9fa
Merge pull request #177 from sauyon/whitelist
...
Use allow or allowlist instead of whitelist
2020-06-13 19:44:51 +01:00
Sauyon Lee
66f733d798
Use allow or allowlist instead of whitelist
2020-06-12 09:16:41 -07:00
Owen Mansel-Chan
282b8cb9e4
Merge pull request #175 from owen-mc/array-slice-literal
...
Add classes for array and slice literals
2020-06-12 12:12:02 +01:00
Owen Mansel-Chan
e6217d90d7
Provide better strings for map and struct literals
2020-06-12 11:23:58 +01:00
Owen Mansel-Chan
dc113ab19f
Update tests for new strings
2020-06-12 10:40:13 +01:00
Owen Mansel-Chan
e9c2958095
Add classes for array and slice literals
2020-06-12 10:40:13 +01:00
Max Schaefer
47804d68c7
Merge pull request #176 from max-schaefer/update-data-flow
...
Data flow: Allow nodes to be hidden from path explanations
2020-06-12 07:23:15 +01:00
Owen Mansel-Chan
f11b956583
Add a superclass for literals ( #172 )
2020-06-11 19:53:40 +01:00
Max Schaefer
40ffa221bc
Merge pull request #171 from owen-mc/typeexprs-extend-typeexpr
...
Make `ArrayTypeExpr` and so on extend `TypeExpr`
2020-06-11 17:20:29 +01:00
Max Schaefer
b164cf33c7
Merge pull request #174 from github/rc/1.24
...
Merge rc/1.24 into master
2020-06-11 17:19:23 +01:00
Max Schaefer
9e3681cda4
Merge pull request #173 from owen-mc/update-ast-class-reference
...
Update AST class reference
2020-06-11 16:47:43 +01:00
Owen Mansel-Chan
71005f19c6
Update AST class reference
...
To match https://github.com/github/codeql/pull/3685
2020-06-11 16:08:36 +01:00
Owen Mansel-Chan
c891d22f74
Make ArrayTypeExpr and so on extend TypeExpr
...
To avoid a recursive definition, need to replace ArrayTypeExpr with@arraytypeexpr and so on in isTypeExprBottomUp(Expr e).
2020-06-11 11:06:15 +01:00
Max Schaefer
c6537f6d3b
Data flow: Allow nodes to be hidden from path explanations
...
cf https://github.com/github/codeql/pull/3657
2020-06-11 09:59:40 +01:00
Max Schaefer
24e2a294ed
Merge pull request #169 from max-schaefer/rc/1.24
...
Merge rc/1.24 into master
2020-06-11 09:15:28 +01:00
Max Schaefer
d8f1873635
Merge branch 'master' into rc/1.24
2020-06-11 08:10:22 +01:00
Owen Mansel-Chan
c30893aba7
Add AST class reference ( #164 )
2020-06-10 15:59:48 +01:00
Max Schaefer
8787f0b4f0
Merge pull request #165 from sauyon/support-actions
...
autobuilder: Add support for GITHUB_REPOSITORY environment variable
2020-06-10 09:45:18 +01:00
Sauyon Lee
4cd3f89128
Merge pull request #168 from max-schaefer/make-autoformat
...
Add Make target to autoformat all QL.
2020-06-09 12:55:57 -07:00
Sauyon Lee
ba0f922a28
autobuilder: Add support for GITHUB_REPOSITORY environment variable
...
This is for use within GitHub actions
2020-06-09 11:52:23 -07:00
Max Schaefer
1342d8688e
Autoformat.
2020-06-09 17:38:18 +01:00
Max Schaefer
b4b78ff923
Use newer version of CodeQL.
2020-06-09 17:36:38 +01:00
Max Schaefer
6b5657b5fb
Add PR check to ensure everything is autoformatted.
2020-06-09 17:31:29 +01:00
Max Schaefer
04af08ca0d
Add Make target to autoformat all QL.
...
Use
```sh
make autoformat
```
to format all `.ql` and `.qll` files under `ql/src`.
Use
```sh
make AUTOFORMAT=--check-only autoformat
```
to check that all `.ql` and `.qll` files under `ql/src` are correctly formatted and fail if they are not.
2020-06-09 17:27:53 +01:00
Max Schaefer
524b11b81a
Merge pull request #163 from robertbrignull/more-suites
...
Add more code-scanning suites
2020-06-04 09:53:14 +01:00
Robert Brignull
9ee57374cb
add more code-scanning suites
2020-06-01 10:58:49 +01:00
Max Schaefer
b37bdec66c
Merge pull request #157 from owen-mc/isresult-consistency
...
Make FunctionOutput.isResult(0) and CallNode.getResult(0) match single results
2020-05-29 17:13:21 +01:00
Max Schaefer
2f7ff6b56c
Merge pull request #162 from max-schaefer/open-url-redirect-formvalue
...
Consider `Request.FormValue(...)` as a source for URL redirects.
2020-05-29 15:56:50 +01:00
Max Schaefer
8f0592a079
Consider Request.FormValue(...) as a source for URL redirects.
...
Despite its name, this method doesn't just handle form values but also query parameters.
2020-05-29 15:03:05 +01:00
Sauyon Lee
b1db53e733
Merge pull request #161 from max-schaefer/more-mutable-types
...
Broaden definition of mutable types for taint tracking
2020-05-29 06:55:16 -07:00
Max Schaefer
64c60f6153
Merge pull request #160 from sauyon/readme
...
Add links to the CodeQL CLI and LGTM.com
2020-05-29 07:13:20 +01:00
Sauyon Lee
51026a7142
Add links to the CodeQL CLI and LGTM.com
2020-05-28 22:38:23 -07:00
Owen Mansel-Chan
36fa2c29fa
Simplify more code
2020-05-28 17:40:23 +01:00
Owen Mansel-Chan
65608a2912
Address review comments
2020-05-28 17:24:37 +01:00
Max Schaefer
e3501ddb44
Introduce more post-update nodes.
...
To model (taint) flow through functions, we introduce post-update nodes for arguments (including receivers), but only if that argument is mutable.
However, previously our criterion for determining whether an argument is mutable was a little too restrictive. In particular, we would not consider a struct-typed argument as mutable, since structs are passed by value. While this is reasonable for data flow, it is unnecessarily restrictive for taint, since it makes perfect sense to track deep taint through structs.
So instead we now turn things round and instead consider _all_ types to be mutable except for primitive types (booleans, numbers, and strings).
2020-05-28 15:33:09 +01:00
Max Schaefer
0dd7676bd8
Add another function-model test.
2020-05-28 15:31:00 +01:00
Max Schaefer
1c5dd51992
Add codespaces configuration
2020-05-28 13:09:21 +00:00
Owen Mansel-Chan
bbce7d1f05
Simplify existing code
2020-05-28 13:07:08 +01:00
Owen Mansel-Chan
1c5a4605d6
Add CallNode.getAResult()
2020-05-28 12:49:05 +01:00
Owen Mansel-Chan
1580591b73
Address review comments
2020-05-28 12:49:05 +01:00
Max Schaefer
e7095baa39
Fix nonHtmlContentType.
2020-05-27 16:52:11 +01:00
Owen Mansel-Chan
f0e1147551
Make CallNode.getResult(0) match single results
2020-05-27 10:24:09 +01:00
Owen Mansel-Chan
4be805966f
Make FunctionOutput.isResult(0) match single results
2020-05-27 10:24:09 +01:00
Owen Mansel-Chan
ae2ed877ee
Add tests for CallNode.getResult
2020-05-27 10:24:09 +01:00
Owen Mansel-Chan
53cfbcc255
Add tests for FunctionOutput.isResult
2020-05-27 10:24:03 +01:00
Max Schaefer
8596a99f9d
Merge pull request #156 from max-schaefer/update-data-flow
...
Data flow: Remove deprecated predicates.
2020-05-26 16:16:44 +01:00
Max Schaefer
a59e754403
Data flow: Remove deprecated predicates.
...
cf https://github.com/github/codeql/pull/3515
2020-05-26 11:09:35 +01:00
Max Schaefer
1f54edfe99
Add make target for synchronising data-flow libraries.
2020-05-26 11:09:07 +01:00
Max Schaefer
63fddfc705
Merge pull request #155 from sauyon/dbscheme-binary
...
Create a new entry point for generating dbschemes
2020-05-26 10:17:39 +01:00
Sauyon Lee
aef7524f35
Add a go-gen-dbscheme for generating dbschemes
2020-05-22 08:04:40 -07:00
Max Schaefer
4206408826
Merge pull request #153 from max-schaefer/cleanup-107
...
More cleanup
2020-05-22 13:18:46 +01:00
Max Schaefer
223d0dbf0b
Fix missing </p> in qhelp.
2020-05-22 11:18:27 +01:00
Max Schaefer
bccf750e2e
Sort go.qll alphabetically.
2020-05-22 11:12:31 +01:00
Max Schaefer
1d479d9a73
Add change note.
2020-05-22 11:11:58 +01:00
Max Schaefer
3c8fa02356
Regularise a few comments.
2020-05-22 11:11:58 +01:00
Max Schaefer
adc3ce8274
Extend documentation for package and use it in two more places.
...
The predicate now works with an empty package path.
The way this is implemented is perhaps slightly non-obvious: the `($|/)\\Q" + path + "\\E"` part of the regular expression either matches the end of the string (and `path` must then be empty), or a slash followed by `path` (which may or may not be empty).
We do allow non-canonical import paths ending in `/`, which the compiler rejects. We could disallow that by putting a `(?!$)` assertion after the `/`, but that seems overkill.
2020-05-22 11:11:58 +01:00
Max Schaefer
31c636fa55
Standardise on capitalisation WebSocket.
2020-05-22 11:11:58 +01:00
Max Schaefer
1d910a9622
Merge pull request #148 from owen-mc/syntax-examples-for-ast-classes
...
Add syntax examples to qldoc comments for AST classes
2020-05-22 10:48:18 +01:00
Owen Mansel-Chan
df8bfab6d6
Address review comments
2020-05-22 10:06:23 +01:00
Max Schaefer
e7ad4f9308
Merge pull request #152 from github/jf205-patch-1
...
Link README.md to the CodeQL repo
2020-05-22 09:44:03 +01:00
Owen Mansel-Chan
2c8e4a2b34
Add syntax examples to qldoc comments for AST classes
2020-05-22 09:28:50 +01:00
James Fletcher
e596c988f1
Update README.md
2020-05-21 16:43:04 +01:00
Max Schaefer
27cab43448
Merge pull request #151 from sauyon/remove-binary
...
Remove accidentally committed binary
2020-05-20 22:24:42 +01:00
Max Schaefer
f1b5a18aa2
Merge pull request #109 from porcupineyhairs/WebsocketXss
...
Model websocket read and write functions.
2020-05-20 19:45:25 +01:00
Sauyon Lee
8b9abf1abb
Add main to .gitignore
2020-05-20 09:19:51 -07:00
Sauyon Lee
0b7eea7852
Remove accidentally added binary
2020-05-20 09:19:42 -07:00
Sauyon Lee
581a81ca1a
Add missing licenses for websocket libraries
2020-05-20 09:16:38 -07:00
Sauyon Lee
92aad7ea1e
Fix dependency stubs for websocket framework
2020-05-20 09:01:46 -07:00
Sauyon Lee
a2e2e260b2
Merge branch 'master' into WebsocketXss
2020-05-20 08:57:36 -07:00
Porcupiney Hairs
d1d4c2e492
Golang : Add WebSocket Read and Write Functions.
2020-05-20 20:48:43 +05:30
Sauyon Lee
f599a502fc
Merge pull request #150 from max-schaefer/cleanup-108
...
Various cleanups
2020-05-20 08:13:48 -07:00
Max Schaefer
4a5b29e78f
Add a missing qldoc comment.
2020-05-20 14:37:38 +01:00
Max Schaefer
ed3a06ea5d
Autoformat QL.
2020-05-20 14:35:01 +01:00
Max Schaefer
b871f54e4d
Fix frontend error in ql/test/query-tests/Security/CWE-079.
2020-05-20 14:34:36 +01:00
Max Schaefer
7773828347
Fix frontend errors in ql/test/library-tests/semmle/go/frameworks/Websocket.
2020-05-20 14:34:22 +01:00
Max Schaefer
7e314f037a
Fix frontend errors in ql/test/library-tests/semmle/go/Packages.
2020-05-20 14:27:00 +01:00
Max Schaefer
806cfc7c5e
Merge pull request #149 from max-schaefer/cleanup-130
...
Clean up NoSQL library
2020-05-20 13:55:54 +01:00
Max Schaefer
f5a8e07cf0
Merge pull request #107 from porcupineyhairs/ssrf
...
Add SSRF query to codeql-go
2020-05-20 13:55:07 +01:00
Max Schaefer
9a4bee9448
Add change note.
2020-05-20 10:10:28 +01:00
Max Schaefer
267416f61f
Rename a predicate to clarify that it is MongoDB specific.
2020-05-20 10:08:49 +01:00
Max Schaefer
cc24a8879f
Rewrite a taint step to make more idiomatic use of the data-flow library.
2020-05-20 10:05:43 +01:00
Max Schaefer
8cc76edee4
Rephrase a comment and split up some very long lines.
2020-05-20 10:05:26 +01:00
Max Schaefer
d7b82b2355
Rename a few modules and classes to reflect the fact that NoSQL queries are not usually strings.
2020-05-20 10:04:59 +01:00
Sauyon Lee
f2bbbe30e2
Stub WebSocket dependencies
2020-05-19 19:53:03 +05:30
Porcupiney Hairs
2b5989cff2
Add improvements for codeql-go SSRF query
2020-05-19 19:53:03 +05:30
Max Schaefer
6d93f48933
Merge pull request #147 from owen-mc/redundant-recover
...
Go: Add query for redundant calls to recover
2020-05-19 07:14:27 +01:00
Owen Mansel-Chan
275be36e4a
Update change-notes/2020-05-18-redundant-recover.md
...
Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com >
2020-05-19 06:31:47 +01:00
Owen Mansel-Chan
23a7db5d4d
Minor textual corrections
2020-05-18 17:05:49 +01:00
Owen Mansel-Chan
fbee7fe983
Add new query for redundant calls to recover
2020-05-18 16:13:46 +01:00
Sauyon Lee
e57edccdab
Merge pull request #145 from max-schaefer/allocation-size-overflow-is-big
...
Simplify logic in AllocationSizeOverflow query.
2020-05-15 11:20:01 -07:00
Max Schaefer
8a8082f6ad
Merge pull request #144 from max-schaefer/interface-method-implements
...
Refine `Method.implements` so that interface methods only implement themselves.
2020-05-15 17:01:28 +01:00
Max Schaefer
27cb92fb86
Use .pp() in a few tests selecting types.
2020-05-15 15:54:23 +01:00
Max Schaefer
9c7e46386f
Simplify logic in AllocationSizeOverflow query.
2020-05-15 11:20:11 +01:00
Max Schaefer
d300ec6324
Refine Method.implements so that interface methods only implement themselves.
...
Without this restriction, the two `m`s in the following example are considered to implement each other, even though they aren't logically related:
```go
type I interface {
m()
}
type J interface {
m()
}
type K struct {
I
J
}
```
Previously, interface methods would sometimes implement themselves and sometimes not (see changes to test output for examples).
2020-05-15 11:09:17 +01:00
Max Schaefer
87c1bcad0a
Merge pull request #143 from github/max-schaefer-patch-1
...
Clarify which types have a qualified name.
2020-05-15 08:40:13 +01:00
Max Schaefer
24d8c7ea17
Clarify which types have a qualified name.
2020-05-15 07:31:51 +01:00
Max Schaefer
d41e41812b
Merge pull request #141 from sauyon/reflectedxss-fps
...
ReflectedXss improvements
2020-05-15 07:23:39 +01:00
Sauyon Lee
5e633b2c74
Add EqualityTestNode.getPolarity
2020-05-14 14:38:59 -07:00
Sauyon Lee
5e2b973ac4
Update comment in ReflectedXss test
...
Co-authored-by: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-05-14 14:35:08 -07:00
Sauyon Lee
ee0f3c9fba
Address review comments
2020-05-14 02:30:14 -07:00
Sauyon Lee
804165c9ef
Fix comment in ReflectedXss nonhtmlcontenttype
...
Co-authored-by: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-05-14 02:28:15 -07:00
Max Schaefer
1fbf552ef5
Merge pull request #140 from sauyon/depstubber-update
...
Update dependency stubs
2020-05-14 09:29:17 +01:00
Sauyon Lee
97b3ec5cfc
Update dependency stubs
2020-05-13 10:07:14 -07:00
Sauyon Lee
ac55287210
Merge pull request #138 from max-schaefer/fix-tests
...
Fix frontend errors in two tests and a code example
2020-05-13 08:50:35 -07:00
Sauyon Lee
b8b9ff13f3
Merge pull request #139 from max-schaefer/cleanup-131
...
Cleanup of `io` model
2020-05-13 08:29:45 -07:00
Max Schaefer
d5fcf28e03
Add change note.
...
While we didn't see any new results in the evaluation, this is a fairly substantial amount of changes, so adding a change note is probably justified.
2020-05-13 15:55:52 +01:00
Max Schaefer
e852caea07
Cleanup of Io module.
...
- Undid rename from `Io` to `IO`
- Ensured function signatures in comments have leading `func`
- Removed superfluous `extends Function` clauses
- Renamed a few classes to be more consistent.
2020-05-13 15:55:52 +01:00
Max Schaefer
41b5fc17ab
Inline two single-use predicates.
...
This fixes a TODO.
2020-05-13 15:40:36 +01:00
Max Schaefer
6e58524b78
Fix a typo.
2020-05-13 15:40:31 +01:00
Max Schaefer
ec2314310e
Fix code example in query.
2020-05-13 15:38:48 +01:00
Max Schaefer
ac9e39120b
Fix unused variable in test.
2020-05-13 15:28:49 +01:00
Max Schaefer
e034458574
Fix MongoDB tests.
2020-05-13 15:25:54 +01:00
Sauyon Lee
83a3b6336f
Add change note
2020-05-13 04:31:23 -07:00
Sauyon Lee
748dd6801e
Handle HTTP response writers that are fields
2020-05-13 04:31:07 -07:00
Sauyon Lee
9e5645fa9d
Add similar predicate to SsaWithFields
2020-05-13 03:56:55 -07:00
Sauyon Lee
2089cb4543
Merge pull request #133 from max-schaefer/cleanup-conditional-bypass
...
Cleanup conditional-bypass query
2020-05-13 02:31:13 -07:00
Max Schaefer
005e49fe94
Merge pull request #130 from porcupineyhairs/MongoInjection
...
Golang : Add MongoDB injection support
2020-05-13 09:43:49 +01:00
Sauyon Lee
24e939730a
Merge pull request #134 from max-schaefer/fix-test-errors
...
Fix frontend errors in tests
2020-05-13 01:38:30 -07:00
Max Schaefer
89d633ac3f
Merge pull request #120 from porcupineyhairs/SensitiveActionBypass
...
User-controlled bypass of sensitive action
2020-05-12 19:48:24 +01:00
Max Schaefer
d438b5ec03
Merge pull request #131 from porcupineyhairs/IO
...
Model stdlib's IO package.
2020-05-12 19:41:40 +01:00
Slavomir
84e2a5ddd2
Add experimental library: gin web framework ( #117 )
2020-05-12 14:27:11 +01:00
Max Schaefer
6f21b4030e
Merge pull request #135 from sauyon/tempfile-test
...
Add support for ioutil TempFile and TempDir
2020-05-12 14:25:38 +01:00
Sauyon Lee
21bfaec0d3
TaintedPath: Add change note for tempfiles
2020-05-12 05:44:19 -07:00
Porcupiney Hairs
e51bc42bfb
fix metadata
2020-05-12 17:31:24 +05:30
Sauyon Lee
33e4961c95
ReflectedXss: Add an equality test guard
2020-05-12 04:53:18 -07:00
Sauyon Lee
1ef06e9e40
Add getType to SsaWithFields
2020-05-12 04:52:44 -07:00
Max Schaefer
5dac94d24c
Merge pull request #116 from gagliardetto/CWE-681
...
CWE 681
2020-05-12 11:59:08 +01:00
Slavomir
556f527193
Exclude results in test files
2020-05-12 13:12:47 +03:00
Slavomir
e5e74f34d7
Add note on why the zero is commented out in Lt32BitFlowConfig
2020-05-12 13:06:11 +03:00
Slavomir
623d5b3a97
Add comments
2020-05-12 13:00:50 +03:00
Slavomir
ea7c38c99c
Remove references section from qhelp file
2020-05-12 13:00:27 +03:00
Slavomir
67a7294d10
Simplify and remove deprecated; add severity
2020-05-12 12:51:13 +03:00
Sauyon Lee
58e41e9302
ReflectedXss: More broadly exclude values with a constant prefix
2020-05-11 15:49:37 -07:00
Max Schaefer
a55c828fe4
Update ql/src/experimental/CWE-840/ConditionalBypass.ql
...
Co-authored-by: porcupineyhairs <61983466+porcupineyhairs@users.noreply.github.com >
2020-05-11 15:26:30 +01:00
Porcupiney Hairs
d0061bfd4b
Golang : Add MongoDB injection support
...
This PR adds support for MongoDB injection to the existing SQL injection query.
This models the official Golang MongoDB driver.
A brief summary of changes made in this query are :
1. A `NoSQL.qll` files has been created to model a `NoSQLQueryString`.
2. An entry is added in `go.qll` by default as I find these changes may be generally useful.
3. Library tests along with there expected outputs are added.
4. Query tests are added. However, I am unable to add the expected output as qltest
can't find depstubber. However, these can be easily added. I have created a separate
codeql-go database with the same files and ran the query against the same. I can see
there should be 14 correct results added from this PR.
2020-05-11 19:55:48 +05:30
Porcupiney Hairs
9b53ad3b3c
model IO package
2020-05-11 19:39:01 +05:30
Porcupiney Hairs
c1856ba260
fix tests
2020-05-11 19:32:28 +05:30
Max Schaefer
4a7171d91e
Fix frontend errors in BadRedirectCheck tests.
2020-05-11 11:45:21 +01:00
Max Schaefer
17dd99d326
Fix frontend errors in Mux tests.
2020-05-11 11:45:08 +01:00
Max Schaefer
df9902512f
More cleanup in help and tests.
...
In particular, I have copied over the examples referenced in the qhelp into the test folder and made sure they compile.
2020-05-11 11:07:38 +01:00
Max Schaefer
287dda0ab5
Minor cleanup in query and tests.
2020-05-11 11:05:40 +01:00
Max Schaefer
78201a2c5f
Rename ConditionBypass* to ConditionalBypass* for consistency with other languages.
2020-05-11 10:47:00 +01:00
Max Schaefer
3e830b69b5
Merge pull request #121 from porcupineyhairs/conditionBypass
...
User-controlled bypass of a comparision
2020-05-11 10:41:33 +01:00
Slavomir
5df81d3210
Apply suggestions from code review
...
Co-authored-by: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-05-11 12:37:14 +03:00
Sauyon Lee
181c03ebf3
Add support for ioutil TempFile and TempDir
2020-05-10 18:25:55 -07:00
Porcupiney Hairs
b32ac2a47f
fix tests
2020-05-11 04:51:17 +05:30
Porcupiney Hairs
4aba80b0bd
include changes from review
2020-05-11 04:05:41 +05:30
Porcupiney Hairs
3d10ec7e51
remove some obvious false positives and include changes from review
2020-05-11 03:13:01 +05:30
Max Schaefer
0e779d0b64
Merge pull request #62 from max-schaefer/update-data-flow
...
Port recent data-flow improvements
2020-05-07 16:07:33 +01:00
Max Schaefer
994536e93b
Add change note.
2020-05-07 11:46:31 +01:00
Max Schaefer
70f87b59d2
Data flow: Support stores into nodes that are not PostUpdateNodes.
...
cf https://github.com/github/codeql/pull/3312
2020-05-06 19:43:27 +01:00
Max Schaefer
fd2e618be2
Data flow: No more summaries
...
cf https://github.com/github/codeql/pull/3110
2020-05-06 19:43:27 +01:00
Max Schaefer
968d4d9cdd
Revert the join order fix from https://github.com/github/codeql/pull/2872 .
...
cf https://github.com/github/codeql/pull/3202
2020-05-06 19:43:27 +01:00
Max Schaefer
f2b43f65f9
Data flow: Exclude param-param flow through identical params.
...
cf https://github.com/Semmle/ql/pull/3060
2020-05-06 19:43:27 +01:00
Max Schaefer
aabe2f2f82
Data flow: No magic in returnFlowCallableCand.
...
cf https://github.com/Semmle/ql/pull/3142
2020-05-06 19:43:27 +01:00
Max Schaefer
c9ba6dd672
Fix up hasLocationInfo predicate.
2020-05-06 19:43:27 +01:00
Max Schaefer
5cd9168e4d
Data flow: Refactoring + performance improvements
...
cf https://github.com/Semmle/ql/pull/2903
2020-05-06 19:43:27 +01:00
Max Schaefer
96120e1e35
Update expected output.
2020-05-06 19:43:27 +01:00
Max Schaefer
8d10a8dd5b
Fix bug in type pruning.
...
cf https://github.com/Semmle/ql/pull/3020
2020-05-06 19:43:27 +01:00
Max Schaefer
d008d2a6a8
Fix performance issue in partial paths exploration.
...
cf https://github.com/Semmle/ql/pull/3021
2020-05-06 19:43:27 +01:00
Max Schaefer
1d4a993d87
Merge pull request #132 from max-schaefer/extends-this-class
...
Fix copy-pasted typo.
2020-05-06 19:42:55 +01:00
Max Schaefer
d6a5a72c01
Fix copy-pasted typo.
2020-05-06 13:54:28 +01:00
Sauyon Lee
164149b29a
Merge pull request #129 from max-schaefer/fix-argument-post-update-nodes
...
Fix and improve taint-tracking through function arguments
2020-05-06 02:57:01 -07:00
Max Schaefer
08f5451fce
Address review comments.
2020-05-06 07:32:15 +01:00
Max Schaefer
9f59777cc9
Merge pull request #119 from jcreedcmu/jcreed/jump-to-def-ide
...
Add queries for ide search.
2020-05-05 15:10:58 +01:00
Jason Reed
5653889a39
Exclude IDE queries from query suites.
2020-05-05 09:22:44 -04:00
Max Schaefer
2fb3d39f61
Merge pull request #128 from sauyon/mux
...
Add support for Mux library
2020-05-05 13:57:37 +01:00
Max Schaefer
a79f2b4f44
Add change note for CleartextLogging.
2020-05-05 12:05:09 +01:00
Max Schaefer
b177d58c88
Tweak test.
...
The query under test isn't a `@problem` query, so we should refer to "alerts".
2020-05-05 12:05:09 +01:00
Max Schaefer
60a6c96863
Simplify modeling of NewContent.
2020-05-05 12:05:09 +01:00
Max Schaefer
5a96b0e8ac
Add two function models for handling MIME APIs.
2020-05-05 12:05:09 +01:00
Max Schaefer
be94f2b9e6
Improve and extend various standard-library function models.
2020-05-05 12:05:09 +01:00
Max Schaefer
ca0d9cc66e
Merge pull request #127 from max-schaefer/clean-up-email-injection
...
Clean up `EmailInjection.qll` and related libraries.
2020-05-05 11:56:43 +01:00
Sauyon Lee
a841077cbe
Add support for Mux library
2020-05-05 03:25:08 -07:00
Max Schaefer
54f10157b0
Update ql/src/semmle/go/frameworks/Email.qll
...
Co-authored-by: Sauyon Lee <sauyon@github.com >
2020-05-05 11:24:19 +01:00
Max Schaefer
e632c75de3
Add support for taint models involving "backwards" taint propagation from results to arguments.
2020-05-04 16:36:38 +01:00
Max Schaefer
5e8e51993e
Simplify SmtpData.
2020-05-04 16:36:38 +01:00
Max Schaefer
5b0c48e332
Add taint models for fmt.Fprintf and io.WriteString.
2020-05-04 16:36:38 +01:00
Max Schaefer
d0e8d6efda
Fix post-update nodes for function arguments.
2020-05-04 16:36:38 +01:00
Max Schaefer
b1899374b9
Merge pull request #126 from max-schaefer/new-style-change-notes
...
Switch to new-style change notes.
2020-05-04 15:42:24 +01:00
Max Schaefer
04a19b7150
Clean up EmailInjection.qll and related libraries.
2020-05-04 09:13:23 +01:00
porcupineyhairs
657108d598
Add Email Content Injection Query ( #108 )
...
This adds a query for Email content injection issues.
It models the Golang's net/smtp library as well as
the Sendgrid email library (581 stars).
2020-05-04 07:54:30 +01:00
Max Schaefer
980241603b
Switch to new-style change notes.
2020-05-01 07:57:13 +01:00
Sauyon Lee
cd1d699208
Improve BadRedirectCheck query
...
We now look for a path from the variable being checked to a redirect.
Additionally, several sources of false positives have been eliminated, and a model of relevant parts of the Macaron framework has been added.
2020-05-01 07:13:16 +01:00
Slavomir
836b8965e2
Beautify .qhelp file
2020-04-30 16:59:30 +03:00
Slavomir
127cd3d003
Refactor query
2020-04-30 16:46:19 +03:00
Slavomir
b9fae2e5d0
Add newline
2020-04-30 16:46:19 +03:00
Slavomir
6f1f60896a
autoformat
2020-04-30 16:46:19 +03:00
Slavomir
c9c7e6c0a9
Add more test cases: add negative cases
2020-04-30 16:46:19 +03:00
Slavomir
d713087364
Mention in qhelp file: CWE-190: Integer Overflow or Wraparound
2020-04-30 16:46:19 +03:00
Slavomir
4517d4513f
Update qhelp file and go examples
2020-04-30 16:46:19 +03:00
Slavomir
f093226dab
Move query to experimental
2020-04-30 16:46:19 +03:00
Slavomir
57ac636d60
Change alert message
2020-04-30 16:46:19 +03:00
Slavomir
fe661b227c
Improve alert message inside select statement
2020-04-30 16:46:19 +03:00
Slavomir
05314a19ee
Add comments, improve naming
2020-04-30 16:46:19 +03:00
Slavomir
b176c4ad19
Add ParseFloat, ParseInt, ParseUint
2020-04-30 16:46:19 +03:00
Slavomir
8ecc2b9523
add comments, improve naming, refactor
2020-04-30 16:46:19 +03:00
Slavomir
fd9e3a005e
fix comments
2020-04-30 16:46:19 +03:00
Slavomir
6d2c5be196
rename OverflowingConversionExpr to NumericConversionExpr
2020-04-30 16:46:19 +03:00
Slavomir
74481c4bad
CWE-681: initial commit
2020-04-30 16:46:19 +03:00
Max Schaefer
dd4f1ca70b
Merge pull request #125 from gagliardetto/exec-syscall
...
Add syscall functions to SystemCommandExecutors
2020-04-30 07:21:28 +01:00
Sauyon Lee
417102c120
Merge pull request #124 from github/rc/1.24
...
Merge rc/1.24 into master
2020-04-29 12:27:56 -07:00
Slavomir
a357121e89
Fix test by removing a unix-only func; add windows-only funcs
2020-04-29 19:17:24 +03:00
Slavomir
a93477c301
Add syscall functions to SystemCommandExecutors
2020-04-29 18:31:07 +03:00
Max Schaefer
d3fea0f171
Merge pull request #123 from sauyon/dependency-licenses
...
Add license files for dependency stubs
2020-04-29 14:45:25 +01:00
Sauyon Lee
157139bb46
Add license files for dependencies
2020-04-29 04:04:38 -07:00
Sauyon Lee
6953d3b2ba
Merge pull request #122 from max-schaefer/receiver-output
...
Fix `getExitNode` for receiver outputs.
2020-04-29 01:25:43 -07:00
Max Schaefer
a1222344eb
Add tests.
2020-04-29 07:55:24 +01:00
Max Schaefer
0546c527af
Fix getExitNode for receiver outputs.
2020-04-28 21:41:29 +01:00
Porcupiney Hairs
9948596e2c
User-controlled bypass of a comparision
2020-04-28 23:24:28 +05:30
Porcupiney Hairs
92576e9c11
User-controlled bypass of sensitive action
2020-04-28 23:18:58 +05:30
Jason Reed
6489538623
Add queries for ide search.
...
This enables jump-to-definition and find-references in the VS Code
extension, for golang source archives.
2020-04-28 12:00:24 -04:00
Max Schaefer
3a39085e62
Merge pull request #114 from sauyon/action-update
...
Use CodeQL version 2.1.1 for tests
2020-04-27 09:12:37 +01:00
Sauyon Lee
b3c363d1c2
Try setting destination for expand-archive
2020-04-23 22:39:19 -07:00
Sauyon Lee
38f744ddd6
Action: Use expand-archive on Windows
2020-04-23 20:04:19 -07:00
Sauyon Lee
78bffa96b3
Use CodeQL version 2.1.1
2020-04-23 18:41:42 -07:00
Sauyon Lee
b3beca0a1c
Merge pull request #111 from github/rc/1.24
...
Merge rc/1.24 into master
2020-04-23 17:46:12 -07:00
Sauyon Lee
ae21ac23c1
Merge pull request #105 from max-schaefer/fail-tests-with-errors
...
Add consistency query flagging tests with unexpected frontend errors
2020-04-20 01:31:43 -07:00
Max Schaefer
97b1d3a57c
Fix extraction of error positions for paths containing colon.
2020-04-20 08:04:16 +01:00
Max Schaefer
c19c16c655
Merge pull request #106 from github/1.24/SD-61-Go-finalize-notes
...
1.24 release: finalize change notes for Go
2020-04-17 15:03:47 +01:00
Felicity Chapman
70525d0e64
Minor editorial changes
2020-04-17 13:19:11 +01:00
Max Schaefer
c15094ab9e
Mark frontend errors as expected in ImposibleInterfaceNilCheck.
2020-04-17 09:51:06 +01:00
Max Schaefer
ef497afc20
Mark a frontend error in DeadStoreOfLocal tests as expected.
2020-04-17 09:51:06 +01:00
Max Schaefer
13762bd76c
Mark frontend errors in Types/unknownFunction.go as expected.
2020-04-17 09:51:06 +01:00
Max Schaefer
c6a37fdf1d
Add consistency query flagging unexpected frontend errors.
2020-04-17 09:51:06 +01:00
Max Schaefer
bf42271d14
Add convenience predicate to class Error.
2020-04-17 09:39:26 +01:00
Max Schaefer
05a6f21aea
Merge pull request #104 from github/rc/1.24
...
Merge rc/1.24 into master.
2020-04-16 10:53:50 +01:00
Max Schaefer
00546804e3
Merge pull request #103 from max-schaefer/fix-disabled-certificate-check-qldoc
...
Fix misformatted header comment for `DisabledCertificateCheck`.
2020-04-16 09:59:55 +01:00
Max Schaefer
245b99dd42
Fix misformatted header comment for DisabledCertificateCheck.
2020-04-16 08:43:33 +01:00
Max Schaefer
699208adae
Merge pull request #102 from marcogario/integeroverflow_qhelp
...
Integeroverflow.qhelp: use paragraphs within sections
2020-04-15 14:09:55 +01:00
Marco Gario
14e4e2d40f
Integeroverflow.qhelp: use paragraphs within sections
2020-04-15 12:15:25 +01:00
Sauyon Lee
882805207a
Merge pull request #98 from max-schaefer/extract-frontend-errors
...
Add support for extracting frontend errors
2020-04-15 01:40:31 -07:00
Sauyon Lee
777818e019
Merge pull request #99 from github/rc/1.24
...
Merge rc/1.24 into master
2020-04-15 01:33:46 -07:00
Max Schaefer
d452fc04ad
Merge pull request #101 from sauyon/bufio-change-note
...
Add change note for buffered i/o
2020-04-15 08:48:58 +01:00
Sauyon Lee
8ca310e6b6
Add change note for buffered i/o
2020-04-15 00:37:50 -07:00
Sauyon Lee
d3e62b0480
Merge pull request #100 from max-schaefer/add-missing-change-notes
...
Add two missing change notes.
2020-04-15 00:33:54 -07:00
Max Schaefer
95c2cb19cf
Add two missing change notes.
2020-04-15 07:57:47 +01:00
Max Schaefer
8341ce0d46
Merge pull request #97 from max-schaefer/fix-frontend-errors
...
Fix a few compiler errors in tests
2020-04-14 17:17:03 +01:00
Max Schaefer
dd9738f9a6
Better fix for frontend errors in DeadStoreOfLocal tests.
2020-04-14 16:07:23 +01:00
Max Schaefer
bc9c47ad5e
Merge pull request #96 from sauyon/stub-deps
...
Use the depstubber for test stubbing
2020-04-14 15:24:22 +01:00
Max Schaefer
013d88e511
Fix frontend errors in DisabledCertificateCheck tests.
2020-04-14 10:51:29 +01:00
Max Schaefer
cb2f15f770
Fix frontend errors in AllocationSizeOverflow test.
2020-04-14 10:51:29 +01:00
Max Schaefer
590f146477
Fix frontend errors in DeadStoreOfLocal tests.
2020-04-14 10:51:29 +01:00
Max Schaefer
1bedd9df5d
Fix frontend errors in MistypedExponentiation test.
2020-04-14 10:51:29 +01:00
Max Schaefer
127f232c3d
Fix frontend errors in FlowSteps test.
2020-04-14 10:51:29 +01:00
Max Schaefer
d565a26d5b
Add QL library for working with Go frontend errors.
2020-04-14 10:29:36 +01:00
Max Schaefer
f2d11538ce
Add upgrade script.
2020-04-14 10:29:36 +01:00
Sauyon Lee
a3ad54e8b9
Add tests for ginkgo test files
2020-04-13 22:59:23 -07:00
Sauyon Lee
385603a7a1
Use stubber for SQL tests
2020-04-13 22:59:22 -07:00
Sauyon Lee
06559e0ebf
Use stubber for SystemCommandExecution tests
...
Also remove redundant tests
2020-04-13 22:59:21 -07:00
Sauyon Lee
42d16ca80b
Use stubber for CWE-643 tests, and test example
2020-04-13 22:59:20 -07:00
Sauyon Lee
adc8730f1f
Use stubber for CWE-312 tests
2020-04-13 22:59:18 -07:00
Sauyon Lee
5e765a9ca1
Use stubber for CWE-089 tests
2020-04-13 20:15:24 -07:00
Max Schaefer
c38edf77ce
Update stats.
2020-04-09 16:39:47 +01:00
Max Schaefer
a837d5f4ce
Add support for extracting Go frontend errors.
2020-04-09 16:39:47 +01:00
Max Schaefer
cf8eff543c
Merge pull request #94 from max-schaefer/more-testing-frameworks
...
Recognise more testing frameworks
2020-04-09 11:57:46 +01:00
Max Schaefer
d344687f52
Add change note.
2020-04-09 09:41:09 +01:00
Max Schaefer
1bf835f156
Add tests.
2020-04-09 09:41:02 +01:00
Max Schaefer
d5c8570bfc
Recognise imports of well-known testing frameworks.
2020-04-09 09:40:53 +01:00
Max Schaefer
e30e5685b2
Fix recognition of Test, Benchmark, and Example as test cases.
2020-04-09 09:40:25 +01:00
Max Schaefer
be9e9720d5
Introduce class TestFile and use it.
2020-04-09 09:16:45 +01:00
Max Schaefer
43309b98fd
Merge pull request #93 from max-schaefer/autoformat
...
Autoformat QL and Go
2020-04-08 08:06:46 +01:00
Max Schaefer
96ee5f1c4e
Merge pull request #92 from max-schaefer/baselib-extractor
...
Add extractor field to QL packs.
2020-04-08 07:48:25 +01:00
Max Schaefer
1fe5e7f901
Autoformat Go files.
2020-04-08 07:32:43 +01:00
Max Schaefer
ddf2bdb44b
Autoformat all QL.
2020-04-08 07:32:43 +01:00
Max Schaefer
c9ef6f77a2
Merge pull request #91 from max-schaefer/disabled-certificate-check
...
Add new query DisabledCertificateCheck.
2020-04-08 07:11:15 +01:00
Max Schaefer
90dfebb4bd
Add extractor field to QL packs.
2020-04-07 14:41:54 +01:00
Max Schaefer
f074d89b54
Merge pull request #88 from max-schaefer/readsField
...
Improve handling of field reads through pointer
2020-04-07 09:02:10 +01:00
Max Schaefer
8fba9a98d4
Add new query DisabledCertificateCheck.
2020-04-07 09:01:41 +01:00
Max Schaefer
2ec335fb1a
Autoformat.
2020-04-07 07:16:50 +01:00
Max Schaefer
fb661aadcc
Merge pull request #90 from github/p0-patch-1
...
Delete outdated COPYRIGHT file
2020-04-06 15:32:50 +01:00
Max Schaefer
42bc5353e3
Refine our modelling of test functions and split it out into a separate library.
2020-04-06 14:46:13 +01:00
Pavel Avgustinov
c45a5cf1f2
Update copyright date
2020-04-06 14:37:09 +01:00
Pavel Avgustinov
291150a755
Delete outdated COPYRIGHT file
...
This seems to be copied from Semmle/ql, and it claims the wrong license.
2020-04-06 14:35:44 +01:00
Sauyon Lee
a663eaae23
Merge pull request #89 from max-schaefer/extractor-profiling
...
Add environment variables for dumping CPU and memory profiles.
2020-04-06 03:33:08 -07:00
Max Schaefer
1f7441e027
Make readsField and friends work modulo implicit dereferences, like writesField.
2020-04-06 11:06:46 +01:00
Max Schaefer
76f2748cbc
Teach SsaWithFields to properly handle implicit dereferences.
2020-04-06 09:23:07 +01:00
Max Schaefer
4a1071cac6
Merge pull request #77 from robertbrignull/code_scanning_suites
...
Add code-scanning suites
2020-04-06 09:14:58 +01:00
Max Schaefer
5721d1fb3e
Merge pull request #86 from sauyon/dependency-fix
...
Allow dependencies to match imports of subpackages
2020-04-03 20:35:07 +01:00
Max Schaefer
c240fdbd45
Merge pull request #87 from max-schaefer/more-qldoc
...
Add missing QlDoc.
2020-04-03 19:43:38 +01:00
Sauyon Lee
e1a7269a45
Allow dependencies to match imports of subpackages
2020-04-03 10:42:19 -07:00
Max Schaefer
d13d2f27e6
Add missing QlDoc.
2020-04-03 17:08:56 +01:00
Max Schaefer
407493094d
Merge pull request #75 from sauyon/ssrf-refinement
...
SSRF query refinements
2020-04-03 09:31:24 +01:00
Sauyon Lee
dcd6aaf69a
Alphabetize change notes
2020-04-03 00:01:19 -07:00
Sauyon Lee
ea3a7e8038
Apply suggestions from code review
...
Co-Authored-By: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-04-02 23:58:39 -07:00
Sauyon Lee
e27947e280
Add comment for new url concatenation sanitizer
2020-04-02 23:58:39 -07:00
Sauyon Lee
3c02b3ab74
Add SafeUrlFlowCustomizations doc comment
2020-04-02 23:58:38 -07:00
Sauyon Lee
c68e509508
OpenUrlRedirect: Fix some comments
2020-04-02 23:58:37 -07:00
Sauyon Lee
4e5b17e18d
Sanitize hostname if there is a slash and a previous component
2020-04-02 23:58:36 -07:00
Sauyon Lee
4b3982154a
Add a SafeUrlFlow configuration
2020-04-02 23:58:35 -07:00
Sauyon Lee
4bcffe2d47
RequestForgery: Add a safe URL sanitizer
2020-04-02 23:58:34 -07:00
Sauyon Lee
1c859a8991
Address review comments
2020-04-02 23:58:33 -07:00
Sauyon Lee
3577d75607
RequestForgery: Add change note
2020-04-02 23:58:17 -07:00
Sauyon Lee
89a03c8b67
RequestForgery: Add high precision
2020-04-02 23:49:58 -07:00
Sauyon Lee
830c3fce2a
RequestForgery: Add tests
2020-04-02 23:49:57 -07:00
Sauyon Lee
314787956b
Allow write base to be inside an implicit dereference
2020-04-02 23:49:56 -07:00
Sauyon Lee
e9b0f88946
RequestForgery: Add taint step for URL Host assignment
2020-04-02 23:49:55 -07:00
Sauyon Lee
12928d9f17
HTTP: Add model for Client.Do
2020-04-02 23:49:55 -07:00
Sauyon Lee
6876eabf54
RequestForgery: Add query help
2020-04-02 23:49:54 -07:00
Sauyon Lee
b23c75afb6
RequestForgery: move query from experimental
2020-04-02 23:49:53 -07:00
Max Schaefer
77c282824e
Merge pull request #81 from gagliardetto/system-executors
...
Expand system executors (continuation of #70 )
2020-04-03 07:24:05 +01:00
Sauyon Lee
f9610f22e7
Merge pull request #85 from max-schaefer/codeql-stats
...
Use CodeQL for creating stats
2020-04-02 10:57:20 -07:00
Max Schaefer
b28cd112fe
Merge pull request #83 from max-schaefer/max-goroutines
...
Introduce official environment variable for goroutine limiting.
2020-04-02 13:49:21 +01:00
Max Schaefer
325bb7ca23
Merge pull request #84 from shati-patel/move-documentation
...
Docs: Move "CodeQL for Go" out of this repo
2020-04-02 13:48:51 +01:00
Shati Patel
3af3548c30
Remove "learn-ql" folder
2020-04-02 11:56:15 +01:00
Shati Patel
6126d32d82
Remove .rst files from this repo
2020-04-02 11:35:19 +01:00
Shati Patel
3a12c1c2d4
Docs: Add README with links to new docs location
2020-04-02 11:35:14 +01:00
Slavomir
b5f14d1296
Add awk and similar
2020-04-02 13:07:43 +03:00
Slavomir
81bc3c03a9
Add more commands
2020-04-02 13:03:22 +03:00
Max Schaefer
510b6070c9
Introduce official environment variable for goroutine limiting.
...
We've had to tell people how to do this, so we should have a name for it that doesn't refer to a defunct company.
2020-04-02 10:45:52 +01:00
Max Schaefer
ddb6f2ca6a
Update stats.
2020-04-02 10:15:20 +01:00
Max Schaefer
17a8c722cd
Use CodeQL for creating stats.
2020-04-02 10:15:10 +01:00
Slavomir
32beebd059
Apply suggestions from code review
...
Co-Authored-By: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
Co-Authored-By: Sauyon Lee <sauyon@github.com >
2020-04-02 12:09:06 +03:00
Sauyon Lee
bc59fa40d7
Merge pull request #73 from intrigus-lgtm/make-CWE-643-supported
...
Make cwe 643 supported
2020-04-01 17:45:45 -07:00
Sauyon Lee
eba8dd0a36
Merge pull request #82 from github/max-schaefer-patch-1
...
Improve autobuilder logging
2020-04-01 09:07:55 -07:00
Sauyon Lee
c2eb3f5d6b
Merge pull request #80 from max-schaefer/build-command-env-var
...
Introduce `CODEQL_GO_EXTRACTOR_BUILD_COMMAND` as an alias for `LGTM_INDEX_BUILD_COMMAND`.
2020-04-01 09:07:31 -07:00
Max Schaefer
611751a9c3
Improve autobuilder logging
2020-04-01 15:31:50 +01:00
intrigus
be21d49cf2
Add precision to query
2020-04-01 16:15:24 +02:00
intrigus
3a381b2fbf
Add change note
2020-04-01 16:15:09 +02:00
intrigus
a524cc4716
Properly match methods defined in classes
2020-04-01 16:04:24 +02:00
intrigus
615fe09ed7
Format go test stubs
2020-04-01 15:52:55 +02:00
Slavomir
a25a21eb11
Add change-note
2020-04-01 15:14:22 +03:00
Slavomir
33c18b0d11
expand system executors
2020-04-01 15:12:48 +03:00
Max Schaefer
efc9ecefc8
Introduce CODEQL_GO_EXTRACTOR_BUILD_COMMAND as an alias for LGTM_INDEX_BUILD_COMMAND.
...
We've occasionally had to tell people to set this variable manually, so we might as well have an alias that doesn't refer to a soon-to-be obsolete product.
2020-04-01 09:35:57 +01:00
intrigus
4924be54a7
Fix one test method
2020-03-31 16:46:29 +02:00
intrigus
0586fe9235
Add missing stubs in vendor/
2020-03-31 16:46:08 +02:00
Max Schaefer
590f01d0c2
Add environment variables for dumping CPU and memory profiles.
...
These are intentionally undocumented for now.
2020-03-31 07:50:06 +01:00
Max Schaefer
1c40d6c1ce
Merge pull request #78 from sauyon/1.14-change-note
...
Add change notes for Go 1.14 support
2020-03-31 07:34:26 +01:00
intrigus
66451a776d
Add test cases for all libraries
...
Note: This is currently missing appropriate vendoring
so will probably fail for now.
2020-03-30 23:44:25 +02:00
intrigus
e18d15070a
Switch to jbowtie/gokogiri
2020-03-30 23:42:44 +02:00
intrigus
b097826dd8
Add missing class qualifiers
2020-03-30 23:42:13 +02:00
intrigus
051f17ce67
Fix class name
2020-03-30 23:37:37 +02:00
Sauyon Lee
3d3f35cc48
Add change notes for Go 1.14 support
2020-03-30 13:45:37 -07:00
Max Schaefer
487b1e3f80
Merge pull request #76 from max-schaefer/even-more-qldoc
...
Add Qldoc for the last few remaining predicates.
2020-03-30 11:58:28 +01:00
Max Schaefer
28ed803fae
Data flow: Add module doc comment for TaintTrackingImpl.qll
...
cf https://github.com/Semmle/ql/pull/3155
2020-03-30 11:21:53 +01:00
Max Schaefer
bb34c91b38
Add Qldoc for the last few remaining predicates.
...
Apart from a missing module doc comment for `TaintTrackingImpl.qll` which we'll need to synchronize with the other languages (https://github.com/Semmle/ql/pull/3155 ), this gets us to 100% Qldoc coverage.
2020-03-30 10:38:25 +01:00
intrigus
26cfa93947
Ignore type incompatible sinks
2020-03-27 21:32:53 +01:00
Robert Brignull
df4c686921
add code scanning suites
2020-03-27 17:14:28 +00:00
intrigus
8278dd358e
Try to fix test
2020-03-27 16:13:00 +01:00
intrigus
21feb9d996
Add byte slice type
2020-03-27 15:37:36 +01:00
intrigus
d609c0ca43
Shorten example code
2020-03-27 15:31:20 +01:00
intrigus
c5a1185939
Apply style suggestions
2020-03-27 15:29:21 +01:00
intrigus
b24c23389c
Don't match unexported functions
2020-03-27 15:21:00 +01:00
Max Schaefer
cf6e255a6d
Merge pull request #74 from sauyon/http-formvalue
...
HTTP Library Improvements
2020-03-27 14:07:30 +00:00
intrigus-lgtm
5eaaa4264a
Apply suggestions from code review
...
Co-Authored-By: Sauyon Lee <sauyon@github.com >
2020-03-27 13:42:30 +01:00
Sauyon Lee
080d14ea50
Add a test for the Read taint step
2020-03-27 04:22:13 -07:00
Sauyon Lee
4747524fee
Address review comments
...
Co-Authored-By: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-03-27 04:15:30 -07:00
Sauyon Lee
05761bc2cd
Address review comments
2020-03-27 04:03:30 -07:00
Sauyon Lee
a4f1e2b527
Add a model for Read methods on io.Reader
2020-03-26 18:57:44 -07:00
intrigus
be50db1cc7
Move XPath injection query to supported query
...
The XPath injection query is moved to the supported queries.
Removed unnecessary code from the go test file
2020-03-26 20:19:58 +01:00
intrigus
03023e8205
Add XPath model to default imports
2020-03-26 20:19:19 +01:00
intrigus
35a6fdb589
Add XPath framework models
2020-03-26 20:18:16 +01:00
Sauyon Lee
1f4d67b77b
OpenUrlRedirect: Whitelist some more fields and methods
2020-03-26 07:20:51 -07:00
Sauyon Lee
541c82a7f3
HTTP: Add some more untrusted fields and methods
...
Also, fix up broken tests.
2020-03-26 07:20:14 -07:00
Sauyon Lee
e1b0bed6b3
Merge pull request #72 from max-schaefer/improve-virtual-call-resolution
...
Refine virtual call targets by local reasoning where possible
2020-03-26 06:00:59 -07:00
Max Schaefer
46a1a4e010
Add a test.
2020-03-25 20:34:34 +00:00
Max Schaefer
e6bdc1809b
Update ql/src/semmle/go/dataflow/internal/DataFlowDispatch.qll
...
Co-Authored-By: Sauyon Lee <sauyon@github.com >
2020-03-25 15:04:48 +00:00
Max Schaefer
13b61383e2
Merge pull request #65 from sauyon/openredirect-fps
...
OpenUrlRedirect: Expand safe URL flow configuration
2020-03-25 15:04:21 +00:00
Sauyon Lee
fbc2499118
OpenUrlRedirect: Add change note for fixed FPs
2020-03-25 04:01:17 -07:00
Sauyon Lee
f77d46f296
Address review comments.
2020-03-25 04:01:15 -07:00
Sauyon Lee
bd5f0b01cf
Fix tests
2020-03-25 04:01:14 -07:00
Sauyon Lee
9321ff9110
OpenUrlRedirect: Add support for url.Host reassignments
2020-03-25 04:01:14 -07:00
Sauyon Lee
5f83dbd07b
OpenUrlRedirect: Exclude header sources
2020-03-25 04:01:13 -07:00
Sauyon Lee
49aa43bd49
Make header Get and Values calls into taint steps
2020-03-25 04:01:12 -07:00
Sauyon Lee
83a417f52e
OpenUrlRedirect: Use a taint-tracking safe URLs
2020-03-25 04:01:11 -07:00
Sauyon Lee
932840b0a3
Address review comments.
2020-03-25 04:01:10 -07:00
Sauyon Lee
fd88d913f7
Fix tests
2020-03-25 04:01:09 -07:00
Sauyon Lee
cc13a5d618
OpenUrlRedirect: Expand safe URL flow configuration
...
Also add some more tests
2020-03-25 04:01:08 -07:00
Max Schaefer
6edbe74c09
Revert "Add queries to inspect and measure dispatch differences."
...
This reverts commit 752ee3909a .
2020-03-25 10:43:05 +00:00
Max Schaefer
4ca87b84db
Merge pull request #68 from adityasharad/go/request-forgery
...
Add experimental query for request forgery.
2020-03-25 09:09:34 +00:00
Aditya Sharad
c44e5379df
Experimental: Remove query precision for now.
...
Address review comment.
2020-03-24 10:57:51 -07:00
Aditya Sharad
4f32d6651c
Experimental: Add sanitiser edge for request forgery.
...
Consider a URL string sanitised if the hostname cannot be controlled.
This approach is used by URL redirection queries.
2020-03-24 10:57:51 -07:00
Aditya Sharad
f984532236
Experimental: Add query for request forgery.
...
Tracks the flow of tainted data from untrusted input to the URL of an HTTP request.
Ported from the corresponding query for JavaScript, though currently limited in scope.
Includes companion libraries for customisation.
2020-03-24 10:57:51 -07:00
Aditya Sharad
d41e6a9d85
Model HTTP request functions in net/http package.
2020-03-24 10:57:51 -07:00
Aditya Sharad
b057ce8d46
Concepts: Add HTTP::ClientRequest class and module.
...
Extensible model of client requests to a URL.
Ported from the CodeQL JavaScript library.
2020-03-24 10:57:51 -07:00
Max Schaefer
330f11c2a3
Merge pull request #71 from intrigus-lgtm/patch-1
...
Fix error in Qldoc
2020-03-24 16:55:22 +00:00
intrigus-lgtm
24b3133e0c
Fix error in Qldoc
2020-03-24 17:53:51 +01:00
Max Schaefer
8dda4bd97f
Merge pull request #66 from intrigus-lgtm/CWE-643
...
CWE-643 XPathInjection on Go
2020-03-24 10:53:57 +00:00
Sauyon Lee
81e13473db
Merge pull request #69 from max-schaefer/issue-72
...
Track taint through element writes.
2020-03-24 03:41:05 -07:00
Max Schaefer
752ee3909a
Add queries to inspect and measure dispatch differences.
2020-03-24 09:34:42 +00:00
Max Schaefer
084fa80a57
Refine virtual call targets by local reasoning where possible.
2020-03-24 09:34:42 +00:00
intrigus
1f635806b3
Fix copy-paste errors, remove debugging code
2020-03-23 16:49:45 +01:00
intrigus-lgtm
9187bacd3c
Apply suggestion from code review
...
Use getUnderlyingType() to account for named aliases.
Co-Authored-By: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-03-23 16:45:56 +01:00
Sauyon Lee
4ff3177fae
Merge pull request #67 from max-schaefer/more-qldoc
...
Add missing Qldoc for modules.
2020-03-23 05:29:40 -07:00
Max Schaefer
62b79721ea
Track taint through element writes.
...
This adds a taint step from `pred` to (the post-update node) of `succ` in `succ[idx] = pred` and its syntactic variants.
Unlike for structs, where partially tainted values are quite common, the theory is that arrays, maps, and slices are usually either completely tainted or completely clean.
2020-03-23 09:15:01 +00:00
intrigus
d81c9b145e
Update query help to use goxpath
2020-03-20 21:38:46 +01:00
intrigus
948b79df87
Update xpath example, use goxpath package
2020-03-20 21:38:46 +01:00
intrigus
c7ead88b91
Restructure query, add default sanitizer
2020-03-20 21:38:46 +01:00
intrigus-lgtm
ec40cf0379
Apply suggestions from review
...
Co-Authored-By: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-03-20 21:38:02 +01:00
Max Schaefer
60fe6f4390
Add missing Qldoc for modules.
2020-03-20 17:36:08 +00:00
intrigus
d6ff6b74c5
CWE-643 XPathInjection on Go
2020-03-19 22:26:37 +01:00
Max Schaefer
37aaba10b7
Merge pull request #64 from sauyon/examples-in-json
...
Add examples qlpack.yml to CodeQL manifest
2020-03-19 07:54:39 +00:00
Sauyon Lee
f60f6ea7d0
Add examples qlpack.yml to CodeQL manifest
2020-03-18 09:30:45 -07:00
Max Schaefer
f53732ec5a
Merge pull request #39 from sauyon/go1.14
...
Go 1.14 support
2020-03-18 10:08:50 +00:00
Max Schaefer
0a59470640
Fix tests. ( #3 )
2020-03-18 02:10:24 -07:00
Max Schaefer
60ce9c5acd
Merge pull request #59 from max-schaefer/go-pg
...
Add model of `go-pg/pg`.
2020-03-18 07:35:23 +00:00
Max Schaefer
ad1324d2dd
Add test.
2020-03-17 12:08:42 +00:00
Max Schaefer
49c5779112
Add model of go-pg/pg.
2020-03-17 12:08:42 +00:00
Sauyon Lee
e9b47298ed
Merge pull request #61 from max-schaefer/better-method-sets
...
Reformulate `Method.hasQualifiedName` in terms of method sets
2020-03-17 07:46:19 -04:00
Max Schaefer
8cadc94f49
Clarify behaviour of getMethod on struct types.
2020-03-17 10:58:58 +00:00
Max Schaefer
74bcfdd01c
Remove an unused and potentially confusing predicate.
2020-03-16 13:24:57 +00:00
Max Schaefer
0fc7febd1d
Add another test.
2020-03-13 15:54:39 +00:00
Max Schaefer
f41151350a
Merge pull request #60 from sauyon/bitwise-xor-fps
...
MistypedExponentiation: Add a heuristic to reduce FPs
2020-03-13 15:46:03 +00:00
Max Schaefer
8898858fff
Add tests.
2020-03-13 14:19:27 +00:00
Max Schaefer
5175f1dcbe
Take promoted methods into account when computing method sets.
2020-03-13 14:19:27 +00:00
Max Schaefer
d0c6206a6a
Reformulate hasQualifiedName in terms of method sets.
2020-03-13 14:19:27 +00:00
Sauyon Lee
78ad006e68
Merge pull request #55 from max-schaefer/tainted-arithmetic
...
Add new query `AllocationSizeOverflow`.
2020-03-13 07:16:54 -07:00
Max Schaefer
39fa6052e6
Also treat second argument to make (slice capacity) as an allocation size.
2020-03-13 12:17:53 +00:00
Max Schaefer
864c85e886
Fix typo.
2020-03-13 10:27:58 +00:00
Max Schaefer
b2f1da8942
Simplify a condition.
2020-03-13 10:27:58 +00:00
Max Schaefer
d66888e651
Make query more extensible.
2020-03-13 10:27:58 +00:00
Max Schaefer
ea36d49218
Add new query AllocationSizeOverflow.
2020-03-13 10:18:51 +00:00
Sauyon Lee
ea5e6a324d
Add change note
2020-03-13 03:10:55 -07:00
Sauyon Lee
630d0cef89
Address review comments
2020-03-12 09:13:52 -07:00
Sauyon Lee
6e681f829b
MistypedExponentiation: Add a heuristic to reduce FPs
2020-03-12 09:13:52 -07:00
Max Schaefer
2c751f2945
Merge pull request #58 from max-schaefer/desemmlify
...
Docs: Remove some Semmle references.
2020-03-12 16:05:48 +00:00
Sauyon Lee
b64a43f578
Merge pull request #57 from max-schaefer/trap.gz
...
Gzip TRAP files
2020-03-12 06:24:32 -07:00
Max Schaefer
270ae0926a
Docs: Remove some Semmle references.
2020-03-12 10:57:06 +00:00
Max Schaefer
6b0ba750e6
Put gzip writer on top of bufio writer.
2020-03-12 08:40:22 +00:00
Max Schaefer
d7d5447689
Merge pull request #46 from sauyon/force-extract-methods
...
Extract methods when they don't exist
2020-03-12 08:16:44 +00:00
Sauyon Lee
2e8958583b
Merge pull request #56 from max-schaefer/issue-66
...
Standardize experimental contribution
2020-03-11 14:18:35 -07:00
Max Schaefer
8901ba62e0
Gzip TRAP files.
2020-03-11 15:14:37 +00:00
Max Schaefer
8136ebbb91
Merge pull request #54 from sauyon/vendor-support
...
extractor: Use -mod=vendor when a vendor directory exists
2020-03-11 11:36:49 +00:00
Max Schaefer
b3022c9fc8
Standardise RangeAnalysis.qll.
...
This brings the library in line with our usual syntactic conventions regarding QLDoc and names. I've also made a few superficial simplifications here and there.
Overall, the code would benefit from being rewritten to make use of the data-flow graph, but that is a larger undertaking.
2020-03-11 11:20:59 +00:00
Max Schaefer
a95b9c8e02
Rename a few files and clean up wording.
2020-03-11 11:04:42 +00:00
Max Schaefer
2fd925fe90
Autoformat.
2020-03-11 10:47:23 +00:00
Sauyon Lee
5056b5f161
Apply review comments.
...
Co-Authored-By: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2020-03-11 03:26:18 -07:00
Sauyon Lee
1f83aa4586
Add a -mod=vendor change note
2020-03-11 03:10:35 -07:00
Max Schaefer
f1d489f6f9
Merge pull request #51 from singleghost/master
...
Add integer overflow detection support for codeql-go.
2020-03-11 10:00:39 +00:00
Sauyon Lee
57b874e047
extractor: Only skip dependency installation when vendor folder is detected
2020-03-11 02:59:33 -07:00
Max Schaefer
a8c1731f9d
Merge pull request #50 from sauyon/uintptr
...
Make uintptrtype a subclass of unsignedintegertype
2020-03-11 09:57:00 +00:00
Sauyon Lee
ecd4c42428
extractor: Factor out method extraction
...
This fixes a subtle bug where the underlying interface type was used
as the receiver when constructing method labels, causing some database
inconsistencies.
2020-03-10 22:01:16 -07:00
Sauyon Lee
0daf8c1fa3
extractor: Extract methods when their labels don't exist
2020-03-10 20:36:49 -07:00
Sauyon Lee
ccae530508
extractor: minor refactoring to use variables
2020-03-10 20:36:13 -07:00
Sauyon Lee
0aa46becf9
extractor: Use -mod=vendor when a vendor directory exists
2020-03-10 16:44:03 -07:00
singleghost
2aa2f608a3
Move files related to integer overflow detection under the src/experimental folder
2020-03-10 19:02:05 +08:00
Max Schaefer
7ec7b17ce7
Merge pull request #53 from sauyon/close-files
...
extractor: Close files even when writes fail
2020-03-10 09:38:02 +00:00
Sauyon Lee
79ab831776
extractor: Close files even when writes fail
2020-03-10 00:52:33 -07:00
Sauyon Lee
cdf3bc4fa0
Merge pull request #52 from max-schaefer/issue-48
...
Improve taint-tracking through pointers and other fixes
2020-03-09 06:36:43 -07:00
Sauyon Lee
2428efcb6d
Make @uintptrtype a @unsignedintegertype
2020-03-09 04:40:02 -07:00
Sauyon Lee
5b81775670
Fix constant values test data
2020-03-09 04:40:01 -07:00
Max Schaefer
4dca00e99c
Merge pull request #45 from sauyon/go-mod-libs
...
Go.mod extraction libraries and tests
2020-03-09 09:40:41 +00:00
singleghost
77ec4c913f
Add integer overflow detection support for codeql-go.
...
I wrote a ql library which can perform range analysis on expression and
can detect whether an arithmetic operation may overflow. I wrote this library with reference to the `SimpleRangeAnalysis.qll` for C language. I hope this helps a little bit for those who want to detect integer overflow issues in code.
2020-03-07 21:34:38 +08:00
Sauyon Lee
2d879458ba
Merge pull request #49 from max-schaefer/more-function-outputs
...
Make `FunctionOutput` more useful
2020-03-06 09:41:40 -08:00
Max Schaefer
1be0cc57a8
Add test case from https://github.com/github/codeql-go/issues/48 .
2020-03-06 17:35:50 +00:00
Max Schaefer
bcb9ce2498
Add another test for StringBreak.
2020-03-06 17:35:50 +00:00
Max Schaefer
bf6865b96a
Add model of ioutil.ReadAll
2020-03-06 17:35:50 +00:00
Max Schaefer
f599243a34
Conflate references and referents more thoroughly in taint tracking.
2020-03-06 17:35:50 +00:00
Max Schaefer
aa8bc972d9
Address review comments.
2020-03-06 15:03:45 +00:00
Sauyon Lee
3d88032f81
Address review comments.
...
Co-authored-by: Max Schaefer <max-schaefer@github.com >
2020-03-06 06:51:30 -08:00
Sauyon Lee
43fbf47da3
Add a change note about go.mod extraction
2020-03-06 06:51:28 -08:00
Sauyon Lee
555b0a9527
Add a GoModFile class
2020-03-06 06:51:27 -08:00
Sauyon Lee
38596dddc0
Address review comments.
...
Co-authored-by: Max Schaefer <max-schaefer@github.com >
2020-03-06 06:51:26 -08:00
Sauyon Lee
34f34e2241
GoModExpr.qll: Rename getOffsetToken to GoModLine.getToken
...
Also add getRawToken to do what getToken did before, and fix up
documentation.
2020-03-06 06:51:25 -08:00
Sauyon Lee
4b9cc87c2e
Add test for replace line with versions
2020-03-06 06:51:24 -08:00
Sauyon Lee
25577a8108
Remove DependencyCustomizations
2020-03-06 06:51:24 -08:00
Sauyon Lee
78239accd5
Dependencies: Make getAnImport() more precise
...
In particular, ensure that the go file importing the dependency is under
the directory of the file where the dependency is declared.
Co-authored-by: Max Schaefer <max-schaefer@github.com >
2020-03-06 06:51:23 -08:00
Sauyon Lee
b27e63ba83
Address review comments
...
Co-authored-by: Max Schaefer <max-schaefer@github.com >
2020-03-06 06:51:22 -08:00
Sauyon Lee
dd3f98c549
extractor: Don't log directory being walked for go.mod files
2020-03-06 06:51:21 -08:00
Sauyon Lee
5911b7005a
Add tests for dependencies library
2020-03-06 06:51:20 -08:00
Sauyon Lee
dddc8cecd4
Add go.mod expression tests
2020-03-06 06:51:19 -08:00
Sauyon Lee
6c78490bbe
Add libraries modeling dependencies
2020-03-06 06:51:18 -08:00
Sauyon Lee
d92e49fb17
Add libraries for go.mod expressions
2020-03-06 06:51:17 -08:00
Max Schaefer
f875afca53
Merge pull request #47 from sauyon/use-bufio
...
Use bufio and don't sync FS
2020-03-06 10:59:30 +00:00
Max Schaefer
3a7910da5a
Introduce (un-)marshaling functions as a concept and instantiate it with the functions in encoding/json.
2020-03-06 10:07:54 +00:00
Max Schaefer
9bcbfb2911
Fix flow step from global functions to their use.
...
How does anything work.
2020-03-06 09:41:35 +00:00
Max Schaefer
a7ecb50a34
Add taint-tracking model for append.
2020-03-06 09:41:35 +00:00
Max Schaefer
4f061005cb
Add a taint-tracking model for copy.
2020-03-06 09:41:35 +00:00
Max Schaefer
3f8d2117d8
Introduce post-update nodes for arguments with a mutable type.
2020-03-06 09:41:35 +00:00
Max Schaefer
b99c63d180
Factor out an auxiliary predicate.
2020-03-06 09:41:35 +00:00
Max Schaefer
af2c7aae5d
Don't rely on flow through function models in definition of PostUpdateNode.
2020-03-06 09:41:35 +00:00
Max Schaefer
185d0910c3
Sharpen stringConcatStep to exclude addition.
2020-03-06 09:41:35 +00:00
Sauyon Lee
c027bbaadf
Use buffered writers
2020-03-05 21:12:15 -08:00
Sauyon Lee
14e758a6ea
HTTP: Add model for Header.Values()
2020-03-05 13:44:16 -08:00
Sauyon Lee
c243bb4243
Add tests for go1.14 overlapping embedded methods
2020-03-05 13:44:15 -08:00
Sauyon Lee
85c8893f57
Action: Use go 1.14
2020-03-05 13:44:14 -08:00
Sauyon Lee
a758ececd9
go.mod: Use go 1.14 and update dependencies
2020-03-05 13:44:11 -08:00
Max Schaefer
b8338896be
Merge pull request #33 from sauyon/extract-go-mod
...
Add extraction for go.mod files
2020-03-05 09:38:21 +00:00
Sauyon Lee
f2358a0a86
Find all go.mod files before extraction
2020-03-04 16:08:55 -08:00
Sauyon Lee
cca762dbc0
gomodextractor.go: Emit pseudo comment groups to table
2020-03-04 06:26:44 -08:00
Sauyon Lee
e75497ed3b
update stats sha and stats
2020-03-04 06:26:43 -08:00
Sauyon Lee
db4efd6124
Add support for extracting go.mod files
2020-03-04 06:26:42 -08:00
Sauyon Lee
89caafb0e1
labels.go: Make label generation slightly more uniform
2020-03-04 06:21:20 -08:00
Sauyon Lee
70e916376c
labels.go: Make LocalID more generic
2020-03-04 06:21:19 -08:00
Sauyon Lee
a403d60acc
Add go mod dependency
...
Also update tools dependency to latest master
2020-03-04 06:21:18 -08:00
Sauyon Lee
66a3d40348
Fix typos in tables.go
2020-03-04 06:21:17 -08:00
Sauyon Lee
d694d59757
Merge pull request #44 from max-schaefer/remove-uniqueness
...
Remove a mistaken uniqueness annotation.
2020-03-04 06:20:58 -08:00
Max Schaefer
1ae0dd46ec
Clarify method identity.
2020-03-04 12:53:37 +00:00
Max Schaefer
6a3730ead2
Merge pull request #43 from sauyon/phony-testdb
...
Makefile: make testdb target phony
2020-03-04 12:08:09 +00:00
Sauyon Lee
c3b57e4e74
Makefile: make testdb target phony
2020-03-04 03:27:11 -08:00
Max Schaefer
264478f4b8
Remove a mistaken uniqueness annotation.
2020-03-04 10:34:55 +00:00
Sauyon Lee
5e71a04fdf
Merge pull request #42 from max-schaefer/experimental-guidelines
...
Add guidelines for experimental CodeQL queries and libraries.
2020-03-02 10:22:41 -08:00
Sauyon Lee
2dc42b8814
Merge pull request #41 from max-schaefer/interface-embedding
...
Fix `NamedType.getMethod` to take interface embedding into account.
2020-03-02 10:21:24 -08:00
Max Schaefer
56e07356fc
Update ql/test/experimental/README.md
...
Co-Authored-By: Felicity Chapman <felicitymay@github.com >
2020-03-02 10:20:07 +00:00
Max Schaefer
cef017071f
Move guidelines into ql folder.
2020-03-02 09:23:06 +00:00
Max Schaefer
2629f55d95
Add guidelines for experimental CodeQL queries and libraries.
2020-02-28 14:43:00 +00:00
Max Schaefer
90f1a7da75
Fix NamedType.getMethod to take interface embedding into account.
2020-02-28 10:37:14 +00:00
Max Schaefer
2eba7dee6f
Add new table methodhosts associating interface methods with named types.
...
In particular, methods from embedded interfaces will be associated with the same named type as those from the outer interface, even though their receiver types may be different.
2020-02-28 10:24:04 +00:00
Max Schaefer
6dfd5fd934
Extend Types tests to cover interfaces.
2020-02-28 10:22:59 +00:00
Sauyon Lee
545379c050
Merge pull request #40 from max-schaefer/phonify-extractor
...
Make extractor targets phony.
2020-02-27 09:53:27 -08:00
Max Schaefer
7148b66d31
Make extractor targets phony.
2020-02-27 12:32:05 +00:00
Max Schaefer
a52e33ecc0
Merge pull request #38 from sauyon/use-text
...
.gitattributes: Use -text instead of binary
2020-02-27 08:27:31 +00:00
Sauyon Lee
8e909a49e9
.gitattributes: Use -text instead of binary
...
Also only add attributes to go files under the ql directory
2020-02-27 00:23:56 -08:00
Sauyon Lee
fe4003fc69
Merge pull request #37 from max-schaefer/clarify-field-identity
...
Clarify field identity
2020-02-26 11:49:29 -08:00
Max Schaefer
9bf5a31351
Clarify field identity.
...
Like-named fields declared in identical types are identical. This can be a little confusing, since such fields will have multiple declarations and multiple locations, so it's worth calling out explicitly in the documentation.
2020-02-26 10:10:47 +00:00
Sauyon Lee
b931539f68
Merge pull request #36 from max-schaefer/remove-unused-predicate
...
Remove an unused predicate.
2020-02-25 09:40:42 -08:00
Max Schaefer
34c66c4245
Remove an unused predicate.
2020-02-25 10:46:09 +00:00
Sauyon Lee
7a918efbf8
Merge pull request #34 from max-schaefer/receiver-flow
...
Propagate data flow through receivers
2020-02-24 23:58:28 -08:00
Sauyon Lee
836146a3bf
Merge pull request #35 from max-schaefer/field-package
...
Make `Field.getPackage()` behave sensibly.
2020-02-24 23:52:02 -08:00
Max Schaefer
0f99842f34
Make Field.getPackage() behave sensibly.
...
Previously it was never defined, now it gives you the package of the type the field is declared in. This means we have to override `Field.hasQualifiedName/2` to avoid a field `f` in a package `pkg` being considered to have qualified name `pkg.f`.
2020-02-24 12:14:51 +00:00
Max Schaefer
5fbae15d0e
Don't track receivers into virtual calls.
2020-02-24 09:56:09 +00:00
Max Schaefer
d1e020f74d
Treat receiver variables as parameters.
...
The inter-procedural data-flow libraries expects this to be the case, but I actually never got round to implementing it.
2020-02-24 09:56:09 +00:00
Max Schaefer
77613a38c5
Add test, which does not work yet.
2020-02-24 09:55:42 +00:00
Sauyon Lee
4d58ebbae6
Merge pull request #32 from max-schaefer/update-data-flow
...
Port recent data-flow improvements
2020-02-21 09:45:14 -08:00
Sauyon Lee
bfbd08c51d
Merge pull request #31 from max-schaefer/string-break-source
...
Sharpen the sources for `StringBreak`.
2020-02-21 09:35:58 -08:00
Max Schaefer
6251f1141c
Simplify getACallee().
2020-02-21 11:14:35 +00:00
Max Schaefer
285f392a12
Sharpen the sources for StringBreak.
...
`json.Marshal` returns two results, we only want to consider the first one as a source.
2020-02-21 10:19:09 +00:00
Max Schaefer
7230912e56
Track simple call contexts in nodeCand[Fwd]1.
...
See https://github.com/Semmle/ql/pull/2822 .
2020-02-21 09:30:53 +00:00
Max Schaefer
90cdf4857f
Improve join-order in pathStep predicate.
...
See https://github.com/Semmle/ql/pull/2872 .
2020-02-21 09:29:13 +00:00
Max Schaefer
e9447a0e16
Merge pull request #29 from max-schaefer/fix-missing-qldoc
...
Add missing QLDoc for public elements.
2020-02-21 08:11:27 +00:00
Max Schaefer
6375be7089
Address review comment.
2020-02-20 20:36:58 +00:00
Max Schaefer
044def4e1f
Merge pull request #243 from sauyon/incomplete-hostname-fix
...
IncompleteHostnameRegexp: Use a reluctant regexp
2020-02-20 20:33:56 +00:00
Sauyon Lee
b851fe0c05
Merge pull request #30 from max-schaefer/build_command-override
...
Ensure `LGTM_INDEX_BUILD_COMMAND` takes precedence over build-command guessing.
2020-02-20 12:25:03 -08:00
Max Schaefer
dc6a8917a4
Add missing QLDoc for public elements.
2020-02-20 13:59:12 +00:00
Max Schaefer
d7e6c59fab
Merge pull request #28 from sauyon/test-fixes
...
Add Action for testing using the CodeQL CLI
2020-02-20 09:50:30 +00:00
Max Schaefer
bdf757b8ac
Ensure LGTM_INDEX_BUILD_COMMAND takes precedence over build-command guessing.
2020-02-20 08:59:56 +00:00
Sauyon Lee
3e6a96d21b
IncompleteHostnameRegexp: Use a reluctant regexp
...
This should help make results more comprehensible by including the
maximal string after an unescaped dot.
2020-02-19 13:04:16 -08:00
Sauyon Lee
6b51fefb1e
Add Action for testing using the CodeQL CLI
2020-02-19 12:23:03 -08:00
Sauyon Lee
1e56ffbf90
Remove test actions
2020-02-19 11:29:33 -08:00
Sauyon Lee
1b7186347d
Merge pull request #25 from max-schaefer/library-overview
...
Add library overview
2020-02-19 01:39:14 -08:00
Max Schaefer
4b371ac85a
Remove rogue full stop.
2020-02-19 08:14:15 +00:00
Max Schaefer
2764b70364
Data flow: generalize flow-through summaries.
2020-02-18 14:30:25 +00:00
Max Schaefer
31557e8c19
Rename ArrowExpr to RecvExpr and address further review comments.
2020-02-18 08:39:31 +00:00
Max Schaefer
c47f9da0f9
Merge pull request #241 from shati/cookbook-changenotes
...
Mention Go cookbook queries in 1.24 change notes
2020-02-17 15:39:16 +00:00
Shati Patel
6b0f8a4088
Mention cookbook queries in 1.24 changenotes
2020-02-17 14:38:46 +00:00
Max Schaefer
d3288f19f9
Improve data-flow performance.
2020-02-17 09:49:13 +00:00
Max Schaefer
ec9ba8aa7f
Address review comments.
2020-02-17 09:23:08 +00:00
Max Schaefer
f60b5daf94
Apply suggestions from code review
...
Co-Authored-By: Shati Patel <42641846+shati-patel@users.noreply.github.com >
Co-Authored-By: Sauyon Lee <sauyon@github.com >
2020-02-17 08:48:16 +00:00
Max Schaefer
65c116538c
Write library overview.
2020-02-14 12:50:04 +00:00
Max Schaefer
9379f74308
Merge pull request #24 from sauyon/runelit
...
Add a RuneLit alias for CharLit
2020-02-13 09:07:38 +00:00
Max Schaefer
c7d29311e6
Merge pull request #232 from sauyon/makefile-improvements
...
Makefile improvements
2020-02-13 08:51:51 +00:00
Max Schaefer
69eae987d1
Merge pull request #240 from sauyon/rune-literal-string-value
...
Make rune literal string value its value
2020-02-13 08:47:56 +00:00
Sauyon Lee
ed3971af47
Makefile: make tools-ARCH no longer build the tokenizer
2020-02-12 15:52:43 -08:00
Sauyon Lee
bf2b655586
Makefile: make all target build extractor instead of tools
2020-02-12 15:52:42 -08:00
Sauyon Lee
dc9d790bd3
Makefile: Make better use of built-in variables
2020-02-12 15:52:42 -08:00
Sauyon Lee
1262935085
Update stats
2020-02-12 15:52:41 -08:00
Sauyon Lee
01f4bfe4b8
Makefile: Use codeql to create stats database
2020-02-12 15:52:40 -08:00
Sauyon Lee
92025ad9bd
Add a RuneLit alias for CharLit
...
Also change the doc comment on CharLit to RuneLit
2020-02-12 15:17:14 -08:00
Sauyon Lee
eb990c9de7
BadRedirectCheck: Use new rune literal string values
2020-02-12 15:14:59 -08:00
Sauyon Lee
74bb4f707d
Make rune literal string value its value
2020-02-12 15:14:58 -08:00
Max Schaefer
cb1d2935d4
Merge pull request #23 from github/sauyon-actions-1
...
Implement Actions CI
2020-02-12 20:41:59 +00:00
Sauyon Lee
1365da2224
examples/variable: Select declaration as well as the variable
...
This makes the test platform-independent
2020-02-12 10:41:58 -08:00
Sauyon Lee
fdb7852cf6
Force git not to mangle line endings for files relevant to tests
2020-02-10 16:11:56 -08:00
Sauyon Lee
22029410f0
Create an action workflow for CodeQL tests
2020-02-10 16:11:55 -08:00
Sauyon Lee
ae96bd88bc
Merge pull request #239 from max/virtual-dispatch
...
Call-graph API cleanup
2020-02-10 15:05:13 -08:00
Max Schaefer
acd27cdee6
Merge pull request #238 from sauyon/semmle-to-github
...
Rename the go module to github.com/github/codeql-go
2020-02-10 21:02:05 +00:00
Max Schaefer
6aa0d631dd
Address review comments.
2020-02-10 20:59:13 +00:00
Sauyon Lee
677ed6ebf4
Fix tests to use codeql-go repository name
2020-02-10 11:00:01 -08:00
Sauyon Lee
5417102c37
Rename the go module to github.com/github/codeql-go
2020-02-10 11:00:00 -08:00
Max Schaefer
d6f3005e0e
Merge branch '235-head'
2020-02-07 20:12:47 +00:00
Max Schaefer
5571f1eac7
Rename Comparison to ComparisonExpr.
2020-02-07 16:24:42 +00:00
Max Schaefer
ad7dfa258c
Rename ParenExpr.getExpression() to getExpr() for consistency with similar predicates in other classes.
2020-02-07 16:24:42 +00:00
Sauyon Lee
1a21c14f2f
Remove build ignore from HardcodedCredentials example
2020-02-07 03:13:14 -08:00
Sauyon Lee
e4d228fa0f
Fix CleartextStorage tests
2020-02-07 03:13:13 -08:00
Sauyon Lee
6300fdf85e
Remove accidentally added CleartextStorage tests
2020-02-07 03:13:12 -08:00
Sauyon Lee
559ac8f0d2
Fix squirrel test build
2020-02-07 03:12:19 -08:00
Max Schaefer
72de4728a2
Suppress unhelpful magic.
2020-02-07 11:09:33 +00:00
Max Schaefer
69edfe08df
Make regular expression for format strings more precise.
2020-02-07 11:05:44 +00:00
Max Schaefer
8b0d271717
Locally resolve calls to function expressions.
2020-02-07 11:05:44 +00:00
Max Schaefer
f6305f019d
Minor refactoring.
2020-02-07 11:05:44 +00:00
Max Schaefer
46a8f8c8ed
Remove Function.getACallExpr.
2020-02-07 11:05:44 +00:00
Max Schaefer
39b7272241
Teach Function.getACall to take virtual dispatch into account.
2020-02-07 11:05:44 +00:00
Max Schaefer
84002f585e
Remove CallExpr.getACallee().
2020-02-07 11:05:44 +00:00
Max Schaefer
cf0e38b22c
Move virtual dispatch resolution from CallExpr to CallNode and generalise it very slightly.
2020-02-07 11:05:44 +00:00
Max Schaefer
253a394ae0
Make CallNode.getCalleeName() more robust to missing type information.
2020-02-07 11:05:44 +00:00
Max Schaefer
93a84684a5
Remove predicate CallExpr.calls.
...
This sort of reasoning should be done at the data-flow level.
2020-02-07 11:05:44 +00:00
Max Schaefer
9400442bea
Add call graph test.
...
This test uses annotations to encode the expected output directly into the source, hence the `.expected` files are trivial.
2020-02-07 11:05:41 +00:00
Sauyon Lee
5dbebe44f5
Package tests: also select raw database path
2020-02-07 02:25:26 -08:00
Sauyon Lee
2cb61911c3
Package tests: Limit to specific packages
2020-02-07 02:23:28 -08:00
Sauyon Lee
9a9561bb12
Remove vendored path prefix of vendored packages
2020-02-07 02:17:54 -08:00
Sauyon Lee
c94f5dafb3
Merge pull request #237 from Semmle/go-build-env-windows
...
Fix extractor build on Windows.
2020-02-06 09:06:33 -08:00
Max Schaefer
d18eb9717a
Fix environment setup on Windows.
2020-02-06 14:28:16 +00:00
Max Schaefer
61ee9a45ca
Merge pull request #234 from sauyon/reflectedxss-fixes
...
ReflectedXss: Remove FPs from constant prefix Fprintfs
2020-02-06 09:22:44 +00:00
Sauyon Lee
39f5376eed
ReflectedXss: Add change note for Fprintf FPs
2020-02-05 19:07:42 -08:00
Sauyon Lee
0dca13a5d9
Address review comments
2020-02-04 11:13:41 -08:00
Sauyon Lee
87865afa42
ReflectedXss: Remove FPs from constant prefix Fprintfs
2020-02-03 16:00:33 -08:00
Sauyon Lee
3c88eab84c
Merge pull request #229 from max/string-break
...
Add query to find unsafe quoting
2020-02-03 09:47:36 -08:00
Max Schaefer
af3d91ffd3
Add query StringBreak.
2020-02-03 09:01:40 +00:00
Max Schaefer
63ca382a0c
Reorganise modelling of string concatenation.
2020-02-03 09:01:40 +00:00
Sauyon Lee
da2924251b
Merge pull request #230 from max/remove-deprecated-flow-predicates
...
Remove deprecated flow predicates.
2020-01-30 11:29:05 -08:00
Max Schaefer
3afce956ab
Remove deprecated flow predicates.
2020-01-30 11:45:19 +00:00
Max Schaefer
69a91b537f
Add change note for autobuilder changes
...
https://git.semmle.com/Semmle/go/pull/210 did not include a change note.
2020-01-30 11:36:23 +00:00
Max Schaefer
ef60f1cbf7
Merge pull request #210 from sauyon/autobuilder-run-make
...
autobuilder: run build if relevant files exist
2020-01-29 16:32:43 +00:00
Max Schaefer
8bb769b4f9
Merge pull request #228 from sauyon/codeql-test
...
Makefile: Make extractor-common extractor target
2020-01-29 09:23:53 +00:00
Max Schaefer
be183596c8
Merge pull request #211 from sauyon/open-redirect-fps
...
OpenUrlRedirect: resolve some FPs
2020-01-29 09:18:07 +00:00
Sauyon Lee
7676a56af6
Makefile: Make extractor-common extractor target
2020-01-28 14:38:15 -08:00
Sauyon Lee
41d04f3d96
Revert "Add DataFlow2"
...
This reverts commit 6a0203f33303847d9e7006ca67b1dba31428748b.
2020-01-28 13:01:37 -08:00
Sauyon Lee
478f906d7a
HTTP: Use Field.getQualifiedName in UserControlledRequestField
...
Also autoformat.
2020-01-28 13:01:36 -08:00
Sauyon Lee
d2e5322b94
Apply review comments
2020-01-28 13:01:35 -08:00
Sauyon Lee
3eee780fdd
TaintTracking: minor functionNodeStep call improvement
...
Co-Authored-By: Max Schaefer <max@semmle.com >
2020-01-28 13:01:34 -08:00
Sauyon Lee
9af436566f
OpenUrlRedirect: Use a data-flow configuration to track whole URLs
2020-01-28 13:01:33 -08:00
Sauyon Lee
a2b5bb85ab
OpenUrlRedirect: Fix test compilation
2020-01-28 13:01:19 -08:00
Sauyon Lee
e17f548780
Add DataFlow2
2020-01-28 12:59:47 -08:00
Sauyon Lee
30d2fb0b7f
TaintTracking: Make functionModelStep take a FunctionModel
...
This makes using only some function models easier.
2020-01-28 12:59:46 -08:00
Sauyon Lee
260b33be7e
OpenUrlRedirect: Add untrusted methods
...
Also use more up-to-date data-flow APIs
2020-01-28 12:59:45 -08:00
Sauyon Lee
abfdd7ee1e
OpenUrlRedirect: make functions like isValidRedirect barrier guards
2020-01-28 12:59:44 -08:00
Sauyon Lee
82635a46ad
OpenUrlRedirect: only make some parts of the URL untrusted
2020-01-28 12:59:43 -08:00
Max Schaefer
2b92cd5ba5
Merge pull request #209 from sauyon/bad-redirect-sanitiser
...
Bad redirect sanitiser
2020-01-28 20:11:46 +00:00
Sauyon Lee
aa33595b0f
Address review comments
2020-01-28 08:26:37 -08:00
Sauyon Lee
497bfeee83
BadRedirectSanitizer: Use SsaWithFields instead of ValueEntity
2020-01-27 17:33:54 -08:00
Sauyon Lee
f897f68ead
SsaWithFilds: Add a getQualifiedName predicate
2020-01-27 17:33:53 -08:00
Sauyon Lee
a31ad88fc9
BadRedirectSanitizer: Transition to using data-flow API
2020-01-27 17:33:53 -08:00
Sauyon Lee
abc9438cd3
Apply suggestions from code review
...
Co-Authored-By: Max Schaefer <max@semmle.com >
2020-01-27 17:33:52 -08:00
Sauyon Lee
3a73658a9c
BadRedirectSanitizer: Bind e to hp
...
Address doc review comments
2020-01-27 17:33:51 -08:00
Sauyon Lee
aa28724f7c
Add BadRedirectCheck query
2020-01-27 17:33:50 -08:00
Sauyon Lee
9c6aa80718
Move OpenUrlRedirect tests into their own directory
2020-01-27 17:33:49 -08:00
Sauyon Lee
c889cb3501
Add getAnOperand to OperatorExpr
2020-01-27 17:33:48 -08:00
Sauyon Lee
edecb4e128
Merge pull request #227 from max/redundant-expr-bug
...
Fix hash-consing of literals
2020-01-27 11:35:40 -08:00
Max Schaefer
3c1a68ee8f
Fix hash-consing of literals.
...
We shouldn't rely on the literal value given in the `literals` table, but use the exact value (where available) instead.
2020-01-27 12:05:48 +00:00
Sauyon Lee
496ad5d051
Merge pull request #226 from max/fix-classify-files-regex
...
Fix regex in ClassifyFiles.
2020-01-24 21:01:01 -08:00
Sauyon Lee
6e4880bc53
Merge pull request #220 from max/example-queries
...
Add example queries
2020-01-24 09:42:31 -08:00
Max Schaefer
d293388172
Add failing test case for RedundantExpr.
2020-01-24 16:20:08 +00:00
Max Schaefer
77b86150d6
Fix regex in ClassifyFiles.
...
`Comment.getText()` does not include the delimiter.
2020-01-24 14:05:13 +00:00
Max Schaefer
c30b1d98ea
Address review comments.
2020-01-24 10:26:59 +00:00
Max Schaefer
ebea811a83
Add example queries.
2020-01-24 10:26:59 +00:00
Max Schaefer
9507a22f48
Merge pull request #213 from sauyon/codeql-test
...
Use codeql for testing and add binary cross compilation support
2020-01-24 09:40:47 +00:00
Sauyon Lee
2bd88d5b61
Merge pull request #225 from max/impossible-interface-nil-check-robustness
...
Make ImpossibleInterfaceNilCheck more robust.
2020-01-23 16:06:03 -08:00
Sauyon Lee
3a53269a52
Merge pull request #223 from max/update-dataflow
...
Add support for taint-getter/setter summaries in data flow.
2020-01-23 16:03:05 -08:00
Sauyon Lee
a6a8375ae5
Merge pull request #224 from max/make-implicit-deref-explicit
...
Make implicit dereferences explicit
2020-01-23 00:50:18 -08:00
Max Schaefer
47104a3db8
Add explanatory comment.
2020-01-23 08:14:57 +00:00
Max Schaefer
5895c6ac69
Fix typo.
...
Co-Authored-By: Sauyon Lee <sauyon@github.com >
2020-01-23 08:10:20 +00:00
Sauyon Lee
fe23f88468
Merge pull request #221 from max/cleanup
...
Minor fixes
2020-01-22 00:52:58 -08:00
Max Schaefer
fe56c207a3
Make ImpossibleInterfaceNilCheck more robust.
...
It no longer flags alerts that may be simply caused by missing type information.
2020-01-21 10:04:57 +00:00
Max Schaefer
d78ba06a8d
Add change note.
2020-01-21 09:56:59 +00:00
Max Schaefer
baeae0f69c
Add a few variants to test.
2020-01-21 09:56:59 +00:00
Max Schaefer
6671b61fd3
Model panic from out-of-bounds index expression.
2020-01-21 09:56:59 +00:00
Max Schaefer
f42a2b060c
Take implicit dereferences in index and slice expressions into account as well.
2020-01-21 09:56:59 +00:00
Max Schaefer
a4f5ad7412
Refactor implementation of SliceNode.
2020-01-21 09:56:59 +00:00
Max Schaefer
44b9bcf7a1
Autoformat.
2020-01-21 09:56:59 +00:00
Max Schaefer
64049d8f3d
Make taint tracking less syntactic.
2020-01-21 09:56:59 +00:00
Max Schaefer
9f897132f2
Update HTTP library.
2020-01-21 09:56:59 +00:00
Max Schaefer
a2879dc754
Model implicit dereferences in data flow.
2020-01-21 09:56:59 +00:00
Max Schaefer
ba9d2fb2eb
Add IR instructions to model implicit pointer dereferences.
2020-01-21 09:56:59 +00:00
Max Schaefer
efc5f10f07
Streamline definition of UserControlledRequestField.
2020-01-21 09:56:59 +00:00
Max Schaefer
39b28a4969
Make CallNode.getReceiver() less syntactic.
2020-01-21 09:56:59 +00:00
Max Schaefer
ef964632be
Remove CallExpr.getQualifier() and its single, pointless, use.
2020-01-21 09:56:59 +00:00
Max Schaefer
8fc414b93f
Autoformat.
2020-01-21 09:56:59 +00:00
Max Schaefer
1d33a619d9
Add failing test case.
2020-01-20 20:46:12 +00:00
Max Schaefer
5eb95c7895
Add support for taint-getter/setter summaries in data flow.
2020-01-20 11:29:12 +00:00
Sauyon Lee
32fa033a55
Makefile: Add exe suffix back to tools/bin targets
2020-01-17 14:05:29 -08:00
Sauyon Lee
52fe0afa48
Makefile: Delete entire test db in clean
2020-01-17 14:05:27 -08:00
Sauyon Lee
1eb9466de2
Use codeql for testing and add binary cross compilation support
...
Also add support for building the extractor inside this repository
so that users can build and use the extractor, and an up-to-date
version can be used for testing.
2020-01-17 14:05:26 -08:00
Sauyon Lee
471d843025
Merge pull request #222 from max/switch-guard-nodes
...
Switch guard nodes
2020-01-17 21:44:59 +00:00
Sauyon Lee
4e5fd46bc6
autobuilder: Close stdin of subprocesses
...
This fixes issues where build programs were prompting for input,
causing the build to hang indefinitely.
2020-01-17 12:43:07 -08:00
Sauyon Lee
53e5ebba20
autobuilder: Run build tools if relevant files exist
2020-01-17 12:43:06 -08:00
Sauyon Lee
c76684851f
autobuilder: run make if Makefile exists
2020-01-17 12:43:05 -08:00
Sauyon Lee
2d97b396b7
Merge pull request #20 from github/sort-change-notes
...
Sort lines in change notes.
2020-01-17 09:01:46 -08:00
Max Schaefer
08ba795565
Sort lines in change notes.
2020-01-17 15:46:50 +00:00
Max Schaefer
d8b97afcab
Implement Field.hasQualifiedName.
2020-01-17 13:16:35 +00:00
Max Schaefer
e5e6f73081
Make Field extend Variable.
2020-01-17 13:15:43 +00:00
Max Schaefer
4ee8f08bf5
Adjust Location.toString() to match what other parts of the toolchain print.
2020-01-17 13:08:43 +00:00
Max Schaefer
2558e67c2b
Give entities a location.
2020-01-17 13:08:43 +00:00
Max Schaefer
24f9fce7a1
Rename MkCaseNode as suggested.
2020-01-17 10:32:39 +00:00
Max Schaefer
e86201829e
Add an explanatory comment.
2020-01-17 10:27:36 +00:00
Max Schaefer
98c7c4a255
Autoformat.
2020-01-17 10:25:10 +00:00
Sauyon Lee
aa9489ea28
Merge pull request #218 from max/field-refs
...
Fix handling of references to fields and methods
2020-01-16 14:26:55 -08:00
Sauyon Lee
7040b76cf6
Merge pull request #219 from max/new-env-vars
...
Teach extractor about CodeQL environment variables.
2020-01-15 11:37:26 -08:00
Max Schaefer
1ad90b6739
Teach extractor about CodeQL environment variables.
2020-01-15 14:01:30 +00:00
Max Schaefer
ad432965db
Remove DeclaredEntity.getDecl().
...
It's not particularly useful except for functions, and the name is easy to confuse with `Entity.getDeclaration()`. Instead we now have `getFuncDecl()` just for functions, and a bit more API on `Function` to avoid its use where possible.
2020-01-15 13:14:06 +00:00
Max Schaefer
b7a830593d
Correctly create extract nodes for returns where we cannot infer the type of the returned expression, but know from context that it must be a tuple type.
2020-01-15 10:22:29 +00:00
Max Schaefer
86708f7867
Merge pull request #212 from sauyon/dependency-update
...
Dependency update
2020-01-15 09:18:14 +00:00
Sauyon Lee
f32a785127
Merge pull request #217 from max/issue-24
...
Switch RedundantExpr query back to using AST instead of global value numbering.
2020-01-14 13:05:44 -08:00
Max Schaefer
3d508d44e7
Fix global value numbering.
2020-01-14 20:44:13 +00:00
Max Schaefer
2fdd45255c
Add two new tests.
2020-01-14 17:06:42 +00:00
Max Schaefer
61976d8dea
Fix code that does not account for the fact that Field is a subtype of ValueEntity.
2020-01-14 15:52:48 +00:00
Max Schaefer
0c254f8cd1
Fix a typo.
2020-01-14 15:35:18 +00:00
Max Schaefer
c96cebb022
Make reads(ValueEntity) and writes(ValueEntity) work for fields.
2020-01-14 15:35:18 +00:00
Sauyon Lee
1125c1ac41
Merge pull request #216 from Semmle/add-sql-tx-support
...
Add tests for https://github.com/github/codeql-go/pull/15
2020-01-14 01:55:29 -08:00
Max Schaefer
efc72fa01a
Remove Entity.getAUse() and replace uses with getAReference().
...
The former had result type `Ident`, so it wouldn't pick up references to methods and fields. Apart from that, it is subsumed by the latter anyway.
2020-01-14 07:15:43 +00:00
Max Schaefer
d339d55faa
Merge pull request #15 from RicterZ/add-sql-tx-support
...
Add sql.Tx.Exec/Query... support
2020-01-13 08:38:32 +00:00
Max Schaefer
d55ebd731d
Autoformat.
2020-01-13 08:37:32 +00:00
Max Schaefer
36c620d1dd
Add tests and change note.
2020-01-13 08:37:01 +00:00
Ricter Zheng
a6e0dcaefc
Add sql.Tx.Exec/Query... support
...
Ref: https://golang.org/pkg/database/sql/#Tx.ExecContext
2020-01-13 15:17:55 +08:00
Sauyon Lee
00dd464697
Update stats
2020-01-10 19:27:47 -08:00
Sauyon Lee
f01ef40af3
Update golang.org/x/tools dependency
2020-01-10 19:27:46 -08:00
Sauyon Lee
5985559161
Merge pull request #214 from max/issue-26
...
Model `Header.Get` as a source of untrusted input.
2020-01-10 19:26:43 -08:00
Max Schaefer
384d21b0e9
Switch RedundantExpr query back to using AST instead of global value numbers.
...
Most current alerts (https://lgtm.com/rules/1510380685982/alerts/ ), while technically correct, are likely intentional and harmless. This change keeps only the interesting ones: https://lgtm.com/query/2999122885894714237
2020-01-10 14:46:54 +00:00
Max Schaefer
c60ddb0f7c
Model Header.Get as a source of untrusted input.
2020-01-10 12:29:18 +00:00
Max Schaefer
1cafec56ad
Add condition guard nodes for some switch statements.
...
We now create condition guard nodes for `cond1` and `cond2` in
```
switch {
case cond1:
s1
case cond2:
s2
default:
s3
}
```
to record the fact that `cond1` is known to be true at `s1` and false at `cond2`, and that `cond2` is known to be true at `s2` and false at `default`.
2020-01-10 10:37:51 +00:00
Max Schaefer
e7514bf133
Add new test cases for CFG construction.
2020-01-09 17:20:39 +00:00
Sauyon Lee
3ab68cb624
Merge pull request #208 from max/incomplete-url-scheme-check
...
Add `IncompleteUrlSchemeCheck` query
2020-01-08 00:50:58 -08:00
Max Schaefer
3d7046e38c
Apply suggestions from code review
...
Co-Authored-By: Shati Patel <shati@semmle.com >
2020-01-07 20:07:44 +00:00
Max Schaefer
0d2fe473d7
Add IncompleteUrlSchemeCheck query.
2020-01-07 14:46:49 +00:00
Max Schaefer
9cff56b975
Rename StringConcatenation.qll to StringOps.qll and add HasPrefix class.
2020-01-07 14:46:49 +00:00
Max Schaefer
aeb9840144
Add SliceNode class.
2020-01-06 15:36:54 +00:00
Sauyon Lee
db40535b70
Merge pull request #207 from max/uber-fixes
...
Various library improvements
2020-01-03 17:18:49 -08:00
Max Schaefer
638fe07da0
Move getReceiver from MethodCallNode to CallNode.
2020-01-03 14:14:18 +00:00
Max Schaefer
bb4052a574
Generalise result type of getACallee.
2020-01-03 14:14:18 +00:00
Max Schaefer
59498f53f0
Move FuncDec.getACall into FuncDecl.
...
Also changes the result from a `CallExpr` to a `CallNode` for consistency with `Function.getACall`.
2020-01-03 14:13:38 +00:00
Sauyon Lee
0a39124223
Merge pull request #206 from max/generalise-alert-suppression
...
Alert suppression through single-line /* */ style comments.
2020-01-02 11:47:44 -08:00
Max Schaefer
6f82310a9e
Alert suppression through single-line /* */ style comments.
2020-01-02 14:34:11 +00:00
Sauyon Lee
9fd7db7e43
Merge pull request #205 from max/trap-writer-long-strings
...
Teach TRAP writer to truncate strings longer than 1MiB.
2019-12-27 11:35:34 -08:00
Max Schaefer
121c940ace
Teach TRAP writer to truncate strings longer than 1MiB.
...
The evaluator cannot in general handle strings that are longer than 1MiB when UTF8-encoded. Similar to other extractors, we now truncate such strings to fit within the size limit.
2019-12-18 14:18:56 +00:00
Max Schaefer
1df3585c92
Merge pull request #204 from Semmle/rc/1.23
...
Merge rc/1.23 into master
2019-12-11 10:28:00 +00:00
Sauyon Lee
d3bf87d0f5
Merge pull request #203 from max/quieten-hard-coded-cred
...
Make HardcodedCredentials query less noisy.
2019-12-10 16:43:15 -08:00
Max Schaefer
75d78b3f62
Reduce precision of HardcodedCredentials to "medium".
2019-12-10 16:12:48 +00:00
Max Schaefer
46c4670796
Make HardcodedCredentials query less noisy.
...
Considering "cert" and "account" to be sensitive leads to a massive number of false positives, especially on cockroach and kubernetes.
2019-12-10 14:14:36 +00:00
Max Schaefer
7894eb3a60
Merge pull request #202 from sauyon/incomplete-hostname-fix
...
IncompleteHostname: disallow unescaped dot before TLD
2019-12-10 08:17:32 +00:00
Sauyon Lee
10907c8b04
IncompleteHostnameRegexp: disallow unescaped dot before TLD
2019-12-09 08:47:17 -08:00
Max Schaefer
7876c37998
Merge pull request #14 from henrymercer/fix-contributing-link
...
Fix Code of Conduct link in CONTRIBUTING.md
2019-12-09 12:55:33 +00:00
Henry Mercer
3c08314782
Fix Code of Conduct link in CONTRIBUTING.md
2019-12-09 12:42:46 +00:00
Sauyon Lee
bc8974d32d
Merge pull request #201 from max/update-data-flow
...
Update data flow and taint-tracking libraries
2019-12-06 18:26:27 -08:00
Sauyon Lee
34d619038b
Merge pull request #200 from Semmle/codeql-test
...
Adapt Go tests to `codeql test`
2019-12-06 10:34:59 -08:00
Henning Makholm
7bc68c4302
Adapt Go tests to codeql test
...
These changes make the tests work with the coming `codeql test` support.
The `queries.xml` file defines which extractor the `codeql test`
runner will use to extract databases for the tests. In the future one
will be able to write this information in `qlpack.yml`, but we can't
do that immediately because the _existing_ CodeQL tooling would refuse
to parse a `qlpack.yml` that has the new field in it.
2019-12-06 18:27:47 +01:00
Max Schaefer
62a50bac2a
Update taint-tracking libraries.
...
This brings `TaintTrackingImpl.qll` up-to-date with the other languages as of https://github.com/Semmle/ql/pull/2480 .
2019-12-06 14:07:35 +00:00
Max Schaefer
53f5e13af1
Update data-flow libraries.
...
This brings `DataFlowImpl.qll` and `DataFlowImplCommon.qll` up-to-date with the other languages as of https://github.com/Semmle/ql/pull/2480 .
2019-12-06 12:14:53 +00:00
Sauyon Lee
2fc9e37655
Merge pull request #199 from max/notype-test
...
Add test for handling of expressions without extracted type.
2019-12-06 01:59:32 -08:00
Max Schaefer
594824f19c
Add test for handling of expressions without extracted type.
2019-12-06 09:21:55 +00:00
Max Schaefer
47f449cc0c
Merge remote-tracking branch 'external/master'
2019-12-06 09:04:16 +00:00
Max Schaefer
80e7376189
Merge pull request #198 from sauyon/hardcoded-cred-fix
...
HardcodedCredentials: Exclude passwords that include '0123456789'
2019-12-06 09:02:17 +00:00
Max Schaefer
6bda80a47b
Merge pull request #197 from Semmle/rc/1.23
...
Merge rc/1.23 into master
2019-12-06 09:01:18 +00:00
Sauyon Lee
2de7c6f5fc
HardcodedCredentials: Exclude passwords that include '0123456789'
2019-12-05 15:37:50 -08:00
Sauyon Lee
eb639c6cf7
Merge pull request #196 from max/no-type
...
Make `Expr.getType()` robust against incomplete `type_of` table.
2019-12-05 14:31:48 -08:00
Max Schaefer
8364ba3d38
Make Expr.getType() robust against incomplete type_of table.
2019-12-05 17:05:02 +00:00
Sauyon Lee
94ed3ef979
Merge pull request #13 from github/fix-dead-store
...
Fix a dead assignment.
2019-12-02 10:48:55 -08:00
Max Schaefer
ce6d031ce9
Update .lgtm.yml to classify examples.
2019-12-02 12:04:28 +00:00
Shati Patel
e4346a17de
Merge pull request #195 from max/impossible-interface-nil-check
...
Add new query ImpossibleInterfaceNilCheck
2019-11-27 11:15:05 +00:00
Max Schaefer
ba54cde86e
Add two references.
2019-11-27 10:47:42 +00:00
Max Schaefer
e5a12e9738
Add new query ImpossibleInterfaceNilCheck.
2019-11-26 20:28:53 +00:00
Max Schaefer
f4a24b0353
Improve type information for tuple elements.
...
We would previously rely on the type information of the target variable into which the element is stored, but that could be a more general type.
For example, in the assignment
```go
x, y := f()
```
the type of `x` might be an interface while the type of `f()[0]` is a concrete type implementing that interface.
2019-11-26 16:19:17 +00:00
Sauyon Lee
1d21347578
Merge pull request #194 from max/field-write-through-embedded-pointer
...
Fix DeadStoreOfField false positive.
2019-11-25 13:14:24 -08:00
Max Schaefer
ee723d8a4f
Fix DeadStoreOfField false positive.
...
We should look into properly desugaring embedded types in the IR, but for now this workaround should suffice.
2019-11-25 20:21:16 +00:00
Sauyon Lee
2c921d9418
Merge pull request #193 from max/header-xss
...
Don't flag header injection as XSS.
2019-11-25 11:56:54 -08:00
Sauyon Lee
61c2478541
Merge pull request #12 from github/rc/1.23
...
Merge rc/1.23 into master
2019-11-25 09:20:17 -08:00
Max Schaefer
8bd45593e0
Merge pull request #11 from github/1.23/SD-4095-finalize-change-notes-go
...
1.23: SD-4095 Minor text changes to analysis change notes
2019-11-25 15:56:17 +00:00
Felicity Chapman
de2c7d8884
Minor text changes
2019-11-25 15:48:58 +00:00
Max Schaefer
adf9764085
Don't flag header injection as XSS.
...
All results I have seen from this are uninteresting.
2019-11-25 15:06:53 +00:00
Shati Patel
b21e4404b5
Merge pull request #192 from max/constant-length-comparison
...
Add new query ConstantLengthComparison.
2019-11-25 11:07:58 +00:00
Max Schaefer
db4e6789bb
Address doc review comment.
...
Co-Authored-By: Shati Patel <shati@semmle.com >
2019-11-25 10:44:41 +00:00
Max Schaefer
e16a81cba9
Apply review suggestions.
2019-11-25 09:15:57 +00:00
Max Schaefer
cdb843516a
Introduce DataFlow::Node.getBasicBlock() and use it.
2019-11-25 09:14:15 +00:00
Max Schaefer
1ff032d11e
Add new query ConstantLengthComparison.
2019-11-22 20:55:14 +00:00
Max Schaefer
26a656b838
Merge pull request #189 from sauyon/use-taint-split
...
Use split taint predicates to emulate taint
2019-11-22 17:51:09 +00:00
Sauyon Lee
50b48e1c9e
Merge pull request #191 from max/isEmptyInterfaceNoInline
...
Mark `isEmptyInterface` as `noinline`.
2019-11-22 09:45:06 -08:00
Max Schaefer
e367a48f6e
Mark isEmptyInterface as noinline.
2019-11-22 09:19:34 +00:00
Sauyon Lee
4ea45dbf34
Use data-flow API in stringConcatStep
2019-11-21 23:48:23 -08:00
Sauyon Lee
9651a0bfc4
Use the split taint predicate to emulate taint where required
...
In particular, the OpenUrlRedirect and CleartextLogging queries, which both have taint flow into
an object when one of its fields is written.
2019-11-21 22:58:36 -08:00
Sauyon Lee
c0730fe4cc
Make taintStep public
2019-11-21 22:58:25 -08:00
Sauyon Lee
73922e98d7
Merge pull request #188 from Semmle/rc/1.23
...
Merge rc/1.23 into master
2019-11-21 22:52:12 -08:00
Max Schaefer
228e95a646
Merge pull request #185 from sauyon/open-redirect-fp1
...
OpenRedirect: treat assignments to Url.Path as a barrier
2019-11-21 16:51:16 +00:00
Sauyon Lee
81ba71e47b
Address review comments
2019-11-21 08:29:01 -08:00
Shati Patel
d8c6361312
Merge pull request #187 from max/rc/1.23
...
Add change notes for 1.23.
2019-11-21 16:07:21 +00:00
Max Schaefer
7136713a5f
Add change notes for 1.23.
2019-11-21 15:50:40 +00:00
Max Schaefer
a54d30c053
Merge pull request #186 from sauyon/taint-split
...
Split taintStep into many predicates
2019-11-20 20:39:27 +00:00
Sauyon Lee
3f437612e1
Add qldoc to all taint step predicates.
2019-11-20 11:27:24 -08:00
Sauyon Lee
1092fe5870
Move SsaWithFields to the Ssa file and rework it for public use
...
Also use it in OpenRedirect
2019-11-20 11:20:55 -08:00
Sauyon Lee
4c9bf2265e
OpenRedirect: treat assignments to Url.Path as a barrier
2019-11-20 11:20:54 -08:00
Max Schaefer
215fe26a73
Fix a dead assignment.
2019-11-20 10:28:12 +00:00
Max Schaefer
f94ce88ea4
Add .lgtm.yml to classify tests.
2019-11-20 10:24:54 +00:00
Sauyon Lee
09865a5f5c
Add a field read taint step
2019-11-18 23:58:01 -08:00
Sauyon Lee
e0c589060a
Split taintStep into many predicates
2019-11-18 23:58:00 -08:00
Max Schaefer
8cc60ba543
Add more codeql metadata files.
2019-11-14 10:35:21 +00:00
Sauyon Lee
eda858eafb
Merge pull request #184 from max/cleartext-logging-constant
...
Teach `CleartextLogging` not to flag constant sources.
2019-11-14 01:21:04 -05:00
Max Schaefer
616d78e2a5
Teach CleartextLogging not to flag constant sources.
2019-11-13 14:25:32 +00:00
Max Schaefer
50cde34878
Merge pull request #181 from sauyon/hardcoded-sensitive
...
HardcodedCredentials: Use SensitiveActions
2019-11-13 09:21:45 +00:00
Max Schaefer
ed95cdea56
Merge pull request #183 from sauyon/regexp-improvements
...
OpenUrlRedirect: Use the regexp library for RegexpCheck
2019-11-13 09:20:19 +00:00
Max Schaefer
899ae102b0
Merge pull request #182 from sauyon/fix-newline
...
autobuilder: Add a missing newline to the usage blurb
2019-11-13 09:19:22 +00:00
Sauyon Lee
3b39f5c2e1
OpenUrlRedirect: Use the regexp library for RegexpCheck
2019-11-12 15:14:05 -08:00
Sauyon Lee
2ba680ef4c
autobuilder: Add a missing newline to the usage blurb
2019-11-12 15:11:03 -08:00
Sauyon Lee
4e4d94da7b
Merge pull request #180 from max/receiver-deref-update
...
Conservatively handle indirect updates through pointer-type receiver.
2019-11-12 17:56:13 -05:00
Sauyon Lee
50a008900c
HardcodedCredentials: Use SensitiveActions
2019-11-12 14:08:44 -08:00
Max Schaefer
5726ec179c
Merge pull request #9 from github/autobuilder-add-print
...
autobuilder: Add line printing the environment and build versions of Go
2019-11-12 16:24:19 +00:00
Max Schaefer
06fe00006a
Conservatively handle indirect updates through pointer-type receiver.
...
Method references `x.m` where the receiver of `m` is a pointer implicitly take the address of `x`, so they should be treated much the same as `&x` in terms of data flow. (Ideally we'd make this explicit in the data-flow graph itself, but that's for another PR.)
2019-11-12 08:54:47 +00:00
Sauyon Lee
7c45316aa7
autobuilder: Add line printing the environment and build versions of Go
2019-11-08 19:59:52 -08:00
Max Schaefer
d14eb855fc
Go analysis support for CodeQL.
2019-11-08 12:16:26 +00:00