Script dedup key truncation may cause collisions
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 72/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Calme
- Stack technique
- typescript
- Domaine
- frontend
Piste de recherche
Commencez dans apps/app/src/components/generative-ui/widget-renderer.tsx aux lignes 369-370, où les scripts exécutés sont suivis avec la clé base64 tronquée. Examinez la logique iframe-bridge environnante et vérifiez que des contenus de script distincts reçoivent des data attributes distincts. C’est terminé lorsque le risque de collision est supprimé sans entraîner la réexécution des scripts déjà exécutés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Problem
In the widget renderer's iframe bridge (widget-renderer.tsx:369-370), executed scripts are tracked using a truncated base64 key:
```js
content.getAttribute('data-exec-' + btoa(key).slice(0, 16))
```
Truncating to 16 characters creates a collision risk for scripts with similar prefixes. Two different scripts could hash to the same 16-char prefix, causing the second script to be skipped.
Impact
Low probability with current usage (small widget scripts), but could cause bugs if:
- Widgets include multiple scripts with similar content prefixes
- Templates are applied with untrusted or user-influenced content
Suggested fix
Use the full btoa(key) value instead of truncating, or switch to a proper hash function. The data attribute name length is not meaningfully constrained.
Files
apps/app/src/components/generative-ui/widget-renderer.tsx
From PR #20 review
- Langage dominant
- TypeScript
- Étoiles
- 3.9k
- Forks
- 414
- Merge moyen
- 4 h
- PR mergées (30 j)
- 6
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de CopilotKit/OpenIntelligentUI
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
CopilotKit/OpenIntelligentUI#29 ·
Les mainteneurs répondent en général sous 1 jour
-
Self-host with Docker Compose and optional server-held keysPeut-être pris @kannan983 l’a pris il y a 15 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 18/100
CopilotKit/OpenIntelligentUI#98 ·
Les mainteneurs répondent en général sous 1 jour
-
Support OpenAI-compatible gateways (OpenRouter) via vendor/model namesPeut-être pris @kannan983 l’a pris il y a 15 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 25/100
CopilotKit/OpenIntelligentUI#97 ·
Les mainteneurs répondent en général sous 1 jour
-
UIOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 8/100
CopilotKit/OpenIntelligentUI#96 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
CopilotKit/OpenIntelligentUI#87 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de CopilotKit/OpenIntelligentUI
Issues similaires
-
a10y a10y-audit ai-driven-qa claude
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
linagora/twake-directory-manager#219 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
type: bug
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
Les mainteneurs répondent en général sous 1 jour
-
0️⃣ phase/new
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Pulse v7: buildPreferencesFromTelos() bypasses telosSectionOrFile(), renders empty on unified-TELOS installsPeut-être pris @zephyr91 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
danielmiessler/LifeOS#2393 ·
Les mainteneurs répondent en général sous 4 jours