Are you familiar with the challenges borrowing and lending protocols face?
#web3sec #defi
Dive into:
- Illiquid liquidations
- Collateral Safeness
- The dangers of governance
- Oracle risk and cost of manipulation
https://tokeninsight.com/en/research/market-analysis/the-7-deadly-sins-of-lending-protocols
@EthSecurity1
#web3sec #defi
Dive into:
- Illiquid liquidations
- Collateral Safeness
- The dangers of governance
- Oracle risk and cost of manipulation
https://tokeninsight.com/en/research/market-analysis/the-7-deadly-sins-of-lending-protocols
@EthSecurity1
Tokeninsight
The 7 Deadly Sins of Lending Protocols
Lending protocols have been a major target for hacks and attacks over the last few years, as many platforms often fail to ensure the security of their code, while others overestimate the safety of their economic designs. However, the industry has been learning…
❤2
The #Cairo Programming Language Book, a comprehensive documentation of the Cairo 1 programming language cairo-book.github.io
Blockchain dark forest selfguard handbook. Master these, master the security of your #cryptocurrency. #web3sec #web3 #DeFi
darkhandbook.io
@EthSecurity1
Blockchain dark forest selfguard handbook. Master these, master the security of your #cryptocurrency. #web3sec #web3 #DeFi
darkhandbook.io
@EthSecurity1
👍1
sort of great DB https://dune.com/pcaversaccio/smart-contract-deployment-statistics https://dune.com/pcaversaccio/minimal-proxies https://dune.com/pcaversaccio/selfdestruct @EthSecurity1
Dune
Smart Contract Deployment Statistics
Dune is the all-in-one crypto data platform — query with SQL, stream data via APIs & DataShare, and publish interactive dashboards across 100+ blockchains.
If a protocol uses any of the OpenZeppelin libraries, always check that the latest released version is used. Thus, you will be sure the most optimized version is used.
You can find vulnerabilities associated with previous versions here👇 https://security.snyk.io/package/npm/%40openzeppelin%2Fcontracts @EthSecurity1
You can find vulnerabilities associated with previous versions here👇 https://security.snyk.io/package/npm/%40openzeppelin%2Fcontracts @EthSecurity1
Find detailed information and remediation guidance for vulnerabilities and misconfigurations.
@openzeppelin/contracts vulnerabilities | Snyk
Learn more about known vulnerabilities in the @openzeppelin/contracts package.
someone lost $1.04m by ERC20 Permit phishing 22 minutes ago
https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48?a=0x5242dc2114bb40ed7482adcfab07384d069408cc
@EthSecurity1
https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48?a=0x5242dc2114bb40ed7482adcfab07384d069408cc
@EthSecurity1
Core issue behind Trust wallet extension vulnerability:
It used a Mersenne Twister (MT19937) pseudo-random number generator (PRNG) for generating private keys, which is not random "enough" and therefore such private keys can be brute forced by attackers. https://community.trustwallet.com/t/browser-extension-wasm-vulnerability-postmortem/750787
It used a Mersenne Twister (MT19937) pseudo-random number generator (PRNG) for generating private keys, which is not random "enough" and therefore such private keys can be brute forced by attackers. https://community.trustwallet.com/t/browser-extension-wasm-vulnerability-postmortem/750787
Trust Wallet
Browser Extension WASM Vulnerability Postmortem
This postmortem provides an in-depth account of the vulnerability and the assertive steps we undertook to protect our users’ wallets. For a summary of the incident and FAQ, please refer to our disclosure statement. The Vulnerability In November 2022, a…
👍1
Announcing Smart Contract Fiesta:🎉
An open-source, high-quality dataset of over over 175M lines of Ethereum smart contract source code! It has about ~150k unique contract sources across 30M smart contracts.
https://huggingface.co/datasets/Zellic/smart-contract-fiesta
Read more: 👇🧵
huggingface.co
Zellic/smart-contract-fiesta · Datasets at Hugging Face @EthSecurity1
An open-source, high-quality dataset of over over 175M lines of Ethereum smart contract source code! It has about ~150k unique contract sources across 30M smart contracts.
https://huggingface.co/datasets/Zellic/smart-contract-fiesta
Read more: 👇🧵
huggingface.co
Zellic/smart-contract-fiesta · Datasets at Hugging Face @EthSecurity1
huggingface.co
Zellic/smart-contract-fiesta · Datasets at Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
zk-apps
This repository is a collection of smart-contract applications based on ZK-SNARKs.
Included:
shielder - shielding and unshielding PSP22 tokens @EthSecurity1 https://github.com/Cardinal-Cryptography/zk-apps
This repository is a collection of smart-contract applications based on ZK-SNARKs.
Included:
shielder - shielding and unshielding PSP22 tokens @EthSecurity1 https://github.com/Cardinal-Cryptography/zk-apps
GitHub
GitHub - Cardinal-Cryptography/zk-apps: Shielding tokens with zkSNARKs
Shielding tokens with zkSNARKs. Contribute to Cardinal-Cryptography/zk-apps development by creating an account on GitHub.
Just published this EPIC Borrowing, Lending & Liquidation Deep Dive!
public c4 & sherlock contest, categorized & systematized the major vulnerability classes found in these #defi systems, and made it all freely available to help YOU. @EthSecurity1 https://dacian.me/lending-borrowing-defi-attacks
public c4 & sherlock contest, categorized & systematized the major vulnerability classes found in these #defi systems, and made it all freely available to help YOU. @EthSecurity1 https://dacian.me/lending-borrowing-defi-attacks
in your storage
Lending/Borrowing DeFi Attacks
Lending & Borrowing DeFi platforms display common sets of vulnerabilities
💯1
🔴Many security vulnerabilities come from faulty assumptions
Identifying the assumptions made by the devs and evaluating if they are correct can uncover big discrepancies between what the code does vs what it is intended to do
Here are examples of common faulty assumptions: 📔
1. Initialization functions will only be called ONCE and/or can be called only by the contract deployer
2. Only admins can call certain functions(access control issues)
3. Functions will always be called in a certain order as expected by the system
Ex. what if there's a function that closes a position but expects that you opened one in the 1st place?
A function that checks if your payment is on time but expects you got a loan before that?
4. Parameters can only have non-zero values or values within a certain threshold
addresses will never be zero-valued
sender will always be different from the receiver
an element of a struct array will always exist so the values won't be the default ones
5. Certain addresses or data values can never be attacker-controlled
6. Function calls will always be successful and so checking for return values is not required
These are just a few examples of common assumptions that don't always hold true
Always try to identify what assumptions are made when writing the code and compare that to how the system could actually behave
@EthSecurity1
Identifying the assumptions made by the devs and evaluating if they are correct can uncover big discrepancies between what the code does vs what it is intended to do
Here are examples of common faulty assumptions: 📔
1. Initialization functions will only be called ONCE and/or can be called only by the contract deployer
2. Only admins can call certain functions(access control issues)
3. Functions will always be called in a certain order as expected by the system
Ex. what if there's a function that closes a position but expects that you opened one in the 1st place?
A function that checks if your payment is on time but expects you got a loan before that?
4. Parameters can only have non-zero values or values within a certain threshold
addresses will never be zero-valued
sender will always be different from the receiver
an element of a struct array will always exist so the values won't be the default ones
5. Certain addresses or data values can never be attacker-controlled
6. Function calls will always be successful and so checking for return values is not required
These are just a few examples of common assumptions that don't always hold true
Always try to identify what assumptions are made when writing the code and compare that to how the system could actually behave
@EthSecurity1
nonReentrant modifiers might potentially cause a DoS attack.
https://medium.com/@bloqarl/uncovering-real-life-examples-of-denial-of-service-attacks-on-smart-contracts-8bc220c2cdd0
@EthSecurity1
https://medium.com/@bloqarl/uncovering-real-life-examples-of-denial-of-service-attacks-on-smart-contracts-8bc220c2cdd0
@EthSecurity1
Medium
How to identify Denial of Service attacks on Smart Contracts?
If you have been trying to learn about potential cases of DoS attacks and end up always with the same examples (as I did), you might be…
This paper presents a dynamic, real-time approach to detecting anomalous blockchain transactions.
https://arxiv.org/abs/2304.12749
@EthSecurity1
https://arxiv.org/abs/2304.12749
@EthSecurity1
My Favorite Free Courses to Learn Design Patterns in Depth
https://dev.to/javinpaul/my-favorite-free-courses-to-learn-design-patterns-in-depth-5dp5
@EthSecurity1
https://dev.to/javinpaul/my-favorite-free-courses-to-learn-design-patterns-in-depth-5dp5
@EthSecurity1
DEV Community
5 Free Courses to Learn Design Patterns on Udemy in 2025
These are the best free online courses to learn Design patterns for programmers and developers using Java, JavaScript, and TypeScript