Renderer h() sets any known DOM property from props; restrict it before a dynamic key appears
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
- 70/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- security
Direzione di ricerca
Leggi il ramo di assegnazione delle proprietà in src/renderer/src/dom.ts e consulta le indicazioni su trustedHtml in AGENTS.md. Aggiungi un test unitario per h('div', { innerHTML: '<b>x</b>' }) e verifica che la chiamata non imposti HTML; poi esegui i test pertinenti del renderer. L’issue lascia aperta la scelta tra una allow-list e una deny-list, quindi concorda questo ambito con i maintainer.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
From Finding 4 of the earlier SECURITY-REVIEW.md, checked against the current code on 2026-10-07. Hardening only: not exploitable today.
Problem
h() (src/renderer/src/dom.ts, the key in element && !key.includes('-') branch) assigns any prop that exists on the element as a DOM property. All current call sites use literal prop names. But a future h(tag, { [name]: value }) with a model- or file-derived key could set innerHTML, outerHTML, srcdoc or href and bypass the trustedHtml rule in AGENTS.md. The CSP and Trusted Types would still block script execution.
Proposal
Limit the property branch to an allow-list (value, checked, disabled, className, textContent, …) or refuse a deny-list (innerHTML, outerHTML, srcdoc, formAction, src, href, on*). Add a unit test that h('div', { innerHTML: '<b>x</b>' }) doesn't set HTML.
- Lingua principale
- TypeScript
- Stelle
- 2
- Fork
- 2
- Merge medio
- 5h 28m
- PR unite (30g)
- 24
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 security severity: low
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
PierrunoYT/patch#260 ·
I maintainer di solito rispondono entro 1 giorno
-
bug priority: low severity: low
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
PierrunoYT/patch#259 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
platform: macos priority: medium security severity: low tests
Difficoltà 4/5 3-5 giorni Idoneità per principianti 15/100
PierrunoYT/patch#257 ·
I maintainer di solito rispondono entro 1 giorno
-
bug platform: windows priority: medium severity: medium
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
PierrunoYT/patch#242 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug priority: high severity: high
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
PierrunoYT/patch#240 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di PierrunoYT/patch
Issue simili
-
[Feature]: [P3] engine-rs: the package source hash should ignore line endings and untracked filesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
maniator/verticopolis#880 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
siyuan-note/siyuan#20353 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
black-forest-labs/skills#17 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Albert-Weasker/niubigeo#168 ·
I maintainer di solito rispondono entro 1 giorno