access-control

Detect access control vulnerabilities in Solidity smart contracts.

1|1|Updated Feb 18, 2026
One-click install
npx skills add https://github.com/Apegurus/solidity-argus --skill access-control-apegurus
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: access-control
Source: https://github.com/Apegurus/solidity-argus/tree/main/skills/vulnerability-patterns/access-control
Command: npx skills add https://github.com/Apegurus/solidity-argus --skill access-control-apegurus

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and scripts (resource) components.

What problem does it solve?

This Skill addresses critical vulnerabilities in smart contracts that arise from improper access control, preventing unauthorized users from executing privileged functions and safeguarding assets.

Core Features & Use Cases

  • Vulnerability Identification: Detects missing or weak access control mechanisms in Solidity functions.
  • Exploit Pattern Analysis: Provides insights into common attack patterns like unprotected initializers, tx.origin manipulation, and signature replay vulnerabilities.
  • Secure Pattern Implementation: Offers examples of secure coding practices using OpenZeppelin's AccessControl and Ownable, and the initializer pattern.
  • Use Case: An auditor can use this Skill to quickly identify functions in a new DeFi protocol that lack proper authorization, such as critical setOwner or mint functions, and suggest immediate remediation.

Quick Start

Analyze the provided Solidity code for any missing access control vulnerabilities.

Frequently Asked Questions about access-control

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What are common access control vulnerabilities in Solidity smart contracts?

Access control vulnerabilities in Solidity include missing authorization on critical functions, unprotected initializers susceptible to hijacking, tx.origin manipulation, and signature replay attacks allowing unauthorized execution.

How do I audit a Solidity smart contract for missing authorization on privileged functions?

Audit for missing authorization by analyzing Solidity functions like setOwner or mint to verify they enforce strict role-based permissions using OpenZeppelin AccessControl or Ownable patterns before permitting execution.

Why is using tx.origin for authentication insecure in smart contracts?

Using tx.origin for authentication is insecure because it allows malicious intermediary contracts to inherit the original sender's address, enabling unauthorized access to privileged contract functions through phishing attacks.

How do I prevent signature replay attacks in Solidity smart contracts?

Prevent signature replay attacks in Solidity by implementing nonce tracking and including the contract address within the signed message payload to ensure each signature is unique and bound to its execution context.

What is the best way to secure unprotected initializer functions in smart contracts?

The best way to secure unprotected initializers is to apply OpenZeppelin's initializer modifier pattern, ensuring setup functions execute exactly once during contract deployment and cannot be hijacked.

Does this access control analysis work with OpenZeppelin's AccessControl and Ownable patterns?

Yes, access control analysis supports OpenZeppelin patterns by validating their implementation in Solidity code and providing secure coding practices derived from real-world exploits and remediation strategies.