I think this also applies to problematic projects like this toxic one. The mess seems too big to clean up. But it isn't. You just have to start somewhere and clean up little by little.
In the past I had to implement a feature in a toxic software project. While implementing the feature I also refactored some messy code and even deleted some functionality nobody every used (thousands of lines). By doing this I broke some parts on purpose and added some functionality to fix what was broken. Now others who were also working on the project had to deal with the stuff I broke. Ofcourse nobody liked it, but when they knew I provided better functionality to fix the problems everybody was happy because they knew this had to be done.
Broken gets fixed, shitty lasts forever. That's why sometimes you need to break shitty things on purpose.