Username or EmailPassword
As stated in the article, this isn't a 25 year old 'UNIX' bug (what does it means, anyway?) but a BSD bug.
It is a fringe case bug that caused some headaches with Samba. The problem was actually known for three years.
It comes down to directory access. A directory is stored as a block that points to all of its 'contents' somewhere else on the disk. To navigate these directories, originally, you had to manually pull out the contents from the pointer. This library addressed a lot of those issues for the BSDs.
UNIX is a concurrent system. Several people can do several things at once on the same system. This is where the bug comes from. If one persons program were to seek -- the term for iterating through the contents until you find what you're looking for -- through a directory to find a file, you get an index into that directory's 'contents array' as a return value.
The index has several purposes, but that's besides the point.
EDIT: This is not techinally correct. Correction follows.
If you seeked to a point in the directory, and then someone else deleted something.
There was a special case when you were deleting the first file in a directory, and that case was not correctly accounted for when you seeked through a directory.
Your index would be off because of the way the deletion was handled. The result? You get the contents of another file -- one that you didn't ask for. Edited 2008-05-11 01:06 UTC
You do know the history of BSD?
It's called Berkeley Unix