Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Floating Pragma in non-interface files can be potential security risk #158

Open
burhankhaja opened this issue Jun 19, 2024 · 0 comments
Open
Labels
bug Something isn't working low

Comments

@burhankhaja
Copy link

burhankhaja commented Jun 19, 2024

Hats username: @ghost
Twitter username: @imaybeghost
Discord username: @burhan_khaja
wallet: 0x022df5782baf4ec29BB89529de3c89CdA7AF5B7d

Severity: low

Description
Majority of the soldiity files in the codebase are defined with concrete 0.8.23 version, but still there are these non-inteface files that have unspecific compiler versions in their pragma definitions

  • LinkedIdList.sol
  • AUT_TokenGated_Roles_v1.sol
  • LibMetadata.sol {library}
  • AncillaryData.sol {library}
  • ClaimData.sol

While this often makes sense for libraries to allow them to be included with multiple different versions of an application, it may be a security risk for the actual application implementation itself. A known vulnerable compiler version may accidentally be selected or security tools might fall-back to and older compiler version ending up actually checking a different evm compilation that is ultimately deployed on the blockchain.

Recommendation
Avoid floating pragmas. Pin a concrete 0.8.23 compiler version to the said files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working low
Projects
None yet
Development

No branches or pull requests

2 participants