OperatorVCS manage allowed vaults using vaultMapping variable, which "check vault membership in this strategy". Because of mistake, vault can not be removed from this mapping still allowing vault to execute withdrawOperatorRewards().
removeVault() removes a vault that has been queued for removal. This function removes vault both from removal request array and from vaults array, but is not removed from vaultMapping. This mapping is used in withdrawOperatorRewards() to check whether msg.sender is vault. If not, then transaction reverts with SenderNotAuthorized error. Because error in removeVault() vault is not removed from vaultMapping and thus allowing removed vault still claim rewards .
Remove vault from vaultMapping in removeVault():
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.