Colin,
As long as your app is the only one passing the WHERE clause, then you are probably reasonably safe. The issue is not your code, though. SQL Injections are normally not the sort of thing the developer builds into his app but, rather, the sort of thing that some malicious soul who stumbles upon your database does out of pure meanness.
Perhaps, instead of passing the WHERE clause, you might want to consider passing the various parameters that were selected for the report. You could pass NULL values for unselected parameters, if need be. Then, within the SP, execute your updates based upon the parameters instead of upon the "Magic Where Clause". By using the parameters, you can preclude the injection attack (mostly because it would cause an invalid SQL Statement instead of just executing.)
All I am pointing out is that the technique you are using (or trying to use) is inherently unsafe and should never be a part of a production database application. It violates the rules of all known "Best Practices".