Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
942 commits
Select commit Hold shift + click to select a range
84d2107
JS: Support Vue class components
asgerf Jun 27, 2020
3e616e9
JS: Add test
asgerf Jun 27, 2020
19db418
JS: Add missing store step in Xss query
asgerf Jun 28, 2020
9ca25d5
JS: Support .hash extraction via a few more methods
asgerf Jun 28, 2020
e72e662
Python: Autogenerate QLDoc for `toString` AST methods.
tausbn Jun 28, 2020
5744356
Python: Add a bunch more `toString` docs.
tausbn Jun 28, 2020
ce32d64
Update javascript/ql/src/semmle/javascript/frameworks/Logging.qll
dellalibera Jun 28, 2020
bb06014
Add fancy-log
dellalibera Jun 28, 2020
03c91a6
JS: Update expected output
asgerf Jun 29, 2020
bdb7e3d
Apply suggestions from code review
asgerf Jun 29, 2020
da3d1a3
JS: Recognize 'lang' attribute of script tags
asgerf Jun 24, 2020
164a18f
JS: Factor out extractFiles
asgerf Jun 26, 2020
ea6b99e
JS: Add shouldExtract predicate
asgerf Jun 26, 2020
d55e330
JS: Bundle FileExtractors into a class
asgerf Jun 26, 2020
bfedcb0
JS: Make TypeScript aware of custom extractor extensions
asgerf Jun 26, 2020
8632c2a
JS: Factor out VirtualSourceRoot
asgerf Jun 26, 2020
27b2c02
remove todo comment
erik-krogh Jun 29, 2020
6b27652
C++: Remove abstractness from a couple of AST classes
MathiasVP Jun 29, 2020
1e5f846
JS: Use StringReplaceCall
asgerf Jun 29, 2020
805deb1
JS: Fix whitespace
asgerf Jun 26, 2020
2c1567a
JS: Don't extract TypeScript from HTML
asgerf Jun 26, 2020
1297d0f
JS: Extract HTML before TypeScript
asgerf Jun 26, 2020
d3b9ebe
JS: Perform glob matching across source roots
asgerf Jun 29, 2020
da58fb5
JS: Resolve relative imports across real and virtual source roots
asgerf Jun 26, 2020
9c65318
JS: Extract TypeScript in HTML files to a snippet in virtual source root
asgerf Jun 29, 2020
e46a9da
JS: Count lines of code correctly
asgerf Jun 29, 2020
fcb3651
JS: Add change note
asgerf Jun 29, 2020
ab1dc64
C++: expand qldoc on MemberFunction::getTypeOfThis()
nickrolfe Jun 29, 2020
b469d55
Python: Fix a few things in `Stmts.qll`.
tausbn Jun 29, 2020
441d4c0
Update cpp/ql/src/semmle/code/cpp/exprs/Cast.qll
geoffw0 Jun 29, 2020
1a16d73
JS: Set SourceType correctly
asgerf Jun 29, 2020
3938856
JS: Make this work in qltest
asgerf Jun 29, 2020
b05942b
JS: Add HTML file example
asgerf Jun 29, 2020
b3e68ef
Merge pull request #3806 from erik-krogh/moreDownloads
semmle-qlci Jun 29, 2020
da8725a
Merge pull request #3823 from dellalibera/js/fancy-log
semmle-qlci Jun 29, 2020
55883f6
C++: Autoformat.
geoffw0 Jun 29, 2020
0bd81eb
Dataflow: Fix reference to viableCallable.
aschackmull Jun 29, 2020
b53b905
Merge pull request #3550 from luchua-bc/java-unsafe-cert-trust
aschackmull Jun 29, 2020
d297ce2
Merge pull request #3436 from artem-smotrakov/revocation-checking
aschackmull Jun 29, 2020
326c7af
JS: Fix incorrect classification of Vue files
asgerf Jun 29, 2020
cb12d89
JS: Add test
asgerf Jun 29, 2020
e2e5e9b
C++: QLDoc Synchronization.qll and improve existing QLDoc.
geoffw0 Jun 29, 2020
a8a7df4
C++: QLDoc SensitiveExprs.qll.
geoffw0 Jun 29, 2020
6de3d5b
C++: Change opcode QLDocs to refer to instruction QLDocs
Jun 29, 2020
77bf564
C++: Finish `Instruction.qll` QLDoc
Jun 26, 2020
d0af9f5
C++: QLDoc all of `IRBlock.qll`
Jun 28, 2020
88f89b3
C++: QLDoc for `IRFunction.qll`
Jun 28, 2020
98348a9
C++: QLDoc for `IR.qll`
Jun 28, 2020
1423ea0
C++: More `IR.qll` QLDoc
Jun 28, 2020
ead2a14
C++: QLDoc for IRVariable
Jun 29, 2020
2043d9c
C++: QLDoc for `Operand.qll`
Jun 29, 2020
440ea6a
C++: QLDoc for `PrintIR.qll`
Jun 29, 2020
87f0b0e
C++: QLDoc for `EdgeKind.qll`
Jun 29, 2020
c526532
C++: QLDoc for `IRConfiguration.qll`
Jun 29, 2020
71492f9
C++: QLDoc Encryption.qll, improve existing QLDoc, and update termino…
geoffw0 Jun 29, 2020
fc69c16
C++: Deprecate some old terminology.
geoffw0 Jun 29, 2020
4b6908c
C++: test template classes with MemberFunction::getTypeOfThis()
nickrolfe Jun 29, 2020
1fa3847
C++: Autoformat
Jun 29, 2020
182e4ce
JS: Autoformat
asgerf Jun 29, 2020
42657db
C++: Miscellaneous IR QLDoc
Jun 29, 2020
7a023a6
Grammatical issues in Encryption using ECB.qhelp
Jun 30, 2020
b57cfc9
Merge pull request #3804 from aschackmull/dataflow/dispatch-refactor
hvitved Jun 30, 2020
3efe1a9
C#: Remove unused `viableImpl` predicate
hvitved Jun 30, 2020
667bb32
C++: Rename union types to follow the naming convention of IPA types …
MathiasVP Jun 30, 2020
c7f67fa
JS: support additional promisification of the fs-module members
esbena Jun 25, 2020
50709b2
C++: Replace implication with disjunction in charpred for Call
MathiasVP Jun 30, 2020
acee9eb
C++: Add comment to pseudo-abstract predicates
MathiasVP Jun 30, 2020
13cb853
Merge pull request #3294 from ggolawski/ognl-injection
aschackmull Jun 30, 2020
47bb007
C++: Autoformat fixups
jbj Jun 30, 2020
0102322
C++: QLDoc FunctionWithWrappers.qll.
geoffw0 Jun 30, 2020
40e02be
C++: QLDoc Overflow.qll.
geoffw0 Jun 30, 2020
f792998
Merge pull request #3831 from MathiasVP/remove-abstract-decl-var-call
jbj Jun 30, 2020
7a2c65f
JS: Fix virtual source root in AutoBuildTest
asgerf Jun 30, 2020
5c51bb7
C++: QLDoc Literal.qll.
geoffw0 Jun 30, 2020
c52f68e
Merge pull request #3808 from geoffw0/qldoc4
MathiasVP Jun 30, 2020
7e97bd1
Python: Address review comments.
tausbn Jun 30, 2020
80981ec
Update UnsafeHtmlExpansion-transformed.html
esbena Jun 30, 2020
62d56a3
JavaScript: Fix module name for `walk-sync` package.
Jun 30, 2020
3a3cc9a
C++: Autoformat.
geoffw0 Jun 30, 2020
de25bc6
C++: Improvement in Synchronization.qll.
geoffw0 Jun 30, 2020
0ee73cc
Update cpp/ql/src/semmle/code/cpp/security/FunctionWithWrappers.qll
geoffw0 Jun 30, 2020
bbb9396
C++: Improvement in Overflow.qll.
geoffw0 Jun 30, 2020
4b7d60a
Merge pull request #3803 from esbena/js/more-fs-promises
semmle-qlci Jun 30, 2020
4c088b1
C++: Delete outdated bit.
geoffw0 Jun 30, 2020
51db147
Apply suggestions from code review
geoffw0 Jun 30, 2020
db0500b
Java: Direct port of changes to Java.
geoffw0 Jun 30, 2020
f8425b8
Java: Update uses.
geoffw0 Jun 30, 2020
5c11c9e
Java: Rename additional private predicates.
geoffw0 Jun 30, 2020
15a0297
Merge pull request #3834 from asger-semmle/js/vue-classification
semmle-qlci Jun 30, 2020
c850938
Merge pull request #3833 from asger-semmle/js/vue-class-component
semmle-qlci Jun 30, 2020
42bca1a
Merge pull request #3824 from asger-semmle/js/static-regexp-capture-g…
semmle-qlci Jun 30, 2020
ab876b8
Merge pull request #3814 from nickrolfe/71-this
matt-gretton-dann Jun 30, 2020
09e13ca
C++: make MemberFunction::getTypeOfThis() return PointerType
nickrolfe Jun 30, 2020
472501b
JS: Add Vue to list of supported frameworks
asgerf Jun 29, 2020
4dabbac
Dataflow: Add documentation language maintainers.
aschackmull Jun 30, 2020
3bdfab8
C++: Autoformat.
geoffw0 Jun 30, 2020
cf75397
Java: Rename tests.
geoffw0 Jun 30, 2020
224289c
Merge pull request #3845 from max-schaefer/js/walk-sync
semmle-qlci Jun 30, 2020
ed48efe
recognize access to a query object through function calls
erik-krogh Jun 30, 2020
4a5299e
Merge pull request #3843 from geoffw0/qldoc6
jbj Jun 30, 2020
d5c6433
Merge pull request #3849 from asger-semmle/js/vue-support-rc
jf205 Jun 30, 2020
5a929de
Merge branch 'rc/1.24' into 1.24-mergeback
Jun 30, 2020
989b57c
Merge pull request #3822 from tausbn/python-document-internal-ast-cla…
yoff Jun 30, 2020
63de58c
Merge pull request #3819 from dbartol/codeql-c-analysis-team/40/2
jbj Jun 30, 2020
8ff8b3e
Merge pull request #3852 from jf205/1.24-mergeback
jf205 Jun 30, 2020
6bcb8a3
C#: Replace `getErasedRepr()` and `getTypeBound()` with `getNodeType()`
hvitved Jun 30, 2020
1fa58bd
Data flow: Sync files
hvitved Jun 30, 2020
de3dc73
C++: Follow-up changes
hvitved Jun 30, 2020
f1179cc
Java: Follow-up changes
hvitved Jun 30, 2020
cb39525
Merge pull request #3847 from nickrolfe/71-this-followup
MathiasVP Jun 30, 2020
286c091
Merge pull request #3837 from geoffw0/qldoc5
MathiasVP Jun 30, 2020
54b8f8e
C++: Make getSecureAlgorithmRegex() return a single regexp as expecte…
geoffw0 Jun 30, 2020
8bdcc47
C++: Add a test.
geoffw0 Jun 30, 2020
17beb2d
C++: Remove big-step relation in flow-through code
jbj Jun 29, 2020
cff0f48
C++: Work around join-order issue in flow-through
jbj Jun 29, 2020
6592f8c
C++: QLDoc cleanup
Jun 30, 2020
e977791
Merge pull request #3856 from geoffw0/qldoc5follow
Jun 30, 2020
e259281
Merge branch 'master' of github.com:github/codeql into SharedDataflow
yoff Jul 1, 2020
3388ca4
Python: sync dataflow library
yoff Jul 1, 2020
825f24a
Python: simplify according to review comments
yoff Jul 1, 2020
7787900
Python: make compile and simplify
yoff Jul 1, 2020
10bbd56
C++: Autoformat
Jul 1, 2020
ed2077b
Merge pull request #3841 from gavinl/master
hvitved Jul 1, 2020
ef109d9
Merge pull request #3842 from hvitved/csharp/dataflow/remove-viable-impl
semmle-qlci Jul 1, 2020
79e4f1e
Python: Enable consistency check (currently fails)
yoff Jul 1, 2020
8227010
also use new type-tracking in isUserControlledObject
erik-krogh Jul 1, 2020
38b73ff
Merge pull request #3854 from hvitved/dataflow/node-type-interface
aschackmull Jul 1, 2020
bace299
add test for type-tracking req.params
erik-krogh Jul 1, 2020
3157cd7
add noSQL tests for type-tracking req.query
erik-krogh Jul 1, 2020
50cd759
Merge pull request #3733 from geoffw0/models5
jbj Jul 1, 2020
7d05759
Merge pull request #3857 from jbj/flowthrough-bigstep-perf
aschackmull Jul 1, 2020
5af5f40
Small terminology update
shati-patel Jul 1, 2020
4aac70d
Dataflow: update doc based on review.
aschackmull Jul 1, 2020
cabd275
Fix typo, add Oxford comma
intrigus-lgtm Jul 1, 2020
20aed81
Merge pull request #3863 from intrigus-lgtm/patch-2
aschackmull Jul 1, 2020
33c5276
JS: more dataflow and global access path testing
esbena Jun 25, 2020
75451e3
JS: teach the dataflow library identity functions Object.freeze/seal
esbena Jun 25, 2020
3ca6031
JS: rename predicate
esbena Jul 1, 2020
a6d8073
JavaScript: Make `getADefinition` and `getAnAccess` available on all …
Jun 30, 2020
6429fe4
Merge pull request #3862 from shati-patel/shati-patel-patch-1
shati-patel Jul 1, 2020
566d7fa
C++: Autoformat some more
Jul 1, 2020
7fb97d7
Merge branch 'master' of github.com:github/codeql into SharedDataflow
yoff Jul 1, 2020
0175d5b
Sync dataflow files
yoff Jul 1, 2020
0b11e77
Python: make compile
yoff Jul 1, 2020
66a6fe7
Merge pull request #3853 from max-schaefer/js/canonical-names
semmle-qlci Jul 1, 2020
e39c115
C++: QLDoc Strcpy (as demanded by the tests).
geoffw0 Jul 1, 2020
8d8e47d
C++: QLDoc other straightforward model implementations.
geoffw0 Jul 1, 2020
f0215d1
C++: Fix typo
Jul 1, 2020
bb9c888
Merge pull request #3786 from geoffw0/bufferwritecleanup
MathiasVP Jul 1, 2020
a260df9
C++: 'modelling' -> 'modeling'.
geoffw0 Jul 1, 2020
498ee9b
C#: Factor C++ parts out of autobuilder
hvitved Jun 29, 2020
398a95c
C#: Remove unused field
hvitved Jun 30, 2020
45ef3ec
Merge pull request #3619 from erik-krogh/CWE022-Correctness
semmle-qlci Jul 1, 2020
62a656d
Merge pull request #3860 from dbartol/codeql-c-analysis-team/40/2
jbj Jul 2, 2020
2bd84a3
Merge pull request #3865 from geoffw0/bufferwrite-fixup
jbj Jul 2, 2020
c784275
Update docs/ql-libraries/dataflow/dataflow.md
aschackmull Jul 2, 2020
bfb734e
Merge pull request #3832 from asger-semmle/js/typescript-in-html-files3
semmle-qlci Jul 2, 2020
0bf1f75
Merge pull request #3850 from aschackmull/dataflow/doc
semmle-qlci Jul 2, 2020
50fee5c
Merge pull request #3817 from Marcono1234/patch-1
aschackmull Jul 2, 2020
4a7bfbe
Python: Use .matches instead of .indexOf() = 0
RasmusWL Jul 2, 2020
a947d15
Python: Django changes now backwards compatible deprecation
RasmusWL Jul 2, 2020
9a82927
Python: Autoformat
RasmusWL Jul 2, 2020
67be45f
Merge branch 'master' into python-fix-django-taint-sinks
RasmusWL Jul 2, 2020
d01904d
Merge pull request #3846 from hvitved/csharp/autobuilder-refactor
hvitved Jul 2, 2020
5cf5c77
Java: model java.util.Collections
aibaars Jul 2, 2020
26b7a30
Merge branch 'master' into python-keyword-only-args
RasmusWL Jul 2, 2020
e7b495e
Java: model Collections::addAll
aibaars Jul 2, 2020
97128b1
Merge pull request #3829 from asger-semmle/js/xss-substr
semmle-qlci Jul 2, 2020
d80bf33
Add Navigable variants and sort method names
aibaars Jul 2, 2020
21a4b8d
Java: remove useless casts
aibaars Jul 2, 2020
090205d
C#: Add CFG test for conditional call to method with `out` parameter
hvitved Jul 2, 2020
527a099
C#: Fix CFG for conditional method calls with `out` parameters
hvitved Jul 2, 2020
eecc3ca
Merge pull request #3503 from RasmusWL/python-fix-django-taint-sinks
tausbn Jul 2, 2020
b2f8638
Python: Update dbscheme with new comment
RasmusWL Jul 2, 2020
2b0a091
split out type-tracking into two predicates, to avoid catastrophic jo…
erik-krogh Jul 2, 2020
513c297
Merge branch 'master' into python-keyword-only-args
RasmusWL Jul 2, 2020
b5c8f22
Merge pull request #3805 from esbena/js/seal-freeze-flow
semmle-qlci Jul 2, 2020
261821b
Merge remote-tracking branch 'upstream/master' into queryStuff
erik-krogh Jul 2, 2020
5f18fb4
Python: update TODO
yoff Jul 2, 2020
ba634af
Merge pull request #3362 from RasmusWL/python-keyword-only-args
tausbn Jul 2, 2020
5f2a5f1
Java: Collections: add tests
aibaars Jul 2, 2020
04a0d47
Merge pull request #3870 from hvitved/csharp/cfg/cond-out-param
semmle-qlci Jul 2, 2020
078b6a8
autoformat
erik-krogh Jul 2, 2020
bdc68ce
Python: refactor `Node` class
yoff Jul 3, 2020
a9e0288
Python: exclude global vars from local flow
yoff Jul 3, 2020
e366600
Python: add some links to readme
yoff Jul 3, 2020
40a6728
Update python/ql/src/experimental/dataflow/internal/TaintTrackingPriv…
yoff Jul 3, 2020
8891fbf
Update python/ql/src/experimental/dataflow/internal/DataFlowPublic.qll
yoff Jul 3, 2020
59d611d
Update python/ql/src/experimental/dataflow/internal/DataFlowPublic.qll
yoff Jul 3, 2020
d201eb2
Update python/ql/src/experimental/dataflow/internal/DataFlowPrivate.qll
yoff Jul 3, 2020
39bc978
Code Scanning: Don't scan the Python directory.
tausbn Jul 3, 2020
b99ec29
Code Scanning: Additionally exclude Java and C++.
tausbn Jul 3, 2020
bb01dbd
CodeQL: exclude queries from LGTM suites
aibaars Jul 3, 2020
2b248fb
CodeQL: exclude queries from CodeScanning suites
aibaars Jul 3, 2020
33cf96c
Python: Address review comments
yoff Jul 3, 2020
5fff41f
Don't track taint on Map keys
aibaars Jul 3, 2020
fe9520b
Python: correct doc for toString
yoff Jul 3, 2020
4c06eb8
JS: Add test showing FPs
asgerf Jul 3, 2020
b5104ae
JS: Add StartsWith sanitizer
asgerf Jul 3, 2020
01c4852
Merge pull request #3701 from yoff/SharedDataflow
tausbn Jul 3, 2020
687bb4d
Merge pull request #3890 from github/tausbn-add-paths-ignore-to-code-…
yoff Jul 3, 2020
c629f6b
Merge pull request #3869 from aibaars/util-collections
aibaars Jul 3, 2020
163257a
Merge pull request #3891 from aibaars/exclude-experimental
max-schaefer Jul 3, 2020
a07af79
Java: model java.util.Arrays
aibaars Jul 2, 2020
0b89efb
Java: model Arrays::addList
aibaars Jul 2, 2020
19a481f
Java: Arrays: add tests
aibaars Jul 2, 2020
f8e474f
Add missing java.nio.file.Files methods to FileReadWrite.qll
Marcono1234 Jun 26, 2020
13ffd73
Update query console links in types-class-hierarchy.rst
Marcono1234 Jul 5, 2020
ab24566
Update query console links in annotations.rst
Marcono1234 Jul 5, 2020
c10a598
Update query console links in call-graph.rst
Marcono1234 Jul 5, 2020
2b3b64c
Update query console links in expressions-statements.rst
Marcono1234 Jul 5, 2020
b835d78
Update query console links in introduce-libraries-java.rst
Marcono1234 Jul 5, 2020
7b4960c
Update query console links in javadoc.rst
Marcono1234 Jul 5, 2020
2d9b52f
Update query console links in source-locations.rst, replace deprecate…
Marcono1234 Jul 5, 2020
8585312
fix typo in js/shell-command-constructed-from-input
erik-krogh Jul 6, 2020
73d606d
Merge pull request #3844 from github/esbena-patch-3
semmle-qlci Jul 6, 2020
98d2410
Merge pull request #3687 from aschackmull/java/getanenclosingstmt
aibaars Jul 6, 2020
d2734b2
Merge pull request #3684 from aschackmull/java/javadoctag-qldoc
aibaars Jul 6, 2020
13c3513
Merge pull request #3905 from erik-krogh/unsafeShellTypo
semmle-qlci Jul 6, 2020
9a94462
autoformat
erik-krogh Jul 6, 2020
6d80445
Merge pull request #3851 from erik-krogh/queryStuff
semmle-qlci Jul 6, 2020
6ff8508
Java: Clarify documentation for Location predicate results
Marcono1234 Jul 6, 2020
fe0c5a9
Merge pull request #3892 from asger-semmle/js/redirect-starts-with-sa…
semmle-qlci Jul 6, 2020
0a96867
Fix wrong method name
Marcono1234 Jul 5, 2020
0d9b18d
C++: Accept test changes for is_constexpr
igfoo Jul 2, 2020
5649254
Fix broken link formatting in introduce-libraries-java.rst
Marcono1234 Jul 6, 2020
f2ce125
Merge pull request #3902 from Marcono1234/fix-outdated-query-links
semmle-qlci Jul 6, 2020
173e108
Merge pull request #3907 from Marcono1234/patch-1
aschackmull Jul 7, 2020
993506d
Merge pull request #3820 from Marcono1234/patch-2
aschackmull Jul 7, 2020
67db1df
C++/C#/JavaScript/Python: Port Location qldoc update.
aschackmull Jul 7, 2020
f07a7bf
Python: Autoformat everything using `qlformat`.
tausbn Jul 7, 2020
32fcfcf
Merge pull request #3912 from aschackmull/location-doc
jbj Jul 7, 2020
df4d145
Merge branch 'master' into python-qlformat-everything-again
tausbn Jul 7, 2020
22666dd
Merge pull request #3875 from igfoo/is_constexpr
igfoo Jul 7, 2020
45eccb2
Python: Fix test failures.
tausbn Jul 7, 2020
583f7f9
Drop taint tracking for Arrays.{setAll, parallelSetAll, parallelPrefix}
aibaars Jul 7, 2020
940fec5
Drop taint tracking for Arrays.{deepToString,toString}
aibaars Jul 7, 2020
1d5ef38
Merge pull request #3915 from tausbn/python-qlformat-everything-again
RasmusWL Jul 7, 2020
7306f58
Python: Fix experimental tests
RasmusWL Jul 7, 2020
548fceb
Merge pull request #3917 from RasmusWL/python-fix-experimental-tests
tausbn Jul 7, 2020
00a6181
Improve VariableAssign.getSource documentation
Marcono1234 Jul 7, 2020
c166fee
Merge pull request #3894 from aibaars/util-arrays
aschackmull Jul 8, 2020
40b9d34
Java: Consolidate springframework-5.2.3 stubs
aschackmull Jul 8, 2020
6eac8e8
Java: Consolidate spring-ldap-2.3.2 stubs.
aschackmull Jul 8, 2020
b38839e
Merge pull request #3920 from Marcono1234/patch-3
aschackmull Jul 8, 2020
6ef7288
Merge pull request #3922 from aschackmull/java/stub-cleanup
semmle-qlci Jul 8, 2020
48e4759
Merge branch 'master' into java/spring-3653-2
aschackmull Jul 8, 2020
581d496
Java: Fix LdapInjection qltest
aschackmull Jul 8, 2020
a4fe4f4
Java: Fix JndiInjection qltest
aschackmull Jul 8, 2020
b88ebd6
Java: Fix OgnlInjection qltest
aschackmull Jul 8, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .github/codeql/codeql-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: "CodeQL config"

