In upper management speak 'technical debt' has no value add. The code works so what's the point in spending time aka money on it?
The real trick is to get upper level buy in to clean up the code base. The easist and least obvious way is to budget extra time when doing enhancements to the code that requires it. That way it doesn't show up in discussions and it gets done.
It's not the most transparent way to go about it but it's one way to slip it into the schedule and make a start.
You might not be able to get all of it in one pass but any is better than none.