It’s fairly simple, a bug

is a fault in software, or hardware for that matter, which breaks something.
For example, if you make software which links my Microsoft Calendar to my Google Calendar, and your software duplicates all my calendar entries, it’s a bug.  Not an undocumented feature.

An undocumented feature, is a feature which is undocumented.  Such as the (in)famous Squeaky Lobster performance counter switch in Microsoft Exchange 5.5.  An undocumented feature is not a bug! I will smite the next vendor who uses that term with me.

A Feature, is an element of software, or hardware, which has been tested, publicised, and should work “out of the box”.  It should not require me to spend two hours reverse-engineering code, to unravel the original developer’s “brilliance”.
When I say “brilliance”, I mean a convoluted piece of code crap that even the original developer would disown like the bastard child it surely is.

Bookmark and Share