I recently ran into an issue with CNewFileSelector with identical problems as the thread here (MacOS only):
It was also very repeatable - choosing or always crashed, from within the host code.
I replicated this same problem with a VST3 plugin written with SDK3.6.7 in Cubase 7 while trying to open the UI Description Editor. Choosing Save As (to get the CNewFileSelector instantiated) and then Cancel or Save will crash and is also repeatable.
The line of code causing the problem is where you set the default extension (for the UI Description Editor crash, it is in the VST3Editor.cpp file):
fileSelector->setDefaultExtension (CFileExtension (“VSTGUI UI Description”, “uidesc”));
Commenting this line of code out gets rid of the crash and this fix is also repeatable.
CNewFileSelector::addFileExtension only contains one line of code to push the extension object onto a std::list – is is possible this list is not being cleaned up somewhere else?