Definition: Bug masking, also called defect masking, is when one bug hides another, so the second problem stays out of sight until the first is fixed. The hidden bug is still in the code. It goes unnoticed because the visible bug stops the software, or the person testing it, from ever reaching it. A common sign is a new bug appearing as soon as a fix is re-tested.
So what? A minor bug that nobody is rushing to fix can be masking a far more serious one, including problems that need significant changes to the software to put right. The longer the visible bug stays open, the later the hidden one is discovered, when there is less time and more cost involved in dealing with it.
Examples: A developer fixes a low-priority display bug, and re-testing reveals a high-priority bug in the same flow that the display bug had been hiding. A validation error stops a form from submitting, so a crash in the save step is only found once validation works.