-
Notifications
You must be signed in to change notification settings - Fork 379
Added confidential checker #6981
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
base: master
Are you sure you want to change the base?
Conversation
…ed references in code as necessary
…caped SQL values as SqlSanitized.
SQL tainting qualifiers and basic tests
…and SqlSanitizedUser
…bined SqlQuoteless and SqlEvenQuotes; revised documentations
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have just a couple last comments.
checker/src/main/java/org/checkerframework/checker/confidential/ConfidentialTransfer.java
Show resolved
Hide resolved
checker/src/main/java/org/checkerframework/checker/confidential/ConfidentialTransfer.java
Outdated
Show resolved
Hide resolved
# Conflicts: # checker/src/main/java/org/checkerframework/checker/confidential/ConfidentialTransfer.java
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a new Confidential Checker to the Checker Framework that identifies sensitive information exposure (information leakage). The checker prevents confidential values from flowing to non-confidential locations, helping prevent security vulnerabilities like PII exposure in logs, UI elements, or other public-facing sinks.
Key changes:
- Implements a complete type system with
@Confidential
,@NonConfidential
,@UnknownConfidential
, and related qualifiers - Adds extensive library annotations for logging frameworks (Log4j, SLF4J, Apache Commons), Android UI components, and Spring Security
- Includes comprehensive documentation and test cases
Reviewed Changes
Copilot reviewed 49 out of 50 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
checker-qual/src/main/java/org/checkerframework/checker/confidential/qual/*.java | Core qualifier annotations defining the confidential type hierarchy |
checker/src/main/java/org/checkerframework/checker/confidential/*.java | Main checker implementation with type factory, visitor, and transfer functions |
checker/src/main/java/org/checkerframework/checker/confidential/*.astub | Library annotations for popular frameworks (Spring Security, logging libraries, Android) |
docs/manual/confidential-checker.tex | Complete documentation chapter explaining the checker's purpose and usage |
framework/tests/all-systems/*.java | Test files with @SuppressWarnings annotations for confidential checker warnings |
Associated with JDK pull request #224