The QuantAMMWeightedPool factory stores a version string in its constructor but does not use it when creating pools. Instead, it passes a hardcoded "version" string to all created pools, making version tracking ineffective.
The hardcoded version string breaks version tracking and management. Protocol teams cannot reliably track or update pools, potentially leaving user funds at risk during upgrades or emergency situations.
When every pool shows the same version "version", it's like having a library where all books show the same publication date - you can't tell which ones need updates, potentially leaving security vulnerabilities unfixed.
Add testVersionMismatch
in pkg/pool-quantamm/test/foundry/QuantAMMWeightedPoolFactory.t.sol
and import import { Version } from "@balancer-labs/v3-solidity-utils/contracts/helpers/Version.sol";
then run the test :)
Replace the hardcoded version string with the stored _poolVersion
:
Version is immutable as specified in Version.sol and can be what the developer wants. It is hardcoded and will be changed by the admin for every deployment. No real impact here.
Version is immutable as specified in Version.sol and can be what the developer wants. It is hardcoded and will be changed by the admin for every deployment. No real impact here.
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.