mirror of
https://github.com/github/codeql.git
synced 2025-12-17 09:13:20 +01:00
2.5 KiB
2.5 KiB
0.3.4
Deprecated APIs
- Many classes/predicates/modules with upper-case acronyms in their name have been renamed to follow our style-guide. The old name still exists as a deprecated alias.
- The utility files previously in the
semmle.code.java.security.performancepackage have been moved to thesemmle.code.java.security.regexppackage.
The previous files still exist as deprecated aliases.
New Features
- Added a new predicate,
requiresPermissions, in theAndroidComponentXmlElementandAndroidApplicationXmlElementclasses to detect if the element has explicitly set a value for itsandroid:permissionattribute. - Added a new predicate,
hasAnIntentFilterElement, in theAndroidComponentXmlElementclass to detect if a component contains an intent filter element. - Added a new predicate,
hasExportedAttribute, in theAndroidComponentXmlElementclass to detect if a component has anandroid:exportedattribute. - Added a new class,
AndroidCategoryXmlElement, to represent a category element in an Android manifest file. - Added a new predicate,
getACategoryElement, in theAndroidIntentFilterXmlElementclass to get a category element of an intent filter. - Added a new predicate,
isInBuildDirectory, in theAndroidManifestXmlFileclass. This predicate detects if the manifest file is located in a build directory. - Added a new predicate,
isDebuggable, in theAndroidApplicationXmlElementclass. This predicate detects if the application element has itsandroid:debuggableattribute enabled.
Minor Analysis Improvements
- Added new flow steps for the classes
java.nio.file.Pathandjava.nio.file.Paths. - The class
AndroidFragmentnow also models the Android Jetpack version of theFragmentclass (androidx.fragment.app.Fragment). - Java 19 builds can now be extracted. There are no non-preview new language features in this release, so the only user-visible change is that the CodeQL extractor will now correctly trace compilations using the JDK 19 release of
javac. - Classes and methods that are seen with several different paths during the extraction process (for example, packaged into different JAR files) now report an arbitrarily selected location via their
getLocationandhasLocationInfopredicates, rather than reporting all of them. This may lead to reduced alert duplication. - The query
java/hardcoded-credential-api-callnow recognises methods that consume usernames, passwords and keys from the JSch, Ganymed, Apache SSHD, sshj, Trilead SSH-2, Apache FTPClient and MongoDB projects.