Skip to content

Releases: crytic/slither

0.10.3

05 Jun 23:40
798c1f6
Compare
Choose a tag to compare

This is a minor release that fixes several bugs, improves performance, and addresses some false positives. There is a new flag, --include-detectors, to override exclusion rules e.g. run a specific low severity detector while excluding others with --exclude-low. The detector, similar-names, has been removed.

We would like to thank our external contributors:

What's Changed

New Contributors

Full Changelog: 0.10.2...0.10.3

0.10.2

08 Apr 13:08
fdf54f6
Compare
Choose a tag to compare

0.10.2 - 2024-04-08

This minor release contains several enhancements and resolves several bugs, most notably:

  • Revamps slither-mutate with first class support for Foundry projects (see quickstart)
  • New detector identifies unused imports (slither . --detect unused-import)
  • Resolves longstanding issues in import resolution and lack of support for aliases (see #1452)
  • Improves the reference/declaration API in order to facilitate LSP integration
  • Accurately models implicit returns in the intermediate representation (see #1880)

We would like to thank our external contributors:

New Features

Bug Fixes

Enhancements

New Contributors

Full Changelog: 0.10.1...0.10.2

0.10.1

29 Feb 21:05
3523093
Compare
Choose a tag to compare

0.10.1 - 2024-02-29

This is a minor release that adds support for Solidity 0.8.24 and top level events. It includes a new detector, out-of-order-retryable, which detects potential misuse of Arbitrum's retryable transactions. Also, there is a new CLI flag, --include-paths which allows one to only include results from a given path.

We would like to thank all of our external contributors:

What's Changed

New Features

  • Add support top level events by @smonicas in #2219
  • Add support Solidity 0.8.24 by @smonicas in #2281
  • Add --include-paths option by @smonicas in #2330
    • For example, slither . --include-paths (src/|contracts/) will only include results from files within src or contracts directory. Note, this is uses python-style regex and cannot be used at the same time as --filter-paths.
  • Feat: out of order retryable detector by @0xalpharush in #2340

Bug Fixes

Enhancements

New Contributors

Full Changelog: 0.10.0...0.10.1

0.10.0

18 Oct 15:16
e3dcf1e
Compare
Choose a tag to compare

0.10.0 - 2023-10-18

This release adds support for Vyper 0.3.7 (thanks to the funding from VyperLang)! Currently, Vyper frameworks such as Ape are not supported. To run slither on Vyper codebases, target the source directory e.g. run slither ./contracts if the Vyper contracts are in the contracts/ directory.

Additionally, this release includes 5 new detectors, 3 new printers, and several bugs fixes related to recent solidity features. The echidna/medusa integration was sped up and provides more information to the fuzzers.

With the release of crytic-compile 0.3.5, support for foundry projects is significantly improved: Slither can now be run on a single file from a foundry project and detect the necessary imports automatically (ex: run slither contracts/some_file.sol instead of slither . ).

We would like to thank all of our external contributors:

What's Changed

New Features:

Breaking Changes:

Enhancements:

Bug Fixes:

Continuous Integration and Dependencies:

New Contributors

Full Changelog: 0.9.6...0.10.0

v0.9.6

06 Jul 16:34
e5f2a86
Compare
Choose a tag to compare

0.9.6 - 2023-07-06

This release fixes a regression in the unchecked-lowlevel call detector and a crash in the cache-array-length detector.

What's Changed

New Contributors

Full Changelog: 0.9.5...0.9.6

v0.9.5

28 Jun 12:47
3d4f934
Compare
Choose a tag to compare

0.9.5 - 2023-06-28

This is a patch release that fixes forward compatibility with Python 3.11.

What's Changed

Full Changelog: 0.9.4...0.9.5

v0.9.4

26 Jun 18:40
9244f96
Compare
Choose a tag to compare

0.9.4 - 2023-06-26

This release adds initial support of user defined operators, improves support for try catch, reduces false positives, and fixes numerous bugs. Finally three new detectors, one new printer, and one new tool were added.

We would like to thank all of our external contributors:

For CI integration: If you were using the fail-high, fail-medium, fail-low, fail-pedantic in slither.conf.json, Slither will warn these configurations are deprecated and recommend migrating to the respective fail-on config e.g. fail-high becomes fail-on: high. These flags are now decoupled from excluding which detectors run, meaning the flags --exclude-informational and --exclude-optimization will be honored without also passing --no-fail-pedantic. Consider using slither-action for CI integration

Added

  • Detectors
    • cache-array-length: Detects for loops that use length member of some storage array in their loop condition and don't modify it by @bart1e in #1694
    • encode-packed-collision: Detects collisions caused by use of encode packed on dynamic types by @0xalpharush in #1845
    • incorrect-using-for: Detects using-for statement usage when no function from a given library matches a given type by @bart1e in #1653
  • Printer
    • loc- Count the total number lines of code (LOC), source lines of code (SLOC), and comment lines of code (CLOC) found in source files (SRC), dependencies (DEP), and test files (TEST) - by @devtooligan in #1882
  • Tool

Changed

Fixed

New Contributors

Full Changelog: 0.9.3...0.9.4

v0.9.3

20 Mar 17:34
Compare
Choose a tag to compare

0.9.3 - 2023-03-20

This release adds a new detector for high complexity functions, improves Echidna's performance (on enums), adds support for less common and new Solidity features (ternary operations, using for, and yul support), and improves slither-read-storage and existing detectors.

Additionally, we're so excited that Slither has been nominated in the latest round of @optimismFND 's RetroPGF's program! If you vote for these projects, please select Slither as one of your favorite tools from now until March 23!

We have also opened a GitHub discussion page for Slither to more easily communicate with our community of users and developers.

Finally, we would like to thank all of our external contributors:

Added

Changed

Fixed

New Contributors

Full Changelog: 0.9.2...0.9.3

v0.9.2

11 Jan 17:06
Compare
Choose a tag to compare

0.9.2 - 2023-01-11

This release integrates codex into Slither via two features:

  • slither-documentation, a tool to auto-generate natspec for every function. See the usage on solmate.
  • the codex detector, which uses GPT3 to find vulnerabilities. This detector is not run by default and requires an explicit opt-in by using the --codex flag.

For both features, the environment variable OPENAI_API_KEY must be set. These features are experimental, and we recommend reading OpenAI's ToS, in particular, if you are using it on a private codebase. We will be exploring other areas where we can leverage LLM within Slither, and we would love the community's feedback and ideas.

Additionally, this release contains two new detectors, and refinements to existing detectors. This includes a better handling of nonReentrant for reentrancy detection, lowering the number of false alarms. Finally, this release contains several bug fixes and improvements for Solidity features such as "using for" directives and user defined value types.

We would like to thank all of our external contributors:
-@ardislu
-@bart1e
-@devtooligan
-@devtooligan
-@mds1
-@Pavan-Nambi
-@pcaversaccio
-@plotchy

Thanks to the community effort, slither has now reached 100+ contributors.

Added

Changed

Fixed

New Contributors

Full Changelog: 0.9.1...0.9.2

v0.9.1

03 Nov 20:26
Compare
Choose a tag to compare

0.9.1 - 2022-11-03

This release contains several bug fixes, and a new tool - slither-doctor - to help debugging slither.

We would like to thank all our external contributors:

Added

  • slither-doctor: a new tool to help diagnose issues with Slither (#1384)

Changed

  • Add contract types in constant optimization detector (#1443)
  • Remove redundant calls (#1434)
  • Missing text in solc version recommendation (#1406)
  • slither-flat support for top level objects (#1441 )

Fixed

  • Missing inherited storage slots in slither-read-storage (#1444)
  • Triage mode not working properly (#1435)
  • An incorrect parsing of library events (#1442)