I don't know if a universal fix is possible.
As said above the problem is a combination of the multi-samples and the internal texture format for the framebuffer. So one way to avoid this problem is by decreasing the multi-samples and now with git commit f4bc889b4
it's also possible to change the internal texture format.
Until now the hard-coded value was GL_RGB32F_ARB but it apparently caused problems on older systems. The value GL_RGB32F_ARB once was used because this was (on my old system) the only value where creating an image worked correctly if the model has semi-transparent surfaces. For a model without transparencies the default value works, too.
With the change the default value is not overridden any more and it's the same value used for the real rendering of a QOpenGLWidget. So, I hope that the rubber band selection and saving images works on older systems, too.
If people want/need to override this value then they should open the parameter editor and go to: BaseApp > Preferences > View and create a string of the name InternalTextureFormat
. The value should be one of these: Default, GL_RGB, GL_RGBA, GL_RGB8, GL_RGBA8, GL_RGB10, GL_RGB10_A2, GL_RGB16, GL_RGBA16, GL_RGB32F or GL_RGBA32F.