Root Cause:
The callExternalContract function in both MembershipERC1155 and MembershipFactory contracts allows execution of arbitrary external calls by accounts with specific roles.
Impact:
Security Risk: If the OWP_FACTORY_ROLE or EXTERNAL_CALLER roles are compromised or misassigned, an attacker can execute arbitrary code, potentially leading to fund theft or contract manipulation.
Maintenance Risk: Overly broad permissions make the system more fragile and harder to secure.
Recommendation:
Limit the callExternalContract functionality to only necessary calls.
Implement strict access controls and ensure roles are securely managed.
Consider removing or heavily restricting this function to prevent misuse.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.