Skip to content

fix(portal): revoke attested access once the client is gone - #15259

Closed
jamilbk wants to merge 1 commit into
mainfrom
fix-unattested-authorizations
Closed

fix(portal): revoke attested access once the client is gone#15259
jamilbk wants to merge 1 commit into
mainfrom
fix-unattested-authorizations

Conversation

@jamilbk

@jamilbk jamilbk commented Sep 13, 2026

Copy link
Copy Markdown
Member

A policy that requires an attested device checked the attestation only when the client connected. The authorization it granted then lived until it expired, which can be days, and the gateway kept serving the flow even after the client had dropped off the portal. So a device that attested once at connect kept its access long after the session that vouched for it was gone.

A worker now runs every 15 minutes and deletes the live authorizations of such policies whose client has no connection to the portal. Attestation is a property of the connection that presented the certificate, so without that connection the authorization has nothing to stand on. The gateway drops the flow on the delete, and a client that reconnects attests again and requests fresh authorizations. Authorizations minted in the last two minutes are left alone, since presence takes a moment to reach every node.

A policy requires attestation when its conditions carry device_attested is true or its postures carry a firezone.attested is true leaf.

Related: #15173, #15059

A policy that requires an attested device checked the attestation only
at connect, and the authorization then lived until it expired, days
later, whether or not the client was still connected. A worker now
deletes such authorizations every 15 minutes when the client has no
connection to the portal, so the gateway drops the flow.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 73.808% (-0.1%) from 73.927% — fix-unattested-authorizations into main

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants