Denial of service: Invalid certificates can be used to block access to the built-in server or Secure Desktop over remote for another user.
Impact: A local server can't be hosted, and a controlling computer can't work with the Secure Desktop over a remote connection.
Remote Access needs to be enabled in NVDA's system config.
The first user to create the certificate has to be the one to exploit this.
ERROR - unhandled exception (02:14:46.760) - MainThread (4748):
Traceback (most recent call last):
File "wx\core.pyc", line 3427, in <lambda>
File "gui\__init__.pyc", line 926, in run
File "_remoteClient\client.pyc", line 341, in handleDialogCompletion
File "_remoteClient\client.pyc", line 483, in startControlServer
File "_remoteClient\server.pyc", line 265, in __init__
File "_remoteClient\server.pyc", line 87, in ensureValidCertExists
File "_remoteClient\server.pyc", line 173, in _generateSelfSignedCert
PermissionError: [Errno 13] Permission denied: 'C:\\ProgramData\\temp\\NvdaRemoteRelay.key'
Remote will also not work on the Secure Desktop, because the server is needed there.
Attempting to create a Remote Access connection with a self-hosted server will fail.
Summary
Denial of service: Invalid certificates can be used to block access to the built-in server or Secure Desktop over remote for another user.
Impact: A local server can't be hosted, and a controlling computer can't work with the Secure Desktop over a remote connection.
Patch commit(s)
d9e5e05
Limitations
Remote Access needs to be enabled in NVDA's system config.
The first user to create the certificate has to be the one to exploit this.
Technical details
Proof of concept
NvdaRemoteRelay.keyinc:\ProgramData\tempand replace it with an empty directory.Remote will also not work on the Secure Desktop, because the server is needed there.
Indicators of compromise
Attempting to create a Remote Access connection with a self-hosted server will fail.
Workarounds
Unknown
Timeline
history of the disclosure and release process
For more information
If you have any questions or comments about this advisory: