Java: Introduce a common sanitizer type for types which cannot realistically carry taint. #15291
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Many queries have dataflow/taint-tracking configurations with an
isBarrierdefinition which check if the node's type is aPrimitiveType,BoxedType,NumberType, etc.This introduces a new library
semmle.code.java.security.dataflow.CommonSanitizerswhich contains a new sanitizer classSimpleScalarSanitizer, which represents nodes which cannot realistically carry taint for most queries (e.g. primitives, their boxed equivalents, and numeric types).It also converts existing configurations/sanitizer classes to use
instanceof SimpleScalarSanitizerinstead.Important
I am still debating the naming of the library and class. If there is something better than "SimpleScalarSanitizer", I am open to changing the name.