The Windows Shell32
ShellExecute function enables applications to pass URLs. Applications must be carefully designed based on the threat environment. This is true for any program that uses URL handling to accept untrusted data.
Before passing URLs that will be executed by Windows Shell32, an application should do the following:
- The application should call the SHParseDisplayName function together with the URI string.
- If step 1 is successful, the application should call the ShellExecuteEx function together with the SEE_MASK_INVOKEIDLIST flag and the pointer to an item identifier list (PIDL).