Skip to content

Create SECURITY.dc #3168

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3,317 commits into
base: cs/assembly-prefix
Choose a base branch
from
Open
Changes from all commits
Commits
Show all changes
3317 commits
Select commit Hold shift + click to select a range
787b80f
Python: ObjectAPI.qll: Adds `getOrigin` predicate
BekaValentine Mar 16, 2020
5d55db1
Python: Exceptions.qll: Updates `handledObject` to use `getOrigin`
BekaValentine Mar 16, 2020
730396d
JS: add Mongoose createConnection tests
esbena Mar 14, 2020
dc27a8f
JS: model mongoose Model on createConnection.<model/models>
esbena Mar 14, 2020
55ab519
JS: add Mongoose Document tests
esbena Mar 14, 2020
9d9926f
JS: model Mongoose Document for additional js/nosql-injection sinks
esbena Mar 14, 2020
833d1b1
JS: fixup mongoose test
esbena Mar 16, 2020
b75486b
JS: refactor NoSQL::Mongoose. Introduce Mongoose::CommonInterface
esbena Mar 16, 2020
7dc8066
Merge pull request #3045 from Semmle/esbena-patch-2
esbena Mar 16, 2020
45e47b9
Python: IllegalExceptionHandlerType.ql: Autoformats
BekaValentine Mar 16, 2020
34ab4ef
Python: ObjectAPI.qll: getOrigin now returns a CFG
BekaValentine Mar 16, 2020
c7a2925
Python: Exceptions.qll: Clean up handleObject again
BekaValentine Mar 16, 2020
68c455c
Python: IncorrectExceptOrder.ql: Autoformats w/ new QL indentation
BekaValentine Mar 16, 2020
ff6e0ce
Python: UnguardedNextInGenerator.ql: Excludes `next` with default value
BekaValentine Mar 17, 2020
de2d23b
C++/C#: autoformat
rdmarsh2 Mar 17, 2020
9899d46
Docs: refactor guidelines for new queries
jbj Mar 13, 2020
d7b69fc
autoformat
erik-krogh Mar 17, 2020
9c9e302
Java: Add URLDecoder.decode as taint step.
aschackmull Mar 17, 2020
095d4d7
change import to an absolute import to fix warning
erik-krogh Mar 17, 2020
380f66c
JS: rename Mongoose::CommonInterfase -> Mongoose::InvokeNode
esbena Mar 17, 2020
9a3176d
Apply suggestions from code review
erik-krogh Mar 17, 2020
1dfe9e9
changes based on review
erik-krogh Mar 17, 2020
9403026
add change note
erik-krogh Mar 17, 2020
1472bf0
Merge pull request #3078 from jbj/contributing-supported-2
p0 Mar 17, 2020
ea46873
Merge pull request #3065 from erik-krogh/PathSinks
semmle-qlci Mar 17, 2020
fa08258
Merge pull request #3036 from erik-krogh/CustomTrack
semmle-qlci Mar 17, 2020
8792d0d
Merge pull request #3070 from erik-krogh/DataPerf
semmle-qlci Mar 17, 2020
0645940
Address review comments
hvitved Mar 17, 2020
2e8bd5c
Data flow: Sync files
hvitved Mar 17, 2020
9cc3cda
C++: Model varargs in IR, Part I
dbartol Mar 17, 2020
3a66b04
C#: add debug switch to IRConfiguration
rdmarsh2 Mar 17, 2020
84a74f4
Merge pull request #3002 from theopolis/cpp-linux-drop-privileges-out…
rdmarsh2 Mar 17, 2020
a7a6495
Python: ObjectAPI.qll: Fixes docstring
BekaValentine Mar 17, 2020
ca26fee
Merge pull request #2978 from BekaValentine/python-objectapi-to-value…
tausbn Mar 17, 2020
f351916
Merge branch 'master' into testmerge
BekaValentine Mar 17, 2020
46567a5
Merge pull request #3029 from BekaValentine/python-objectapi-to-value…
tausbn Mar 17, 2020
709757f
Merge remote-tracking branch 'upstream/master' into dbartol/static-lo…
dbartol Mar 17, 2020
772324f
C++: Add comment with IR for dynamic init of static var
dbartol Mar 17, 2020
309ccf3
C++: Factor out common code to avoid recursion
dbartol Mar 17, 2020
93c6f8f
Merge pull request #3056 from dbartol/dbartol/static-locals
jbj Mar 18, 2020
260bfe7
C++: Manual magic in inStaticInitializer
jbj Mar 18, 2020
d74c16f
Update javascript/ql/src/semmle/javascript/frameworks/NoSQL.qll
esbena Mar 18, 2020
b9860d3
Update javascript/ql/src/semmle/javascript/frameworks/NoSQL.qll
esbena Mar 18, 2020
ce3b196
Update javascript/ql/src/semmle/javascript/frameworks/NoSQL.qll
esbena Mar 18, 2020
12d8177
Update javascript/ql/src/semmle/javascript/frameworks/NoSQL.qll
esbena Mar 18, 2020
b1a722f
JS: typo fix
esbena Mar 18, 2020
396678f
Java: Add apache Base64 taint steps.
aschackmull Mar 18, 2020
f1ad0da
Merge pull request #2849 from geoffw0/model-gets
jbj Mar 18, 2020
8da0584
JS: Add test
asgerf Feb 21, 2020
83606e7
JS: Dont use data label in taint-tracking configs
asgerf Feb 20, 2020
a195429
JS: Add test with non-guard sanitizer
asgerf Feb 21, 2020
ad2b150
JS: Add change note
asgerf Feb 26, 2020
08ad4f7
JS: Tweak other parts of change note for consistency
asgerf Feb 26, 2020
4e75fe3
JS: Update some qldoc comments
asgerf Feb 26, 2020
0edb765
JS: Split test case function in two
asgerf Mar 4, 2020
de7fbce
JS: Adjust whitespace in change notes
asgerf Mar 4, 2020
a9901a4
JS: Update TaintBarriers/isBarrier test
asgerf Mar 4, 2020
18eea96
JS: Autoformat
asgerf Mar 7, 2020
3e68072
JS: Accept test case change
asgerf Mar 8, 2020
a7e337a
JS: Add some lines in test case
asgerf Mar 8, 2020
0280221
JS: Add variant of test that passes
asgerf Mar 8, 2020
506ddaf
JS: Add explanation for test failure
asgerf Mar 8, 2020
7393844
JS: Update some queries that used data as source
asgerf Mar 18, 2020
321b912
Address review comments
hvitved Mar 18, 2020
3bd6429
Data flow: Sync files
hvitved Mar 18, 2020
57af7b8
Python: Prepare for autoformatting.
tausbn Mar 18, 2020
a23077a
C++: Comments for future maintainers
jbj Mar 18, 2020
26ea93a
Merge remote-tracking branch 'upstream/master' into dbartol/VarArgIR
dbartol Mar 18, 2020
4fce201
C++: Fix formatting
dbartol Mar 18, 2020
fed1bce
C++: Make vararg utilities internal for now.
dbartol Mar 18, 2020
0329327
C++: Move VarArgs utilities location
dbartol Mar 18, 2020
b030315
Merge pull request #3088 from tausbn/python-prepare-autoformatting
RasmusWL Mar 18, 2020
290e33a
Merge pull request #2922 from tausbn/python-fix-multi-assign-points-to
RasmusWL Mar 18, 2020
ae1268f
Merge branch 'master' into python-add-points-to-for-missing-builtin-r…
tausbn Mar 18, 2020
9a0b2b1
Merge pull request #2989 from BekaValentine/python-objectapi-to-value…
RasmusWL Mar 18, 2020
d0aaaad
Address review comments
hvitved Mar 18, 2020
9379245
Data flow: Sync files
hvitved Mar 18, 2020
30d2b86
C++: Fix formatting
dbartol Mar 18, 2020
a309545
Merge pull request #3085 from jbj/inStaticInitializer-AggregateLiteral
rdmarsh2 Mar 18, 2020
9560c80
Update python/ql/test/query-tests/Exceptions/generators/test.py
BekaValentine Mar 18, 2020
06f0947
Update python/ql/src/Exceptions/UnguardedNextInGenerator.ql
BekaValentine Mar 18, 2020
b6ca4fb
JS: Add getDefaultSourceLabel()
asgerf Mar 18, 2020
3ae33e3
JS: Update prototype pollution query
asgerf Mar 18, 2020
f4e5079
Merge pull request #2991 from BekaValentine/python-objectapi-to-value…
RasmusWL Mar 19, 2020
4f42675
JS: Autformat
asgerf Mar 19, 2020
2821b01
Merge pull request #2915 from tausbn/python-add-points-to-for-missing…
semmle-qlci Mar 19, 2020
d91e6a4
JavaScript: Avoid a few bad join orders.
Feb 25, 2020
ee62706
JavaScript: Split up a predicate to avoid bad join order.
Mar 18, 2020
deb20fc
Merge pull request #3076 from esbena/js/even-more-mongoose-improvements
semmle-qlci Mar 19, 2020
7f0181c
C#: Add `XPathNavigator` test for `cs/xml/xpath-injection`
hvitved Mar 19, 2020
4b3cf72
C#: Teach XPath injection query about `XPathNavigator`
hvitved Mar 19, 2020
0d45700
C#: Add change note
hvitved Mar 19, 2020
fc74a48
C#: More XPath injection sinks
hvitved Mar 19, 2020
74f61dc
C++: Fix formatting
dbartol Mar 19, 2020
67cb852
Merge pull request #3082 from dbartol/dbartol/VarArgIR
MathiasVP Mar 19, 2020
bf28451
C++: Better IR for varargs
dbartol Mar 19, 2020
90a3241
add extra sinks to js/tainted-path
erik-krogh Mar 18, 2020
f88cc2a
inline promiseStep predicate
erik-krogh Mar 18, 2020
2d90e7d
Autoformat
hvitved Mar 20, 2020
165dcd3
Python: Autoformat `library-tests`.
tausbn Mar 20, 2020
d8b942f
Python: Autoformat `objects`.
tausbn Mar 20, 2020
4852bb7
Python: Autoformat `pointsto`.
tausbn Mar 20, 2020
51f1cf0
Python: Autoformat `security`.
tausbn Mar 20, 2020
5b121b7
Python: Autoformat `values`.
tausbn Mar 20, 2020
f406a45
Python: Autoformat `web`.
tausbn Mar 20, 2020
810e91e
Python: Autoformat `semmle/python` top-level.
tausbn Mar 20, 2020
9044ff6
Python: Autoformat rest of `semmle/python`.
tausbn Mar 20, 2020
6904898
Python: Autoformat query-local libs.
tausbn Mar 20, 2020
a3bd46d
Python: Autoformat remaining `.qll`.
tausbn Mar 20, 2020
82e2816
C++: Fix handling of `std::va_list` that is used as a function parameter
dbartol Mar 20, 2020
f6f9afe
C++: Implement Instruction.isResultConflated
jbj Mar 20, 2020
bcda481
Merge pull request #3086 from aschackmull/java/apache-base64-taint
yo-h Mar 20, 2020
16f2957
Merge pull request #3081 from aschackmull/java/urldecoder-step
yo-h Mar 20, 2020
fb71f78
C++: Fix formatting
dbartol Mar 20, 2020
ee0b65a
Added experimental SockJS support
kyprizel Mar 20, 2020
79d5b88
C++: Remove redundant case
jbj Mar 20, 2020
888c504
Merge pull request #2903 from hvitved/dataflow/performance
aschackmull Mar 23, 2020
c789065
Java: Fix missing jump step from PostUpdate to capture.
aschackmull Mar 23, 2020
6d3717c
Java: Sharpen return type of LambdaExpr.getStmtBody().
aschackmull Mar 23, 2020
2c7af72
Merge pull request #2858 from RasmusWL/python-support-django2
semmle-qlci Mar 23, 2020
9eee16b
Merge pull request #3091 from hvitved/csharp/xpath-injection-more-sinks
lcartey Mar 23, 2020
2c43d1d
fix FP in superfluous-trailing-arguments related to Function.arguments
erik-krogh Mar 23, 2020
4bc0cb0
Java: Fixup FinalizeMethod definition.
aschackmull Mar 23, 2020
dcfc9a8
Python: TarSlip sanitizer: explain tests with `not`
RasmusWL Mar 23, 2020
6c2842b
Merge pull request #2919 from asger-semmle/js/property-barriers
asgerf Mar 23, 2020
b13e614
JavaScript: Inline `promiseStep/4`.
Mar 23, 2020
f1e0d37
Update javascript/ql/test/library-tests/frameworks/Concepts/file-acce…
erik-krogh Mar 23, 2020
7bc7fff
autoformat
erik-krogh Mar 23, 2020
833183c
change note
erik-krogh Mar 23, 2020
1346592
Merge pull request #3092 from dbartol/dbartol/VarArgIR2_ElectricBoogaloo
jbj Mar 23, 2020
49e5a22
Fixed code style for SockJS
kyprizel Mar 23, 2020
55e7b22
JavaScript: Autoformat.
Mar 23, 2020
d475bb9
Python: Add abstract class CommandSink
RasmusWL Mar 23, 2020
e559009
Merge pull request #3109 from max-schaefer/js/performance-fixes
semmle-qlci Mar 23, 2020
a57eada
Python: Model fabric/invoke command injection sinks
RasmusWL Mar 23, 2020
b567205
Python: Model fabric v1.x command injection sinks
RasmusWL Mar 23, 2020
a2741da
C++/C#: Add sanity test for invalid overlap from `getDefinitionOverla…
dbartol Mar 23, 2020
b0d3c9e
C++: Fix getExtentOverlap for entire allocation
jbj Mar 23, 2020
c5ac357
C++/C#: Fix bad overlap sanity failures
dbartol Mar 23, 2020
999051d
C++: QLDoc terminology: object -> mem allocation
jbj Mar 23, 2020
29c4c8c
C#: Fixup to follow C++ changes
jbj Mar 23, 2020
b90ff5e
Update javascript/ql/src/experimental/SockJS/SockJS.qll
kyprizel Mar 23, 2020
dec1b8b
Update javascript/ql/src/experimental/SockJS/SockJS.qll
kyprizel Mar 23, 2020
bebf89f
C++: Accept test diffs
dbartol Mar 23, 2020
d315864
Merge pull request #3108 from aschackmull/java/finalizemethod
yo-h Mar 23, 2020
a1e032b
Merge pull request #3098 from kyprizel/master
asgerf Mar 23, 2020
7b7eddf
remove previous SockJS implementation, and move example to WebSocket …
erik-krogh Mar 23, 2020
9a18dc3
autoformat WebSocket tests
erik-krogh Mar 23, 2020
6a1491d
add SockJS to the existing WebSocket model
erik-krogh Mar 23, 2020
5b4f091
add test for remote flow sources in WebSockets
erik-krogh Mar 23, 2020
4c9a6b7
Merge pull request #3107 from erik-krogh/FArgs
semmle-qlci Mar 24, 2020
4b8020b
Python: Autoformat Command.qll
RasmusWL Mar 24, 2020
49fa7c8
Python: update 1.24 changelog
RasmusWL Mar 24, 2020
36981f3
Merge branch 'master' of git.semmle.com:Semmle/ql into MorePathSinks
erik-krogh Mar 24, 2020
5ec0716
Python: Add points-to regression when using @classmethod decorators
RasmusWL Mar 24, 2020
3ed48aa
Python: remove leftover arg in test code
RasmusWL Mar 24, 2020
fe00d1c
Merge pull request #2888 from RasmusWL/python-tarslip-sanitizer
tausbn Mar 24, 2020
95a8dcb
C++: failing test for non-conflated escaped var
jbj Mar 24, 2020
2783214
C++: Phi-node conflation is not about vvars
jbj Mar 24, 2020
05ecfc8
Python: Add test-case with swapped decorator order
RasmusWL Mar 24, 2020
d8edae9
Java: Add test.
aschackmull Mar 24, 2020
ce0b72f
Merge pull request #3093 from erik-krogh/MorePathSinks
semmle-qlci Mar 24, 2020
cc76782
Merge remote-tracking branch 'upstream/master' into codeql-c-analysis…
dbartol Mar 24, 2020
4e58886
C++: Sync identical files
jbj Mar 24, 2020
8f419d1
C++: Fix conflated-memory sanity query
jbj Mar 24, 2020
75523e4
Java: Fix directory structure in experimental.
aschackmull Mar 24, 2020
efbcec0
JavaScript: Add type tracking to Postgres model.
Mar 23, 2020
2b69cc9
C#: Make `IRConfiguration.qll` just forward to the implementation
dbartol Mar 24, 2020
7de8b48
Java: Add taint steps through Jackson serialization methods.
adityasharad Mar 14, 2020
a6e039b
Java: Add tests for Jackson taint steps.
adityasharad Mar 14, 2020
ac68b62
Merge pull request #3115 from aschackmull/java/experimental-dir
yo-h Mar 24, 2020
116c13e
Merge pull request #3106 from aschackmull/java/getstmtbody-type
yo-h Mar 24, 2020
3000486
add more isRelevant calls
erik-krogh Mar 20, 2020
6f0e507
outline predicate to fix join-ordering
erik-krogh Mar 22, 2020
f2b9e20
remove isRelevant from flowStep
erik-krogh Mar 24, 2020
ae076da
Merge pull request #3112 from dbartol/codeql-c-analysis/34-Bad-Overlap
MathiasVP Mar 25, 2020
ac7c74d
Merge pull request #3111 from RasmusWL/python-fabric-command-injection
semmle-qlci Mar 25, 2020
a413a32
Merge pull request #3114 from RasmusWL/python-add-fp-for-non-callable
semmle-qlci Mar 25, 2020
f7faaa6
change-note
erik-krogh Mar 25, 2020
12c6997
Python: Reduce result set in custom taint sanitizer
RasmusWL Mar 25, 2020
2b2667a
Merge remote-tracking branch 'upstream/master' into detect-conflated-…
jbj Mar 25, 2020
dc9dbf3
Python: Autoformat
RasmusWL Mar 25, 2020
abcdfe3
use LibraryName class for websocket library names
erik-krogh Mar 25, 2020
cf5b1f0
Merge pull request #3019 from erik-krogh/ArrayStep
semmle-qlci Mar 25, 2020
3767794
Merge pull request #2975 from rdmarsh2/printir-generate-all
dbartol Mar 25, 2020
1edd492
C++: Late fix for PR feedback
dbartol Mar 25, 2020
bc3bdbb
C++: Improve QLDoc for Function.getParameter
jbj Mar 12, 2020
f981ce6
Merge pull request #3122 from jbj/getParameter-docs
dbartol Mar 25, 2020
4b0bc6b
autoformat
erik-krogh Mar 25, 2020
e7fd97e
Merge pull request #3119 from erik-krogh/SockJS
semmle-qlci Mar 25, 2020
9a78d38
add a new LoadStoreStep as a StepSummary for TypeTracking
erik-krogh Mar 25, 2020
00181e0
add tests for type-tracking promises
erik-krogh Mar 25, 2020
1a2983f
support small steps for promise tracking
erik-krogh Mar 25, 2020
8f45c8f
use LoadStoreStep for type-tracking promises
erik-krogh Mar 25, 2020
1cefa12
update expected output
erik-krogh Mar 25, 2020
e6cdbb9
Merge pull request #3121 from dbartol/dbartol/ir-generate-all-fixup
rdmarsh2 Mar 26, 2020
0f70da2
Merge pull request #3105 from aschackmull/java/postupdate-jump
yo-h Mar 26, 2020
783cee3
mention set literals in the specification
ginsbach Mar 26, 2020
f4a1479
sentence about semantics
ginsbach Mar 26, 2020
a8660d4
C#: Fix typo
hvitved Mar 26, 2020
71c588a
information on version support
ginsbach Mar 26, 2020
baf50c8
more precise charpreds in taint steps
erik-krogh Mar 26, 2020
e2d2c23
autoformat and update expected output
erik-krogh Mar 26, 2020
96d1fc8
Python: Fix iterable-unpacking taint CP
RasmusWL Mar 26, 2020
7879dde
Merge pull request #3097 from jbj/detect-conflated-memory
dbartol Mar 26, 2020
782f2b5
Merge pull request #3073 from hvitved/csharp/null-maybe-fp
calumgrant Mar 26, 2020
2801941
C++: Never track flow out of an argv argument
jbj Mar 26, 2020
968ddc6
Merge pull request #3137 from jbj/DefaultTaintTracking-argv
rdmarsh2 Mar 26, 2020
be11418
autoformat
erik-krogh Mar 26, 2020
1975a83
Merge pull request #3116 from max-schaefer/js/postgres-type-tracking
semmle-qlci Mar 27, 2020
8aadb8b
Python: Fix iterable-unpacking tests
RasmusWL Mar 27, 2020
9ab8580
Data flow: No magic in parameterThroughFlowCand
MathiasVP Mar 27, 2020
7890a32
C++/C#/Java: Sync identical files
MathiasVP Mar 27, 2020
8e873f3
mention set literals in handbook
ginsbach Mar 27, 2020
1b4df6e
whitespace fix
ginsbach Mar 27, 2020
9b34003
Merge pull request #3130 from erik-krogh/PreciseSteps
semmle-qlci Mar 27, 2020
fad902f
Merge pull request #3095 from erik-krogh/MorePerf
semmle-qlci Mar 27, 2020
135a288
Update docs/language/ql-handbook/expressions.rst
ginsbach Mar 27, 2020
05be9b8
better wording for type compatibilit
ginsbach Mar 27, 2020
875a70c
Merge pull request #3129 from ginsbach/master
hmakholm Mar 27, 2020
0b62a1d
Merge pull request #3144 from ginsbach/setliteralhandbook
shati-patel Mar 27, 2020
3039aaf
C++: Fix test expectations for complex literals
dbartol Mar 27, 2020
d55acc3
Python: Constrain execution paths for taint_at_depth
RasmusWL Mar 27, 2020
2c571d3
Update language.rst
jf205 Mar 27, 2020
28e5904
Merge pull request #3149 from Semmle/jf205-patch-2
shati-patel Mar 27, 2020
1baf5df
Merge pull request #3147 from dbartol/dbartol/FloatLiterals
nickrolfe Mar 27, 2020
57c9277
Merge pull request #3142 from MathiasVP/no-magic-in-parameterThroughF…
aschackmull Mar 30, 2020
b2769b4
Merge pull request #3117 from adityasharad/java/jackson-taint-steps
aschackmull Mar 30, 2020
b4fbfa0
Merge pull request #3132 from RasmusWL/python-fix-iterable-unpacking-…
tausbn Mar 30, 2020
e5e94e3
Data flow: Add module doc comment for `TaintTrackingImpl.qll`
Mar 30, 2020
87a9f51
Python: Autoformat all `.ql` files.
tausbn Mar 30, 2020
caf0d15
Merge pull request #3155 from max-schaefer/add-module-comment
aschackmull Mar 30, 2020
6eb9c6f
Merge branch 'master' into python-autoformat-almost-everything
tausbn Mar 30, 2020
727cde3
Python: Autoformat a few final stragglers.
tausbn Mar 30, 2020
ab4cef5
Python: Autoformat one final straggler.
tausbn Mar 30, 2020
9fa9c10
Merge pull request #2921 from aschackmull/dataflow/consistency-checks
hvitved Mar 30, 2020
fce04f0
Merge pull request #3127 from erik-krogh/PromiseTrack
semmle-qlci Mar 30, 2020
b990fac
Python: Fix test failures.
tausbn Mar 30, 2020
3657514
Docs: Bump supported Go version.
max-schaefer Mar 30, 2020
dd322be
C++: Remove noise from argHasPostUpdate check
jbj Mar 30, 2020
573494d
Merge pull request #3096 from tausbn/python-autoformat-almost-everything
RasmusWL Mar 30, 2020
0b4bfed
Merge pull request #3156 from tausbn/python-autoformat-all-ql-files
RasmusWL Mar 30, 2020
531ef64
C++: Fix other copies of the argHasPostUpdate test
jbj Mar 30, 2020
663dc24
Python: Apply suggestion from Taus
RasmusWL Mar 30, 2020
fad03e7
Python: Move helper predicate outside of class
RasmusWL Mar 30, 2020
6127d8b
Python: Fixup comment alignment
RasmusWL Mar 30, 2020
3027e5d
Merge pull request #3161 from Semmle/max-schaefer-patch-1
semmle-qlci Mar 30, 2020
4bbf462
Merge pull request #3162 from jbj/argHasPostUpdate-cpp
rdmarsh2 Mar 30, 2020
e31143c
Merge pull request #2889 from RasmusWL/python-add-custom-sanitizer-ex…
tausbn Mar 30, 2020
f04cfea
Create SECURITY.dc
wdcne Mar 31, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
4 changes: 2 additions & 2 deletions .codeqlmanifest.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{ "provide": [ "*/ql/src/qlpack.yml",
"*/ql/test/qlpack.yml",
"*/upgrades/qlpack.yml",
"misc/legacy-support/*/qlpack.yml",
"misc/suite-helpers/qlpack.yml",
"codeql/.codeqlmanifest.json" ] }
"misc/suite-helpers/qlpack.yml" ] }
24 changes: 24 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"C++":
- cpp/**/*
- change-notes/**/*cpp*

