So this is a super-old thread to bump, but ironically, I'm working on SSIS packages again after several years, and this exact problem has been coming up again.
I realise now that my previous post wasn't quite accurate. It's not the data that has changed - rather, it's the schema.
Also, with respect to the solution, one thing that causes problems is when the data types of a column have changed - for example, if you had a column that was CHAR(10) and you had changed it into a VARCHAR(10). SSIS will detect that the metadata has changed on the database, however, within the package, it won't necessarily properly update the metadata to match.
The brute-force solution I'd mentioned earlier (delete the source and re-add it) will work; but the simpler solution is to just remove the offending column, close the data source, and then add it back in.
With respect to @rodrigo's comment - setting ValidateExternalMetadata will prevent the errors from appearing while you're working on the task, however, you're likely to just be delaying the inevitable, as when you execute it, it'll likely throw the exception at runtime instead.