Java: Promote Unsafe certificate trust query from experimental#6171
Conversation
|
This kind-of collides with #4879, which removes everything related to |
9974117 to
3f94ab9
Compare
Yes, just noticed a bunch of conflicts :-P Rebased to resolve them - let me know if you spot any lingering code that shouldn't be in this query. Thanks for pointing this out @intrigus-lgtm |
|
@github/docs-content-codeql please review the qhelp file. Even though changes aren't introduced in this PR, it wasn't reviewed when this query was merged to experimental. |
|
|
mchammer01
left a comment
There was a problem hiding this comment.
@atorralba - this LGTM ✨
A few minor nits (see inline comments for more info)
|
Thanks @mchammer01, your reviews are really helpful! All comments applied. |
a2c3a59 to
2312fe5
Compare
- Move classes and predicates to appropriate libraries - Overhaul the endpoint identification algorithm logic to use taint tracking - Adapt tests
Co-authored-by: Marcono1234 <Marcono1234@users.noreply.github.com>
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com>
f72e7e0 to
695e77a
Compare
PR to promote the Unsafe certificate trust query created in #3550
Changes
UnsafeCertTrust.qllfile was created to contain most of the classes and predicates used by the query.Networking.qllandEncryption.qlllibraries.SslEndpointIdentificationFlowConfig).InlineExpectationsTestand added some RabbitMQ stubs.Evaluation
➕ The following CVEs are now detected by the query:
✅ The following CVEs are still detected by the query:
➡️ The following CVEs are now detected by the Insecure TrustManager query (#4879):
❌ The following CVEs are no longer detected by the query:
To Consider
SafeSslParametersFlowConfigarePostUpdateNodes because what characterizes them is the update done bysetEndpointIdentificationAlgorithm.isSslSocketis an heuristic and could (probably) be improved.SslConnectionWithSafeSslParametersuseslocalFlowto add subsequent uses of the sanitizer. This is to correctly identify sanitizers that are added with the following pattern:where
safeis a boolean that is (almost) always true (e.g. a configuration value that defaults to true, or something likesocket instanceof SSLSocket). This is needed because the fix applied to several CVEs follows this pattern, e.g. a configuration value is added in order to give the user the option to revert to the old behavior (no forced hostname verification).