And at this point, how to fix the problem?
the only way you can fix it is to fix the code. so the exploit is not allowed anymore. but the devs haven't shown any inclination to doing that and they will never do it. so we're stuck with it unless we do some type of fork.
Please don't repeat that again, we have discussed that extensively in this and another threads. It is simply wrong that it can be "fixed" (at least not easily, BTC would have to adopt the Monero or Grin protocol to "fix" it).
I have written an example in
this post in another thread that you could encode a token like Runes in a transaction with two simple P2(W)PKH output. How would you "fix" that "exploit"? It would be actually much worse than Runes and even Ordinals because it clutters the UTXO set.
I
don't like Runes but they are at least a bit better than
the BRC-20 bullshit.
those of us who maintain nodes could have the option to accept or not these ordinals? or is it up to the miners?
As a node operator you can choose to ignore transactions with a "datacarriersize" of more than an arbitrary number of bytes you can define yourself. On Bitcoin Core, this only affects data transactions using OP_RETURN, like Runes, while Luke Dashjr's "Bitcoin Knots"
can detect Ordinals too. But of course if a miner accepts an Ordinals transaction, then you have to add it to the blockchain. You could change the code to fork away, i.e. some nodes -- and miners -- could unite to create a hard fork without any data transactions, but that would incentive the behaviour I have described in my answer to larry_vw_1955. And very likely it would be a minority hardfork.