Is there an overfitting in the data? In my training set, I have 4026 instances, two classes and 104 attributes.
The training error (error on the entire training set) is about 14% and 10 fold CV error on the training set is about 27%.
Does this mean that my model is overfitting the training data?
EDIT (More Results):


*

*Total Instance 4026 (+: 951, -:3075)

*Model Random forest (default settings in Weka)

*Training Error:14%, 10 Fold CV Error: 27%, Training F-score (+):67%, Training F-score (-): 91%, 10 Fold CV F-score (+): 31%, 10 Fold CV F-score (-): 83%

*After Random Undersampling, Total Instance 1902 (+ and -:951 each)

*After Random Undersampling, Training Error:16%, 10 Fold CV Error: 36%, Training F-score (+):85%, Training F-score (-): 84%, 10 Fold CV F-score (+): 65%, 10 Fold CV F-score (-): 63%

 A: Not necessarily. It is normal for the training error to be lower than the generalization error. Cross-validation is one way to estimate the generalization error. Lower generalization performance does not necessarily indicate an overfit.
The reason for this is simple: your model is constructed to optimally fit the training data with some additional criteria to limit its complexity (such as regularization). In other words, it is normal that the model predicts training data at least as well as unseen data. 
An overfit happens when your model only fits the training set well and completely breaks down on unseen data. Because the difference you are seeing is fairly large an overfit is possible here. As a next step you can try to make a new model with lower complexity and see if the difference between training set accuracy and CV accuracy diminishes. If it does, your original model was an overfit.
You may also want to check out this: How to assess overfitting?
A: We tend to say that a model is over-fit if it performs very well on the training set, but does abysmally on some held-out data. 
Models are typically trained by adjusting their parameters to maximize the training set performance[*], so you should expect test-set performance to be slightly worse. A model that goes from 100% accuracy on the training data to 50% accuracy on held-out data is clearly over-fit and one that only drops a few points probably isn't, but there is no bright line between the two categories.  Your results aren't setting off any alarm bells, but it might be worth considering whether you can get more data or adjust some regularization parameters. 
Keep in mind that training performance is just a useful diagnostic. High training error can indicate that something is wrong: perhaps the algorithm cannot represent the underlying concept, something is pathological about your choice of hyperparameters, or the training data is very noisy. On the other hand, low training error is a terrible predictor of future performance: it can indicate successful training OR over-fitting. As such, people rarely report it since we mostly care about how the algorithm will perform on new data.
A: I'd have to slightly disagree with some of the answers up here. In my opinion, overfitting does not necessarily mean "abysmally" poor performance on the test set. You can be in an overfitting situation and yet achieve apparently good test error. Yet decreasing the model complexity may decrease generalisation error - which means the model has indeed overfit, although it may not be obvious from test error.
Either way we can't really answer your answer as is; first, overfitting is usually understood as related to model complexity, and we don't know what your model is. You might want to try and train your model using various levels of complexity (for instance, if it's gradient boosting, vary the number of trees or shrinkage, if it's a GLM, add a regularization term, etc.). Then it will become obvious when your model has begun to overfit. 
Otherwise we can't tell from a single observation if the model is grossly overfitting the training data (unless, obviously, the test error is through the roof). 
