skip to content

Shared Key Blast Radius

The same account credential usually opens far more than session creation: the console, recordings of runs other people made, and the capacity you pay for. Interviewers probe what a leak costs.

on this pageshow

explore

questions

4

On a shared browser-provider account, whose session recordings can your key fetch?

level: middleimportance: must knowfreq 56%

answer

  1. the door check is not the room check
  2. authenticated, then located by identifier
  3. no comparison of caller to creator
  4. identifiers are printed, not secret
  5. test with a credential that started nothing

basics

~20 s

Potentially every run on the account. An artefact route commonly checks only that the caller authenticates, then resolves the recording from its session identifier, so a credential that never started the run can still fetch it. Measure that boundary yourself.

solid answer

~50 s

Authenticating and being entitled to a particular artefact are different checks, and a remote fleet does not necessarily perform the second. Ggr, unmaintained by its own README, is the readable case: its `/video/`, `/logs/` and `/download/` routes sit behind the same authenticator as session creation, and the handler behind them resolves the artefact from a prefix of the requested session identifier alone. Nothing there compares the calling account against whichever account created that session, and its live-view socket route is not behind that authenticator at all — Ggr (unmaintained) documents plainly that having the running session identifier is what gets you the screen. You cannot assert a closed provider's internal model, so **establish it**: from a credential that has started nothing, try to fetch a colleague's recording, and treat every session identifier your suite prints as reachable.

go deeper

for a junior

Know that a recording lives with the provider rather than with your job, and that fetching one is a separate request the account credential authorises. Do not assume it is private to whoever ran the test.

for a middle

Be ready to explain the difference between proving which account is calling and deciding who may have this artefact, and to say that a fleet may only perform the first.

for a senior

Expect a scoping question after an incident. Argue that exposure covers every run whose identifier is discoverable, not just the compromised pipeline's, and say how you would have tested the boundary beforehand.

for a principal

Own the upstream decision: if artefact retrieval is bounded by the account, then what a suite is allowed to put on screen has to be settled before the recording exists, not after.

