pessimistic-io/slitherin

Slither Detectors by Pessimistic.io

Python

377

498 commits

updated Jun 25, 2024

See the code

README

Slitherin by Pessimistic.io

Blog Our Website Mail

Welcome! We are the pessimistic.io team, and in recent months we have been actively developing our own Slither detectors to help with code review and audit process. This repository contains everything you may require to work with them!

We increased the sensitivity of our detectors since they are quite straightforward and not written in the "original style." As a result, they produce FPs (False Positives) more frequently than original ones. So that, our detectors are a kind of automation of the checks implemented in the checklist, their main purpose is to look for issues and assist the code auditor.

Please let us know if you have discovered an issue/bug/vulnerability via our custom Slither detectors. You may contact us via opening a PR/Issue or directly, whichever is more convenient for you. If you have any further questions or suggestions, please join our Discord Server or Telegram chat! We hope to see you there, and we intend to support the community and its initiatives!

Telegram Discord

Repository Navigation

Table of Contents:

Installation Process

Using Git

To install Pessimistic Detectors:

  1. Install the original Slither;
  2. Clone our repository;
  3. Run the following command in our repository folder to add new detectors to Slither:
python3 setup.py develop

Keep in mind that you don't have to reinstall the plugin after changes in the repository!

  1. Dependencies must be installed in order to test the detectors on our test contracts:
npm install

Using Pip

  1. Install the original Slither;
  2. Install the pip package:
pip install slitherin

Using Pipx

  1. Install the pip package:
pipx install slitherin
  1. Add slitherin's bin to path:
echo -e "# Slitherin with pipx\nexport PATH=\"\$PATH:/home/$USER/.local/pipx/venvs/slitherin/bin\"\n" >> ~/.bashrc \
&& source ~/.bashrc

Usage

Use Slitherin-cli to run detectors on a Hardhat/Foundry/Dapp/Brownie application. You have the following options:

  • Run ONLY Slitherin detectors:
slitherin . --pess
  • Run ONLY Slither detectors:
slitherin . --slither
  • Run Slither detectors, then Slitherin detectors:
slitherin . --separated
  • Run Arbitrum-specific Slitherin detectors:
slitherin . --arbitrum

Keep in mind that Slitherin-cli supports all Slither run options.

Slither

Slitherin detectors are included into original Slither after the installation. You can use Slither as usual.

Detectors Table

Please note:

  • *Valid - issues included in reports and fixed by developers (January 2023 - June 2023).

  • There are two detectors which have several checks inside: pess-uni-v2 and arbitrary-call.

Enhancements & New Detectors

Here we indicate our updates, workflows and mark completed tasks and improvements!

You can add your own detector/idea/enhancement by opening the Issue at the following link.

Prior to adding a custom detector, ensure that:

  1. In a documentation file, your detector is comprehensively described;
  2. The detector test contract is presented and correctly compiles;
  3. The detector code is presented and works properly.

Prior to adding an idea, ensure that:

  1. Your concept or idea is well articulated;
  2. A vulnerability example (or PoC) is provided;

Prior to adding an enhancement, ensure that:

  1. Your enhancement does not make the base code worse;
  2. Your enhancement is commented.

Detectors Backlog:

Issues Open Pool Requests Closed Pool Requests

Acknowledgements

Our team would like to express our deepest gratitude to the Slither tool creators: Josselin Feist, Gustavo Grieco, and Alex Groce, as well as Crytic, Trail of Bits' blockchain security division, and all the people who believe in the original tool and its evolution!

Slitherin in mass media

Thank you!

It would be fantastic if you could bookmark, share, star, or fork this repository. Any attention will help us achieve our common goal of making Web3 a little bit safer than it was before: therefore, we require your support!

Watch Like Fork

For our part, we'll do everything in our power to ensure that this project continues to grow successfully in terms of both code and technology as well as community and professional interaction! We sincerely hope you find our work useful and appreciate any feedback, so please do not hesitate to contact us!

Mail


Pessimistic delivers trusted security audits since 2017.
Require expert oversight of your safety?
Explore our services at pessimistic.io.

ethereum
plugin
slither
solidity
static-analysis

Contributors

ndkirillov

165 commits

Yhtiyar

95 commits

nikitaka7

77 commits

nikolay19

45 commits

pessimistic-io/slitherin

