egarim / egarim/CieloOS

The login page tells anyone where the credential files are

Open Beginner friendly
#46 0 comments 0 reactions 0 assignees View on GitHub
security
Dominant language
C#
Stars
0
Forks
0
Avg merge
2h 5m
Merged PRs (30d)
2

Description

`src/frontend/src/main.tsx:1049`, in the shipping admin panel, on the **sign-in screen, before anyone authenticates**:

> Each identity's token is written to `.data/secrets/.token`. If this machine predates passwords, sign in with the token and set a password from the Models tab.

It sits inside a collapsed ``, which hides it from a casual look and not at all from view-source. Anyone who can reach the panel is handed the on-disk location of every identity's eternal credential, together with the naming scheme (`.token`) and the fact that slugs are guessable user names.

That is worse on exactly the install where it matters most. #26 exists because headless installs are reached over a network; on one of those, the login page is a public page.

The same string is in `login.tokenFallbackHint` in all three of `en.json`, `es.json`, `ru.json`. Those keys are consumed only by `src/next/apps/`, which does not run today (#44) — so fixing the hardcoded copy in `main.tsx` alone would leave the leak waiting to come back the moment that tree is mounted. Fix all four.

## What it should say

Where the file lives is an operator's answer to "how do I recover an account", and it belongs in the install documentation an operator already has to read. The person staring at the sign-in box needs to know only that the option exists and who can give them the value.

The end-user portal had the same text and no longer does — see the sign-in strings under `portal.signin.*`, which now say a code exists and that whoever set the machine up can issue one, without naming a path.

Found while reviewing the portal shell.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at src/frontend/src/main.tsx:1049 and compare the login.tokenFallbackHint entries in src/next/apps/'s en.json, es.json, and ru.json with the portal.signin.* strings. Verify the sign-in screen no longer exposes credential paths, filenames, or slug conventions, while still explaining that a token exists and can be issued by the operator; confirm all four copies are updated.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
authentication, frontend, security
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
85/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.