## Authenticating and being entitled are different checks Presenting a valid credential establishes *which account is calling*. Deciding that this caller may have *this particular recording* is a separate decision, taken later, against different information — and a remote fleet does not necessarily take it at all. When they are collapsed, the boundary around an artefact stops being the run that produced it and becomes the whole account. That matters concretely for a law firm's document-review workspace. A suite that opens matters, scrolls privileged text and fills forms produces recordings that are pictures of client material. Whether a colleague's credential — or a leaked one — can fetch those recordings is not a detail of the provider's user interface; it is the actual width of the exposure. ## The readable case Ggr, unmaintained by its own README, is the open implementation of exactly this shape, and it is worth reading because nothing about a closed provider can be checked the same way. - Its `/video/`, `/logs/` and `/download/` routes are wrapped in the same authenticator that wraps session creation, so one credential covers artefacts and sessions alike. - The handler behind those routes takes a fixed-width prefix of the requested session identifier, looks that prefix up in its routing table to find the host, and reverse-proxies the request there. - Nothing in that handler compares the calling account against whichever account created the session. There is no per-session ownership record in Ggr (unmaintained) at all; the account name drives an access decision only at session creation, at the entitlement route, and in the guest check that decides whether an unauthenticated caller is admitted — never against the session whose artefact is being fetched. - Its live-view socket route is not behind that authenticator at all, and Ggr's own quota documentation (Ggr is unmaintained) says plainly that having the running session identifier is what gets you the screen. So in that implementation the honest statement is: **the credential is checked at the door, and the artefact is then located by identifier.** An account that started nothing can retrieve what another account produced, given the identifier. ## Why the identifier is not the control A natural response is "then keep session identifiers secret". That is a weak control, because the identifier is engineered to travel: - The harness prints it so a failing test can link to its evidence. - Result reports and dashboards carry it, often into surfaces with wider readership than the pipeline. - Job logs keep it for as long as the logs are kept. - Any annotation or ticket that references the run carries it too. An identifier that is designed to be quotable is not a secret, and a boundary that depends on its obscurity is not a boundary. Treat every session identifier your suite emits as reachable by anyone who can read your CI output. ## What you may assert, and what you must establish Nothing here licenses a claim about a specific closed provider's internal access model. What a vendor separates, what its roles are named and what its web surface shows are not observable from outside, and asserting them is how confident-sounding answers go wrong. What you can do is measure behaviour: 1. Issue or obtain a credential on the account that has started nothing. 2. Take a session identifier from a run started by a different credential on the same account. 3. From a clean machine, attempt to retrieve that run's recording, its log and any file it downloaded. 4. Record each outcome. Repeat for the live view while a session is still open, because a live surface and a stored surface are not always guarded the same way. 5. Put the result in writing, and re-check it after any change to the account. | what you observed | what it means for the suite | |---|---| | the fetch succeeded | the artefact boundary is the account; a credential on it can reach evidence from runs it did not start | | the fetch was refused | a narrower boundary exists today; record how you tested it, because you have shown behaviour and not a guarantee | The second row is the one candidates get wrong. A refusal you observed once is evidence, not a contract, and it is worth re-testing rather than being promoted to an assumption. ## Practical consequences - Decide what the suite is allowed to put on screen *before* the recording exists, because retrieval control is weaker than you would like. - Prefer distinct credentials per team where the provider allows it, so that a retrievable artefact set is at least smaller. - Do not rely on identifier secrecy; rely on what is captured in the first place. - When an exposure is being assessed, count every run whose identifier is discoverable, not only the runs the compromised pipeline started. The short version for an interview: authentication tells the fleet who is calling, and unless something downstream narrows it, the answer to "whose recordings can this key fetch" is "every run the account produced". Go and find out which of those worlds you are in.

  • Why is keeping session identifiers secret a weak control here?
    Because they are built to travel. The harness prints the identifier so a failing test can link to its evidence, reports and dashboards carry it to a wider readership, job logs retain it, and tickets quote it. An identifier designed to be quotable is not a secret, and a boundary resting on its obscurity is not a boundary. Control what gets captured instead.
  • How would you establish where the artefact boundary actually sits?
    Test it. Obtain a credential on the account that has started nothing, take a session identifier from a run another credential started, and from a clean machine attempt the recording, the log and any downloaded file. Repeat for the live view while a session is still open, since live and stored surfaces are not always guarded alike. Record each outcome in writing.
  • If a fetch is refused today, what have you established?
    That the behaviour you observed was a refusal, which is evidence rather than a guarantee. A closed provider publishes no schema you can hold it to, and packaging changes. Treat the result as a dated observation, note how you tested it, and re-check after any account change instead of promoting the single refusal into a standing assumption.

A building pass that opens the lobby and every door behind it. The guard checks that the pass is valid, not which office you were hired into.

saying these in an interview costs you the question

  • Assumes each run's evidence is private to its creator
  • Relies on session identifiers being hard to guess
  • States what the provider separates internally as fact
  • Confuses passing authentication with being entitled to an artefact
  • Counts only the compromised pipeline's runs when scoping exposure
open as a page

Several teams share one browser-provider account — what does that couple together?

level: middleimportance: must knowfreq 51%

basics

~20 s

Entitlement, capacity, artefacts, audit identity and revocation all collapse onto the account. Whoever holds the key draws on the same pool, reads the same artefacts, appears in records under the same name, and loses access together when it is rotated.

open as a page

Your browser-provider account key leaked — what stays reachable after you revoke it?

level: seniorimportance: must knowfreq 54%

basics

~20 s

Revocation stops new authentications with that value. It does not end sessions already running, retract artefacts already downloaded, invalidate session identifiers already shared, or tell you what the holder reached while it worked. Rotation begins the response.

open as a page

A hosted browser provider's account key starts sessions — what else does it open?

level: juniorimportance: should knowfreq 62%

basics

~20 s

An account key at a hosted browser provider is scoped to the account, not the run, so treat the console, the run history, the recordings and logs those runs left, and the capacity as surfaces to measure.

open as a page