Юнисвап— это контракт, который не обновляется вообще никак, у него нет governance
В основе лежит контракт-фабрика, для каждой новой пары можно создать новый контракт вызвав специальный метод этой фабрики
Если контракт для этого токена уже был создан— он сохраняется в стейте и больше не создается
В данном случае уязвимость заключается в том, что метод transferFrom токена может вызвать опять метод обмена на юнисвопе, в этом случае атакующий может купить токены по неправильной цене
Прочитать об этом можно в результатах аудита:
https://github.com/ConsenSys/Uniswap-audit-report-2018-12#31-liquidity-pool-can-be-stolen-in-some-tokens-eg-erc-777-29Пофиксить это никак нельзя, единственный способ проверять контракты токенов, которыми вы собираетесь торговать и если с их помощью можно совершить такую атаку не использовать их с uniswap
Сейчас uniswap представил вторую версию, там другой механизм депозита, поэтому такой уязвимости не может быть в принципе