- Added support for neutral models (
extensible: neutralModel) to control where generated source, sink and flow summary models apply.
No user-facing changes.
- The predicate
SummarizedCallable.propagatesFlowhas been extended with the columnsProvenance pandboolean isExact, and as a consequence the predicatesSummarizedCallable.hasProvenanceandSummarizedCallable.hasExactModelhave been removed. - Added type inference support for the
FnMut(..) -> ..andFn(..) -> ..traits. They now work in type parameter bounds and are implemented by closures.
- The
Dereftrait is now considered during method resolution. This means that method calls on receivers implementing theDereftrait will correctly resolve to methods defined on the target type. This may result in additional query results, especially for data flow queries. - Renamed the
Adtclass toTypeItemand moved common predicates fromStruct,Enum, andUniontoTypeItem. - Added models for the Axum web application framework.
- Reading content of a value now carries taint if the value itself is tainted. For instance, if
sis tainted thens.fieldis also tainted. This generally improves taint flow. - The call graph is now more precise for calls that target a trait function with a default implementation. This reduces the number of false positives for data flow queries.
- Improved type inference for raw pointers (
*constand*mut). This includes type inference for the raw borrow operators (&raw constand&raw mut) and dereferencing of raw pointers.
No user-facing changes.
No user-facing changes.
No user-facing changes.
- The type
DataFlow::Nodeis now based directly on the AST instead of the CFG, which means that predicates likeasExpr()return AST nodes instead of CFG nodes.
- Added more detailed models for
std::fsandstd::path.
- Added models for cookie methods in the
poemcrate.
- Resolution of calls to functions has been improved in a number of ways, to make it more aligned with the behavior of the Rust compiler. This may impact queries that rely on call resolution, such as data flow queries.
- Added basic models for the
actix-webweb framework.
- Added
ExtractedFile::hasSemanticsandExtractedFile::isSkippedByCompilationpredicates. - Generalized some existing models to improve data flow.
- Added models for the
mysqlandmysql_asynclibraries.
- Rust analysis is now Generally Available (GA).
- Improve data flow through functions being passed as function pointers.
- The models-as-data format for sources now supports access paths of the form
Argument[i].Parameter[j]. This denotes that the source passes tainted data to thejth parameter of itsith argument (which must be a function or a closure).
- Added cryptography related models for the
cookieandbiscotticrates.
- Path resolution has been removed from the Rust extractor. For the majority of purposes CodeQL computed paths have been in use for several previous releases, this completes the transition. Extraction is now faster and more reliable.
- Attribute macros are now taken into account when identifying macro-expanded code. This affects the queries
rust/unused-variableandrust/unused-value, which exclude results in macro-expanded code. - Improved modelling of the
std::fs,async_std::fsandtokio::fslibraries. This may cause more alerts to be found by Rust injection queries, particularlyrust/path-injection.
letchains inifandwhileare now supported, as well asif letguards inmatchexpressions.- Added more detail to models of
postgres,rusqlite,sqlxandtokio-postgres. This may improve query results, particularly forrust/sql-injectionandrust/cleartext-storage-database.
- Removed deprecated dataflow extensible predicates
sourceModelDeprecated,sinkModelDeprecated, andsummaryModelDeprecated, along with their associated classes. - The regular expressions in
SensitiveDataHeuristics.qllhave been extended to find more instances of sensitive data such as secrets used in authentication, finance and health information, and device data. The heuristics have also been refined to find fewer false positive matches. This will improve results for queries related to sensitive information.
- Type inference has been extended to support pattern matching.
- Call resolution for calls to associated functions has been improved, so it now disambiguates the targets based on type information at the call sites (either type information about the arguments or about the expected return types).
- Type inference has been improved for
forloops and range expressions, which improves call resolution and may ultimately lead to more query results. - Implemented support for data flow through trait functions. For the purpose of data flow, calls to trait functions dispatch to all possible implementations.
AssocItemandExternItemare now proper subclasses ofItem.- Added type inference for
forloops and array expressions.
- Initial public preview release.
No user-facing changes.
No user-facing changes.
No user-facing changes.
No user-facing changes.
No user-facing changes.
No user-facing changes.
No user-facing changes.
No user-facing changes.
No user-facing changes.
No user-facing changes.
No user-facing changes.