Fleet: Device lock PIN can be predicted if lock time is known

Description

Summary

Fleet generated device lock and wipe PINs using a predictable algorithm based solely on the current Unix timestamp. Because no secret key or additional entropy was used, the resulting PIN could potentially be derived if the approximate time the device was locked is known.

Impact

Fleet’s device lock and wipe commands generate a 6-digit PIN that is displayed to administrators for unlocking a device. In affected versions, this PIN was deterministically derived from the current timestamp.

An attacker with physical possession of a locked device and knowledge of the approximate time the lock command was issued could theoretically predict the correct PIN within a limited search window.

However, successful exploitation is constrained by multiple factors:
- Physical access to the device is required.
- The approximate lock time must be known.
- The operating system enforces rate limiting on PIN entry attempts.
- Attempts would need to be spread over multiple days.
- Device wipe operations would typically complete before sufficient attempts could be made.

As a result, this issue does not allow remote exploitation, fleet-wide compromise, or bypass of Fleet authentication controls.

Workarounds

There are no known workarounds for this issue. Customers should upgrade to a patched version.

For more information

If there are any questions or comments about this advisory:

Email Fleet at [email protected]
Join #fleet in osquery Slack

Credits

Fleet thanks @secfox-ai for responsibly reporting this issue.

Basic information

Type
reviewed
Severity
medium
Advisory on GitHub
Open advisory ↗
Repository advisory
Open repository advisory ↗
Source code
Browse source ↗
Published (advisory)
2026-02-26 19:35:29 UTC
Updated
2026-03-10 18:22:19 UTC
GitHub reviewed
2026-02-26 19:35:29 UTC
NVD published
2026-02-25

EPSS Score

Score Percentile
0.02% 5.26%

CVSS Scores

Base score Version Severity Vector
4.1 4.0
CVSS:4.0/AV:P/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N Click to expand
Attack vector (AV:P)
Physical access is required.
Attack complexity (AC:H)
Exploitation depends on constrained or hard-to-reproduce conditions.
Attack requirements (AT:P)
Additional preconditions must be present for exploitation.
Privileges required (PR:N)
No privileges are required.
User interaction (UI:N)
No user interaction is required.
Vulnerable system confidentiality impact (VC:N)
No confidentiality impact on the vulnerable system.
Vulnerable system integrity impact (VI:H)
High integrity impact on the vulnerable system.
Vulnerable system availability impact (VA:N)
No availability impact on the vulnerable system.
Subsequent system confidentiality impact (SC:N)
No confidentiality impact on subsequent systems.
Subsequent system integrity impact (SI:N)
No integrity impact on subsequent systems.
Subsequent system availability impact (SA:N)
No availability impact on subsequent systems.

Identifiers

CWEs

CWE id Name
CWE-330 Use of Insufficiently Random Values

Credits

  • prateek-0490 (reporter)

Affected packages (1)

Vulnerable version ranges and first patched releases as published by GitHub.

Ecosystem Package Vulnerable range First patched Vulnerable functions
go github.com/fleetdm/fleet/v4 < 4.80.1 4.80.1

References

cvelogic Threat Intelligence