Skip to content

Python console access via "forgot my PIN" reset screen

Moderate
seanbudd published GHSA-fpwc-2gxx-j9v7 Jan 3, 2023

Package

NVDA

Affected versions

<2022.3.3

Patched versions

2022.3.3

Description

Summary

This affects Windows 10 and 11.
It was possible for an unauthenticated user to access the NVDA python console and get access to a temporary user desktop.
This exploit could only occur:

  • when updating/installing Windows screen (Out of Box Experience - OOBE)
  • on the "forgot my PIN" reset screen

These screens run on a temporary user desktop.

Patch commit

#14416

Limitations

None

Technical details

The "forgot my PIN" screen and OOBE were previously not considered security, and assumed to run on the secure desktop in secure mode. In Windows 10 and 11, these screens run on a temporary locked desktop, which is indistinguishable from the Windows lock screen. As such they should be handled in the same manner as the Windows lock screen, and prevent access.

Proof of concept

From the secure sign-in screen.

  1. Press "I forgot my PIN".
  2. Use object navigation to get from the Microsoft Account Window to the Notification Chevron.
  3. Enter the overflow notifications area.
  4. Find NVDA, press NVDA+enter, route the mouse and click.
  5. Press t and p.
  6. The NVDA Python Console appears.

Indicators of compromise

Unknown

Workarounds

Unknown

Timeline

Reported mid November 2022
Fix released late December 2022 in 2022.3.3

For more information

If you have any questions or comments about this advisory:

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Local
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
Low

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L

CVE ID

No known CVE

Weaknesses

No CWEs

Credits