How do you protect against malicious PREPROCESSOR attacks in Oracle External Tables?
Oracle has had the capability of executing external code from SQL for a long time - EXTPROCs, data cartridges, and so on. You say


  someone with access to the OS (or remotely....) could exploit it to
  cause the database to get compromised


But what does this even mean? Someone with access to the OS as the oracle user can access your DBFs directly (they're just files on the disk), can attach directly to the SGA, can make a backup and copy it off, can snoop the network traffic (as root). In the case of a malicious developer, the can do whatever they want in PL/SQL and wrap it. I don't see how you are introducing a new vulnerability by using this feature. If it makes your job or your user's jobs easier, go for it.