security: isAppPageUrl checks devRendererUrl with startsWith instead of comparing parsed URL origins
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- electron, typescript
Direzione di ricerca
Il bug si trova in isAppPageUrl in src/main/renderer_url.ts (intorno alle righe 25-26), dove url.startsWith(dev) viene usato sull'URL del renderer di sviluppo. Inizia leggendo questa funzione e devRendererUrl, poi controlla come viene impostato ELECTRON_RENDERER_URL. È fatto quando sia url sia dev vengono analizzati con new URL(...) e confrontati per origin, più un prefisso di pathname quando dev ha un percorso, e un URL come http://localhost:5173.evil.example/ non viene più accettato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
Found in the Oct 13 audit (at 704a0b7).
In src/main/renderer_url.ts:25-26, isAppPageUrl checks whether an IPC call came from the development server with:
const dev = devRendererUrl(isPackaged, env);
if (dev && url.startsWith(dev)) return true;
Packaged builds ignore ELECTRON_RENDERER_URL (isPackaged is true), so this affects development runs only. However, when ELECTRON_RENDERER_URL has no trailing slash (for example http://localhost:5173), url.startsWith(dev) also matches http://localhost:5173.evil.example/ or http://localhost:[email protected]/.
Fix
Parse both url and dev with new URL(...) and compare origin (plus pathname prefix when dev includes a path).
- Lingua principale
- TypeScript
- Stelle
- 2
- Fork
- 2
- Merge medio
- 8h 28m
- PR unite (30g)
- 26
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di PierrunoYT/patch
-
enhancement priority: low severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
PierrunoYT/patch#305 ·
I maintainer di solito rispondono entro 1 giorno
-
Claude Code chats: tool calls made inside Claude Code subagents leave cards that end as "(stopped)"Apertabug priority: low severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
PierrunoYT/patch#289 ·
I maintainer di solito rispondono entro 1 giorno
-
bug priority: medium severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PierrunoYT/patch#285 ·
I maintainer di solito rispondono entro 1 giorno
-
priority: medium security severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
PierrunoYT/patch#283 ·
I maintainer di solito rispondono entro 1 giorno
-
performance priority: low severity: low
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
PierrunoYT/patch#306 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di PierrunoYT/patch
Issue simili
-
area:ui effort:S enhancement priority:P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
QuantumNous/new-api#7839 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue maintenance
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
dark-princezz/stellar-hooks#1010 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
interledger/rhyza#352 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno