Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Script dedup key truncation may cause collisions

Ouverte Adaptée aux débutants
#37 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@saschabuehrle y travaille déjà.

Depuis le 24/3/2026.

  • #39 par @saschabuehrle — ouverte

É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

bug

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

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de CopilotKit/OpenIntelligentUI

Toutes les issues de CopilotKit/OpenIntelligentUI

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.