The basic premise is that the areas affected by vignetting and dust donuts will be darker than the background which should be of uniform brightness. Thus to make the dust donuts go away, all we need to do is identify those areas and make them as bright as the background. This is easily achieved using MultiscaleMedianTransform and a simple PixelMath formula.
The basic steps are:
1. Duplicate your image and rename it to "LS"
2. Apply MultiscaleMedianTransform to the "LS" image, using 7 layers and disabling them all except the "R" layer
3. Use PixelMath, apply the following formula to the original image: $T+(iif(LS < median(LS), median(LS)-LS, 0))
I've attached a few screenshots of the process.