ThreatLocker Approval Requests — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ThreatLocker Approval Requests (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Approval requests are how ThreatLocker users ask for an application that's currently being blocked to be permitted. Each request carries rich context — file path, hash, signer, the user who asked, the computer it ran on, and a free-text justification. Triaging this queue well is the difference between a productive ThreatLocker deployment and a frustrated client.
threatlocker_approvals_listPOST-based GetByParameters — see api-patterns. Useful filters via searchText: file name, application name, requester user, computer name. Each request typically includes:
requestId, applicationName, fileName, filePath, fileHashsigner (Authenticode publisher), signerVerified booleanrequesterUser, computerName, computerId, organizationNamejustification (free-text from the user), dateRequestedstatus — Pending, Approved, or Deniedthreatlocker_approvals_getFull detail for one request — includes additional context like the specific policy that blocked it and any prior history of the same hash.
threatlocker_approvals_pending_countCheap call — returns the size of the pending queue. Use this as the opening move every shift to know whether you have 3 requests or 300.
threatlocker_approvals_get_permit_applicationReturns the application that would be permitted if the request is approved — including which group(s) the approval would scope to and what other endpoints would be affected. Always check this before approving anything that looks like it could have a wider blast radius than expected.
threatlocker_approvals_pending_count — sets expectations.threatlocker_approvals_list with status: "Pending",orderBy: "dateRequested", isAscending: true (oldest first).
fileHash — many requests are duplicates of thesame binary asked for from multiple endpoints. Decide once, apply broadly.
threatlocker_approvals_get_permit_applicationto confirm scope. Then approve.
Signals that increase confidence to approve:
signerVerified: true AND signer is a known vendor (Microsoft,Adobe, JetBrains, Mozilla, Google, etc.).
filePath is in a vendor-installed location (C:\Program Files\...).for ticket INC-5123").
Signals that warrant needs-review or deny:
%TEMP%, %APPDATA%, Downloads, or C:\Users\Public.svchost, lsass, runtime)but path is unusual.
many requests.
Hard escalation triggers — surface to a senior analyst:
certutil, mshta, bitsadmin) requested from auser-writable path.
AnyDesk, ConnectWise Control,ScreenConnect) requested by an end user rather than IT.
HTA files.
When a single hash appears across many requests:
endpoints in the chosen group.
automatically once the application is permitted at group scope.
legitimate apps occasionally ship with signature timing issues. Verify the hash with VirusTotal or the vendor before approving an unsigned binary that should be signed.
Approve on hash, not signer.
since left the org should usually be denied with a "stale request" reason.
Approved/Denied isterminal; do not attempt to re-process it. Filter to Pending only.
is your defense if a policy change ever needs review.
paths drift, hashes don't.
duplicate requests resolved.
audit-log skill) tosee what the binary actually did before deciding.
approval decisions
the resulting permit
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.