"C#":
- csharp/**/*
- change-notes/**/*csharp*

Java:
- java/**/*
- change-notes/**/*java.*

JS:
- javascript/**/*
- change-notes/**/*javascript*

Python:
- python/**/*
- change-notes/**/*python*

documentation:
- "**/*.qhelp"
- "**/*.md"
- docs/**/*
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# editor and OS artifacts
*~
.DS_STORE
*.swp

# query compilation caches
.cache
@@ -15,3 +16,5 @@

# It's useful (though not required) to be able to unpack codeql in the ql checkout itself
/codeql/
.vscode/settings.json
csharp/extractor/Semmle.Extraction.CSharp.Driver/Properties/launchSettings.json
3 changes: 2 additions & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
/cpp/ @Semmle/cpp-analysis
/csharp/ @Semmle/cs
/java/ @Semmle/java
/javascript/ @Semmle/js
/cpp/ @Semmle/cpp-analysis
/python/ @Semmle/python
/cpp/**/*.qhelp @hubwriter
/csharp/**/*.qhelp @jf205
/java/**/*.qhelp @felicitymay
73 changes: 41 additions & 32 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,60 +1,69 @@
# Contributing to QL
# Contributing to CodeQL

We welcome contributions to our standard library and standard checks. Got an idea for a new check, or how to improve an existing query? Then please go ahead and open a pull request!
We welcome contributions to our CodeQL libraries and queries. Got an idea for a new check, or how to improve an existing query? Then please go ahead and open a pull request!

