In Governance.sol#L187 we can see that votes can be casted when block.timestamp <= proposal.endTime meaning the proposal is still active during endTime, but when checking the state function Governance.sol#L295 it returns the proposal state as active only when block.timestamp < proposal.endTime.
This means that there is an inconsistency between what the state and castVote functions consider a proposals state to be when block.timestamp == proposal.endTime.
Inconsistent proposal state across 2 functions.
Manual review.
The fix would go on the condition of state or castVote depending on what the developers consider to be correct.
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.