Skip to content

Add SECURITY_DECISIONS.md documenting contractDeployerAllowList disable#139

Draft
Copilot wants to merge 2 commits intomainfrom
copilot/fix-contract-deployer-allowlist
Draft

Add SECURITY_DECISIONS.md documenting contractDeployerAllowList disable#139
Copilot wants to merge 2 commits intomainfrom
copilot/fix-contract-deployer-allowlist

Conversation

Copy link
Copy Markdown

Copilot AI commented Mar 17, 2026

No documentation existed to explain why contractDeployerAllowList was disabled on both mainnet and testnet, creating an unresolvable governance ambiguity for auditors and future operators.

Changes

SECURITY_DECISIONS.md (new)

Structured security decisions log at the repo root covering:

  • contractDeployerAllowList disable — activation timestamps for both chains (mainnet: 1767789000 / 2026-01-07 12:30 UTC; testnet: 1767787800 / 2026-01-07 12:10 UTC), prior genesis admin addresses, rationale for moving to permissionless deployment, and security posture notes
  • Testnet networkUpgradeOverrides asymmetry — documents the testnet-only graniteTimestamp: 1762510500 (2025-11-06) override and explains it was a staging step before mainnet
  • Testnet two-step upgrade sequence — explains why testnet re-enabled the allow list with a new admin (0x63B7076FC0A914Af543C2e5c201df6C29FCC18c5) 20 minutes before the final disable, while mainnet skipped this step

avalanchego/configs/README.md (updated)

  • Added upgrade.json to the directory structure listing for both chain directories
  • Added a Network Upgrade Configurations section summarising each file's scheduled changes with a link to SECURITY_DECISIONS.md
Original prompt

This section details on the original issue you should resolve

<issue_title>[Security][Medium] contractDeployerAllowList disabled without security review documentation</issue_title>
<issue_description>## Summary

The contractDeployerAllowList precompile has been disabled via upgrade.json on both mainnet and testnet as of January 7, 2026, making the chain fully permissionless for contract deployment. This significant security posture change has no documentation or security review artifact in the repository.

Details

Affected files:

  • avalanchego/configs/chains/2PDRxzc6jMbZSTLb3sufkVszgQc2jtDnYZGtDTAAfom1CTwPsE/upgrade.json (Mainnet, timestamp 1767789000 / 2026-01-07 12:30 UTC)
  • avalanchego/configs/chains/2oo5UvYgFQikM7KBsMXFQE3RQv3xAFFc8JY2GEBNBF1tp4JaeZ/upgrade.json (Testnet, timestamp 1767787800 / 2026-01-07 12:10 UTC)

Security implications:

  1. Anyone can now deploy arbitrary smart contracts on both mainnet and testnet, including phishing tokens, reentrancy exploits, or scam contracts
  2. The genesis files originally restricted deployment to admin addresses only — this restriction has been permanently removed
  3. The testnet upgrade.json also contains a networkUpgradeOverrides with graniteTimestamp override that does not exist on mainnet, creating an undocumented asymmetry

Recommended actions:

  1. Add a SECURITY_DECISIONS.md or similar document recording the rationale for disabling the deployer allow list
  2. Document the testnet-specific networkUpgradeOverrides and why they differ from mainnet
  3. Consider implementing contract deployment monitoring to detect malicious contract deployments

Impact

Medium — the change may be intentional but the lack of documentation creates a governance gap. Future operators or auditors cannot determine whether this was a deliberate decision or an oversight.

Generated by Health Monitor with Omni</issue_description>

Comments on the Issue (you are @copilot in this section)


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

…yerAllowList disable

Co-authored-by: numbers-official <181934381+numbers-official@users.noreply.github.com>
Copilot AI changed the title [WIP] [Security] Fix contractDeployerAllowList issue without review documentation Add SECURITY_DECISIONS.md documenting contractDeployerAllowList disable Mar 17, 2026
Copilot AI requested a review from numbers-official March 17, 2026 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Security][Medium] contractDeployerAllowList disabled without security review documentation

2 participants