I think you're right, cross-validation should enable you to detect overfitting. When you see severe overfitting, you can try a different model (say a statistical model including noise), or add regularization hyperparameters, which you can tune via cross validation (or simply re-run the fit a number of times, because information contained in hyperparameters alone tends to be very low, hence not run risk of overfitting in the hyperparameter tuning process).