Hi @JC ,
Thank you for posting your question.
Under your assumptions, my reading of the documented access-control model is that enabled SeDebugPrivilege should not be an additional requirement. However, the Remarks are not enough to present that interpretation as an authoritative contract.
There are three distinct checks to consider:
- Acquiring the process handle.
OpenProcesschecks the requested process access against the process’s security descriptor. Its documentedSeDebugPrivilegeoverride applies at this stage. Your question explicitly assumes that the required handle has already been obtained. OpenProcess - Using the supplied process handle.
OpenProcessTokenspecifiesPROCESS_QUERY_LIMITED_INFORMATIONas the required process access. Your handle satisfies that requirement. OpenProcessToken - Opening the token object. The requested
TOKEN_QUERYaccess is checked against the token object’s own DACL. That is separate from access to the process object, and your assumptions satisfy this check as well. Access Rights for Access-Token Objects
This supports interpreting the Remarks as guidance about obtaining otherwise unavailable process access. Nevertheless, the Remarks do not explicitly say that, and the parameter descriptions do not establish that the listed checks are exhaustive. The supplied-handle case therefore still warrants clarification by the documentation owner.
For versions and configurations:
- Windows XP/Server 2003:
PROCESS_QUERY_LIMITED_INFORMATIONis unsupported; the historical query right isPROCESS_QUERY_INFORMATION. Your exact premise cannot be applied unchanged to those systems. I found no published build-specific rule resolving the separate cross-account privilege question. Process access rights - UAC, integrity, restricted tokens and AppContainer:These can affect the effective security context or introduce restrictions beyond an ordinary DACL allow entry. For example, mandatory integrity checks are separate from DACL checks, and restricting SIDs can require an additional access check. These are distinct issues from a mandatory cross-account
SeDebugPrivilegecheck. Mandatory Integrity Control, Restricted tokens, AppContainer - Protected process/PPL: Separate protection rules apply. The general process-protection documentation does not establish a complete
TOKEN_QUERYoutcome matrix for supplied handles and enabling debug privilege should not be assumed to bypass those protections. Protected processes
No public statement addresses this supplied-handle case. You can also see article’s source.
Because I'm limited to this forum, I can only refer you to publicly available documentation.So for an authoritative reference or answer I recommend you make a report on the Feedback Hub.
If you found my investigation and direction of my support helpful, I’d really appreciate it if you could follow this guide so others with similar issue can benefit as well.
Thank you.