Isn't this what GPLv3 is suppose to prevent ? Commercial Entities seems to hate it, there must be a reason, probably because they cannot 'cheat' with it.
IANAL but as I understand it, GPLv3 prevents "tivoization" and AGPLv3 prevents running modified services without releasing the source code. Corporations particularly hate AGPLv3.