Before we accept your pull request, we require that you have agreed to our Contributor License Agreement, this is not something that you need to do before you submit your pull request, but until you've done so, we will be unable to accept your contribution.
There is lots of useful documentation to help you write queries, ranging from information about query file structure to tutorials for specific target languages. For more information on the documentation available, see [Writing CodeQL queries](https://help.semmle.com/QL/learn-ql/writing-queries/writing-queries.html) on [help.semmle.com](https://help.semmle.com).

## Adding a new query

If you have an idea for a query that you would like to share with other Semmle users, please open a pull request to add it to this repository.
Follow the steps below to help other users understand what your query does, and to ensure that your query is consistent with the other Semmle queries.
## Submitting a new experimental query

1. **Consult the QL documentation for query writers**
If you have an idea for a query that you would like to share with other CodeQL users, please open a pull request to add it to this repository. New queries start out in a `<language>/ql/src/experimental` directory, to which they can be merged when they meet the following requirements.

There is lots of useful documentation to help you write QL, ranging from information about query file structure to language-specific tutorials. For more information on the documentation available, see [Writing QL queries](https://help.semmle.com/QL/learn-ql/writing-queries/writing-queries.html) on [help.semmle.com](https://help.semmle.com).
1. **Directory structure**

2. **Format your QL correctly**
There are five language-specific query directories in this repository:

All of Semmle's standard QL queries and libraries are uniformly formatted for clarity and consistency, so we strongly recommend that all QL contributions follow the same formatting guidelines. If you use QL for Eclipse, you can auto-format your query in the [QL editor](https://help.semmle.com/ql-for-eclipse/Content/WebHelp/ql-editor.html). For more information, see the [QL style guide](https://github.com/Semmle/ql/blob/master/docs/ql-style-guide.md).
* C/C++: `cpp/ql/src`
* C#: `csharp/ql/src`
* Java: `java/ql/src`
* JavaScript: `javascript/ql/src`
* Python: `python/ql/src`

3. **Make sure your query has the correct metadata**
Each language-specific directory contains further subdirectories that group queries based on their `@tags` or purpose.
- Experimental queries and libraries are stored in the `experimental` subdirectory within each language-specific directory in the [CodeQL repository](https://github.com/Semmle/ql). For example, experimental Java queries and libraries are stored in `java/ql/src/experimental` and any corresponding tests in `java/ql/test/experimental`.
- The structure of an `experimental` subdirectory mirrors the structure of its parent directory.
- Select or create an appropriate directory in `experimental` based on the existing directory structure of `experimental` or its parent directory.

Query metadata is used by Semmle's analysis to identify your query and make sure the query results are displayed properly.
The most important metadata to include are the `@name`, `@description`, and the `@kind`.
Other metadata properties (`@precision`, `@severity`, and `@tags`) are usually added after the query has been reviewed by Semmle staff.
For more information on writing query metadata, see the [Query metadata style guide](https://github.com/Semmle/ql/blob/master/docs/query-metadata-style-guide.md).
2. **Query metadata**

4. **Make sure the `select` statement is compatible with the query type**
- The query `@id` must conform to all the requirements in the [guide on query metadata](docs/query-metadata-style-guide.md#query-id-id). In particular, it must not clash with any other queries in the repository, and it must start with the appropriate language-specific prefix.
- The query must have a `@name` and `@description` to explain its purpose.
- The query must have a `@kind` and `@problem.severity` as required by CodeQL tools.

The `select` statement of your query must be compatible with the query type (determined by the `@kind` metadata property) for alert or path results to be displayed correctly in LGTM and QL for Eclipse.
For more information on `select` statement format, see [Introduction to query files](https://help.semmle.com/QL/learn-ql/writing-queries/introduction-to-queries.html#select-clause) on help.semmle.com.
For details, see the [guide on query metadata](docs/query-metadata-style-guide.md).

5. **Save your query in a `.ql` file in correct language directory in this repository**
Make sure the `select` statement is compatible with the query `@kind`. See [Introduction to query files](https://help.semmle.com/QL/learn-ql/writing-queries/introduction-to-queries.html#select-clause) on help.semmle.com.

There are five language-specific directories in this repository:

* C/C++: `ql/cpp/ql/src`
* C#: `ql/csharp/ql/src`
* Java: `ql/java/ql/src`
* JavaScript: `ql/javascript/ql/src`
* Python: `ql/python/ql/src`
3. **Formatting**

Each language-specific directory contains further subdirectories that group queries based on their `@tags` properties or purpose. Select the appropriate subdirectory for your new query, or create a new one if necessary.
- The queries and libraries must be [autoformatted](https://help.semmle.com/codeql/codeql-for-vscode/reference/editor.html#autoformatting).

6. **Write a query help file**
4. **Compilation**

Query help files explain the purpose of your query to other users. Write your query help in a `.qhelp` file and save it in the same directory as your new query.
For more information on writing query help, see the [Query help style guide](https://github.com/Semmle/ql/blob/master/docs/query-help-style-guide.md).
- Compilation of the query and any associated libraries and tests must be resilient to future development of the [supported](docs/supported-queries.md) libraries. This means that the functionality cannot use internal libraries, cannot depend on the output of `getAQlClass`, and cannot make use of regexp matching on `toString`.
- The query and any associated libraries and tests must not cause any compiler warnings to be emitted (such as use of deprecated functionality or missing `override` annotations).

5. **Results**

- The query must have at least one true positive result on some revision of a real project.

6. **Contributor License Agreement**

- The contributor can satisfy the [CLA](#contributor-license-agreement).

Experimental queries and libraries may not be actively maintained as the [supported](docs/supported-queries.md) libraries evolve. They may also be changed in backwards-incompatible ways or may be removed entirely in the future without deprecation warnings.

After the experimental query is merged, we welcome pull requests to improve it. Before a query can be moved out of the `experimental` subdirectory, it must satisfy [the requirements for being a supported query](docs/supported-queries.md).

## Using your personal data

If you contribute to this project, we will record your name and email
address (as provided by you with your contributions) as part of the code
repositories, which might be made public. We might also use this information
repositories, which are public. We might also use this information
to contact you in relation to your contributions, as well as in the
normal course of software development. We also store records of your
CLA agreements. Under GDPR legislation, we do this
on the basis of our legitimate interest in creating the QL product.
on the basis of our legitimate interest in creating the CodeQL product.

Please do get in touch (privacy@semmle.com) if you have any questions about
this or our data protection policies.
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Semmle QL
# CodeQL

This open source repository contains the standard QL libraries and queries that power [LGTM](https://lgtm.com), and the other products that [Semmle](https://semmle.com) makes available to its customers worldwide.
This open source repository contains the standard CodeQL libraries and queries that power [LGTM](https://lgtm.com) and the other CodeQL products that [GitHub](https://github.com) makes available to its customers worldwide.

## How do I learn QL and run queries?
## How do I learn CodeQL and run queries?

There is [extensive documentation](https://help.semmle.com/QL/learn-ql/) on getting started with writing QL.
You can use the [interactive query console](https://lgtm.com/help/lgtm/using-query-console) on LGTM.com or the [QL for Eclipse](https://lgtm.com/help/lgtm/running-queries-ide) plugin to try out your queries on any open-source project that's currently being analyzed.
There is [extensive documentation](https://help.semmle.com/QL/learn-ql/) on getting started with writing CodeQL.
You can use the [interactive query console](https://lgtm.com/help/lgtm/using-query-console) on LGTM.com or the [CodeQL for Visual Studio Code](https://help.semmle.com/codeql/codeql-for-vscode.html) extension to try out your queries on any open source project that's currently being analyzed.

## Contributing

We welcome contributions to our standard library and standard checks. Do you have an idea for a new check, or how to improve an existing query? Then please go ahead and open a pull request! Before you do, though, please take the time to read our [contributing guidelines](CONTRIBUTING.md). You can also consult our [style guides](https://github.com/Semmle/ql/tree/master/docs) to learn how to format your QL for consistency and clarity, how to write query metadata, and how to write query help documentation for your query.
We welcome contributions to our standard library and standard checks. Do you have an idea for a new check, or how to improve an existing query? Then please go ahead and open a pull request! Before you do, though, please take the time to read our [contributing guidelines](CONTRIBUTING.md). You can also consult our [style guides](https://github.com/Semmle/ql/tree/master/docs) to learn how to format your code for consistency and clarity, how to write query metadata, and how to write query help documentation for your query.

## License

The QL queries in this repository are licensed under [Apache License 2.0](LICENSE) by [Semmle](https://semmle.com).
The code in this repository is licensed under [Apache License 2.0](LICENSE) by [GitHub](https://github.com).
21 changes: 21 additions & 0 deletions SECURITY.dc
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Security Policy

## Supported Versions

Use this section to tell people about which versions of your project are
currently being supported with security updates.

| Version | Supported |
| ------- | ------------------ |
| 5.1.x | :white_check_mark: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| < 4.0 | :x: |

## Reporting a Vulnerability

Use this section to tell people how to report a vulnerability.

Tell them where to go, how often they can expect to get an update on a
reported vulnerability, what to expect if the vulnerability is accepted or
declined, etc.
Loading
Oops, something went wrong.