Slither Detectors by Pessimistic.io

Python

377

498 commits

updated Jun 25, 2024

See the code

README

Slitherin by Pessimistic.io

Blog Our Website Mail

Welcome! We are the pessimistic.io team, and in recent months we have been actively developing our own Slither detectors to help with code review and audit process. This repository contains everything you may require to work with them!

We increased the sensitivity of our detectors since they are quite straightforward and not written in the "original style." As a result, they produce FPs (False Positives) more frequently than original ones. So that, our detectors are a kind of automation of the checks implemented in the checklist, their main purpose is to look for issues and assist the code auditor.

Please let us know if you have discovered an issue/bug/vulnerability via our custom Slither detectors. You may contact us via opening a PR/Issue or directly, whichever is more convenient for you. If you have any further questions or suggestions, please join our Discord Server or Telegram chat! We hope to see you there, and we intend to support the community and its initiatives!

Telegram Discord

Repository Navigation

Table of Contents:

Installation Process

Using Git

To install Pessimistic Detectors:

  1. Install the original Slither;
  2. Clone our repository;
  3. Run the following command in our repository folder to add new detectors to Slither:
python3 setup.py develop

Keep in mind that you don't have to reinstall the plugin after changes in the repository!

  1. Dependencies must be installed in order to test the detectors on our test contracts:
npm install

Using Pip

  1. Install the original Slither;
  2. Install the pip package:
pip install slitherin

Using Pipx

  1. Install the pip package:
pipx install slitherin
  1. Add slitherin's bin to path:
echo -e "# Slitherin with pipx\nexport PATH=\"\$PATH:/home/$USER/.local/pipx/venvs/slitherin/bin\"\n" >> ~/.bashrc \
&& source ~/.bashrc

Usage

Use Slitherin-cli to run detectors on a Hardhat/Foundry/Dapp/Brownie application. You have the following options:

  • Run ONLY Slitherin detectors:
slitherin . --pess
  • Run ONLY Slither detectors:
slitherin . --slither
  • Run Slither detectors, then Slitherin detectors:
slitherin . --separated
  • Run Arbitrum-specific Slitherin detectors:
slitherin . --arbitrum

Keep in mind that Slitherin-cli supports all Slither run options.

Slither

Slitherin detectors are included into original Slither after the installation. You can use Slither as usual.

Detectors Table

Please note:

  • *Valid - issues included in reports and fixed by developers (January 2023 - June 2023).

  • There are two detectors which have several checks inside: pess-uni-v2 and arbitrary-call.

Enhancements & New Detectors

Here we indicate our updates, workflows and mark completed tasks and improvements!

You can add your own detector/idea/enhancement by opening the Issue at the following link.

Prior to adding a custom detector, ensure that:

  1. In a documentation file, your detector is comprehensively described;
  2. The detector test contract is presented and correctly compiles;
  3. The detector code is presented and works properly.

Prior to adding an idea, ensure that:

  1. Your concept or idea is well articulated;
  2. A vulnerability example (or PoC) is provided;

Prior to adding an enhancement, ensure that:

  1. Your enhancement does not make the base code worse;
  2. Your enhancement is commented.

Detectors Backlog:

Issues Open Pool Requests Closed Pool Requests

Acknowledgements

Our team would like to express our deepest gratitude to the Slither tool creators: Josselin Feist, Gustavo Grieco, and Alex Groce, as well as Crytic, Trail of Bits' blockchain security division, and all the people who believe in the original tool and its evolution!

Slitherin in mass media

Thank you!

It would be fantastic if you could bookmark, share, star, or fork this repository. Any attention will help us achieve our common goal of making Web3 a little bit safer than it was before: therefore, we require your support!

Watch Like Fork

For our part, we'll do everything in our power to ensure that this project continues to grow successfully in terms of both code and technology as well as community and professional interaction! We sincerely hope you find our work useful and appreciate any feedback, so please do not hesitate to contact us!

Mail


Pessimistic delivers trusted security audits since 2017.
Require expert oversight of your safety?
Explore our services at pessimistic.io.

ethereum
plugin
slither
solidity
static-analysis

Contributors

ndkirillov

165 commits

Yhtiyar

95 commits

nikitaka7

77 commits

nikolay19

45 commits

Languages

Python

68.7%

Solidity

31.1%