Short answer: Knots helps, but it doesn’t “fix” it.
Mitigation: Bitcoin Knots keeps strict datacarrier limits by default and exposes extra anti-spam/anti-data toggles (e.g., -datacarrier=0, -datacarriersize, -acceptnonstddatacarrier=0, -maxscriptsize, -rejecttokens, -datacarriercost) so you can refuse relaying/accepting large OP_RETURN to your mempool (and avoid mining them if you run a miner).
Limits: That’s policy only. Your node will still accept blocks that contain those transactions (consensus), and unless you’re heavily pruned, you’ll still store/serve the block data. So Knots reduces your relay surface and liability exposure (indexers/explorers especially), but it cannot prevent the data from existing on-chain.
Bottom line: Run Knots (or harden Core) if you want stricter defaults and finer controls, but combine it with pruning, blocksonly, and not indexing/rendering OP_RETURN contents if your goal is to minimize exposure.