queries:
- uses: security-and-quality

paths-ignore:
- '/cpp/'
- '/java/'
- '/python/'
52 changes: 52 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: "Code scanning - action"

on:
push:
pull_request:
schedule:
- cron: '0 9 * * 1'

jobs:
CodeQL-Build:

runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2

# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
# Override language selection by uncommenting this and choosing your languages
with:
languages: csharp
config-file: ./.github/codeql/codeql-config.yml

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl

# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language

#- run: |
# make bootstrap
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
2 changes: 2 additions & 0 deletions change-notes/1.25/analysis-cpp.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ The following changes in version 1.25 affect C/C++ analysis in all applications.

| **Query** | **Expected impact** | **Change** |
|----------------------------|------------------------|------------------------------------------------------------------|
| Uncontrolled format string (`cpp/tainted-format-string`) | | This query is now displayed by default on LGTM. |
| Uncontrolled format string (through global variable) (`cpp/tainted-format-string-through-global`) | | This query is now displayed by default on LGTM. |

## Changes to libraries

Expand Down
23 changes: 22 additions & 1 deletion change-notes/1.25/analysis-javascript.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,49 @@
- [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)
- [bluebird](http://bluebirdjs.com/)
- [express](https://www.npmjs.com/package/express)
- [fancy-log](https://www.npmjs.com/package/fancy-log)
- [fastify](https://www.npmjs.com/package/fastify)
- [fstream](https://www.npmjs.com/package/fstream)
- [jGrowl](https://github.com/stanlemon/jGrowl)
- [jQuery](https://jquery.com/)
- [marsdb](https://www.npmjs.com/package/marsdb)
- [micro](https://www.npmjs.com/package/micro/)
- [minimongo](https://www.npmjs.com/package/minimongo/)
- [mssql](https://www.npmjs.com/package/mssql)
- [mysql](https://www.npmjs.com/package/mysql)
- [npmlog](https://www.npmjs.com/package/npmlog)
- [pg](https://www.npmjs.com/package/pg)
- [sequelize](https://www.npmjs.com/package/sequelize)
- [spanner](https://www.npmjs.com/package/spanner)
- [sqlite](https://www.npmjs.com/package/sqlite)
- [ssh2-streams](https://www.npmjs.com/package/ssh2-streams)
- [ssh2](https://www.npmjs.com/package/ssh2)
- [vue](https://www.npmjs.com/package/vue)
- [yargs](https://www.npmjs.com/package/yargs)
- [webpack-dev-server](https://www.npmjs.com/package/webpack-dev-server)

* TypeScript 3.9 is now supported.

* TypeScript code embedded in HTML and Vue files is now extracted and analyzed.

* The analysis of sanitizers has improved, leading to more accurate
results from the security queries.

## New queries

| **Query** | **Tags** | **Purpose** |
|---------------------------------------------------------------------------------|-------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Cross-site scripting through DOM (`js/xss-through-dom`) | security, external/cwe/cwe-079, external/cwe/cwe-116 | Highlights potential XSS vulnerabilities where existing text from the DOM is used as HTML. Results are not shown on LGTM by default. |
| DOM text reinterpreted as HTML (`js/xss-through-dom`) | security, external/cwe/cwe-079, external/cwe/cwe-116 | Highlights potential XSS vulnerabilities where existing text from the DOM is used as HTML. Results are shown on LGTM by default. |
| Incomplete HTML attribute sanitization (`js/incomplete-html-attribute-sanitization`) | security, external/cwe/cwe-20, external/cwe/cwe-079, external/cwe/cwe-116 | Highlights potential XSS vulnerabilities due to incomplete sanitization of HTML meta-characters. Results are shown on LGTM by default. |
| Unsafe expansion of self-closing HTML tag (`js/unsafe-html-expansion`) | security, external/cwe/cwe-079, external/cwe/cwe-116 | Highlights potential XSS vulnerabilities caused by unsafe expansion of self-closing HTML tags. |
| Unsafe shell command constructed from library input (`js/shell-command-constructed-from-input`) | correctness, security, external/cwe/cwe-078, external/cwe/cwe-088 | Highlights potential command injections due to a shell command being constructed from library inputs. Results are shown on LGTM by default. |
| Download of sensitive file through insecure connection (`js/insecure-download`) | security, external/cwe/cwe-829 | Highlights downloads of sensitive files through an unencrypted protocol. Results are shown on LGTM by default. |
| Exposure of private files (`js/exposure-of-private-files`) | security, external/cwe/cwe-200 | Highlights servers that serve private files. Results are shown on LGTM by default. |
| Creating biased random numbers from a cryptographically secure source (`js/biased-cryptographic-random`) | security, external/cwe/cwe-327 | Highlights mathematical operations on cryptographically secure numbers that can create biased results. Results are shown on LGTM by default. |
| Storage of sensitive information in build artifact (`js/build-artifact-leak`) | security, external/cwe/cwe-312 | Highlights storage of sensitive information in build artifacts. Results are shown on LGTM by default. |
| Improper code sanitization (`js/bad-code-sanitization`) | security, external/cwe/cwe-094, external/cwe/cwe-079, external/cwe/cwe-116 | Highlights string concatenation where code is constructed without proper sanitization. Results are shown on LGTM by default. |
| Disabling certificate validation (`js/disabling-certificate-validation`) | security, external/cwe-295 | Highlights locations where SSL certificate validation is disabled. Results are shown on LGTM by default. |
| Incomplete multi-character sanitization (`js/incomplete-multi-character-sanitization`) | correctness, security, external/cwe/cwe-20, external/cwe/cwe-116 | Highlights sanitizers that fail to remove dangerous substrings completely. Results are shown on LGTM by default. |

## Changes to existing queries

Expand All @@ -42,14 +57,19 @@
| Client-side cross-site scripting (`js/xss`) | Fewer results | This query now recognizes additional safe patterns of constructing HTML. |
| Client-side URL redirect (`js/client-side-unvalidated-url-redirection`) | Fewer results | This query now recognizes additional safe patterns of doing URL redirects. |
| Code injection (`js/code-injection`) | More results | More potential vulnerabilities involving NoSQL code operators are now recognized. |
| Exception text reinterpreted as HTML (`js/exception-xss`) | Rephrased and changed visibility | Rephrased name and alert message. Severity lowered from error to warning. Results are now shown on LGTM by default. |
| Expression has no effect (`js/useless-expression`) | Fewer results | This query no longer flags an expression when that expression is the only content of the containing file. |
| Hard-coded credentials (`js/hardcoded-credentials`) | More results | This query now recognizes hard-coded credentials sent via HTTP authorization headers. |
| Incomplete URL scheme check (`js/incomplete-url-scheme-check`) | More results | This query now recognizes additional url scheme checks. |
| Insecure randomness (`js/insecure-randomness`) | Fewer results | This query now recognizes when an insecure random value is used as a fallback when secure random values are unsupported. |
| Misspelled variable name (`js/misspelled-variable-name`) | Message changed | The message for this query now correctly identifies the misspelled variable in additional cases. |
| Non-linear pattern (`js/non-linear-pattern`) | Fewer duplicates and message changed | This query now generates fewer duplicate alerts and has a clearer explanation in case of type annotations used in a pattern. |
| Prototype pollution in utility function (`js/prototype-pollution-utility`) | More results | This query now recognizes additional utility functions as vulnerable to prototype polution. |
| Uncontrolled command line (`js/command-line-injection`) | More results | This query now recognizes additional command execution calls. |
| Uncontrolled data used in path expression (`js/path-injection`) | More results | This query now recognizes additional file system calls. |
| Uncontrolled data used in path expression (`js/path-injection`) | Fewer results | This query no longer flags paths that have been checked to be part of a collection. |
| Unknown directive (`js/unknown-directive`) | Fewer results | This query no longer flags directives generated by the Babel compiler. |
| Unneeded defensive code (`js/unneeded-defensive-code`) | Fewer false-positive results | This query now recognizes checks meant to handle the `document.all` object. |
| Unused property (`js/unused-property`) | Fewer results | This query no longer flags properties of objects that are operands of `yield` expressions. |
| Zip Slip (`js/zipslip`) | More results | This query now recognizes additional vulnerabilities. |

Expand Down Expand Up @@ -85,3 +105,4 @@ The following low-precision queries are no longer run by default on LGTM (their
- `ParameterNode.asExpr()` and `.getAstNode()` now gets the parameter's AST node, whereas previously it had no result.
- `Expr.flow()` now has a more meaningful result for destructuring patterns. Previously this node was disconnected from the data flow graph. Now it represents the values being destructured by the pattern.
* The global data-flow and taint-tracking libraries now model indirect parameter accesses through the `arguments` object in some cases, which may lead to additional results from some of the security queries, particularly "Prototype pollution in utility function".
* The predicates `Type.getProperty()` and variants of `Type.getMethod()` have been deprecated due to lack of use-cases. Looking up a named property of a static type is no longer supported, favoring faster extraction times instead.
38 changes: 30 additions & 8 deletions config/identical-files.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"DataFlow Java/C++/C#": [
"DataFlow Java/C++/C#/Python": [
"java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl.qll",
"java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl2.qll",
"java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl3.qll",
Expand All @@ -18,15 +18,18 @@
"csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll",
"csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll",
"csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll",
"csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll"
"csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll",
"python/ql/src/experimental/dataflow/internal/DataFlowImpl.qll",
"python/ql/src/experimental/dataflow/internal/DataFlowImpl2.qll"
],
"DataFlow Java/C++/C# Common": [
"DataFlow Java/C++/C#/Python Common": [
"java/ql/src/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll",
"cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplCommon.qll",
"cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll",
"csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImplCommon.qll"
"csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImplCommon.qll",
"python/ql/src/experimental/dataflow/internal/DataFlowImplCommon.qll"
],
"TaintTracking::Configuration Java/C++/C#": [
"TaintTracking::Configuration Java/C++/C#/Python": [
"cpp/ql/src/semmle/code/cpp/dataflow/internal/tainttracking1/TaintTrackingImpl.qll",
"cpp/ql/src/semmle/code/cpp/dataflow/internal/tainttracking2/TaintTrackingImpl.qll",
"cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/tainttracking1/TaintTrackingImpl.qll",
Expand All @@ -37,13 +40,15 @@
"csharp/ql/src/semmle/code/csharp/dataflow/internal/tainttracking4/TaintTrackingImpl.qll",
"csharp/ql/src/semmle/code/csharp/dataflow/internal/tainttracking5/TaintTrackingImpl.qll",
"java/ql/src/semmle/code/java/dataflow/internal/tainttracking1/TaintTrackingImpl.qll",
"java/ql/src/semmle/code/java/dataflow/internal/tainttracking2/TaintTrackingImpl.qll"
"java/ql/src/semmle/code/java/dataflow/internal/tainttracking2/TaintTrackingImpl.qll",
"python/ql/src/experimental/dataflow/internal/tainttracking1/TaintTrackingImpl.qll"
],
"DataFlow Java/C++/C# Consistency checks": [
"DataFlow Java/C++/C#/Python Consistency checks": [
"java/ql/src/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll",
"cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplConsistency.qll",
"cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImplConsistency.qll",
"csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImplConsistency.qll"
"csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImplConsistency.qll",
"python/ql/src/experimental/dataflow/internal/DataFlowImplConsistency.qll"
],
"C++ SubBasicBlocks": [
"cpp/ql/src/semmle/code/cpp/controlflow/SubBasicBlocks.qll",
Expand Down Expand Up @@ -96,10 +101,18 @@
"cpp/ql/src/semmle/code/cpp/ir/implementation/UseSoundEscapeAnalysis.qll",
"csharp/ql/src/experimental/ir/implementation/UseSoundEscapeAnalysis.qll"
],
"IR IRFunctionBase": [
"cpp/ql/src/semmle/code/cpp/ir/implementation/internal/IRFunctionBase.qll",
"csharp/ql/src/experimental/ir/implementation/internal/IRFunctionBase.qll"
],
"IR Operand Tag": [
"cpp/ql/src/semmle/code/cpp/ir/implementation/internal/OperandTag.qll",
"csharp/ql/src/experimental/ir/implementation/internal/OperandTag.qll"
],
"IR TInstruction":[
"cpp/ql/src/semmle/code/cpp/ir/implementation/internal/TInstruction.qll",
"csharp/ql/src/experimental/ir/implementation/internal/TInstruction.qll"
],
"IR TIRVariable":[
"cpp/ql/src/semmle/code/cpp/ir/implementation/internal/TIRVariable.qll",
"csharp/ql/src/experimental/ir/implementation/internal/TIRVariable.qll"
Expand Down Expand Up @@ -177,6 +190,11 @@
"cpp/ql/src/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/IRBlockImports.qll",
"cpp/ql/src/semmle/code/cpp/ir/implementation/aliased_ssa/internal/IRBlockImports.qll"
],
"C++ IR IRFunctionImports": [
"cpp/ql/src/semmle/code/cpp/ir/implementation/raw/internal/IRFunctionImports.qll",
"cpp/ql/src/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/IRFunctionImports.qll",
"cpp/ql/src/semmle/code/cpp/ir/implementation/aliased_ssa/internal/IRFunctionImports.qll"
],
"C++ IR IRVariableImports": [
"cpp/ql/src/semmle/code/cpp/ir/implementation/raw/internal/IRVariableImports.qll",
"cpp/ql/src/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/IRVariableImports.qll",
Expand Down Expand Up @@ -287,6 +305,10 @@
"csharp/ql/src/experimental/ir/implementation/raw/internal/IRBlockImports.qll",
"csharp/ql/src/experimental/ir/implementation/unaliased_ssa/internal/IRBlockImports.qll"
],
"C# IR IRFunctionImports": [
"csharp/ql/src/experimental/ir/implementation/raw/internal/IRFunctionImports.qll",
"csharp/ql/src/experimental/ir/implementation/unaliased_ssa/internal/IRFunctionImports.qll"
],
"C# IR IRVariableImports": [
"csharp/ql/src/experimental/ir/implementation/raw/internal/IRVariableImports.qll",
"csharp/ql/src/experimental/ir/implementation/unaliased_ssa/internal/IRVariableImports.qll"
Expand Down
Loading