Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

`tree_sitter_cpp_external_scanner_deserialize` doesn't bound `length` against the size of the delimiter buffer

Aperta Adatta ai principianti
#368 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@dekobon ci sta già lavorando.

Dal 3/8/2026.

  • #370 di @dekobon — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
70/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
c, cpp
Ambito
compilers

Direzione di ricerca

Inizia in src/scanner.c alle righe 135-143 e confronta tree_sitter_cpp_external_scanner_deserialize con la dimensione del delimiter buffer e il limite massimo di 64 byte del serializer. Verifica che un input sovradimensionato non possa sovrascrivere il delimiter buffer, quindi esegui i test del repository e conferma che la serializzazione normale dello scanner continui a funzionare.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

https://github.com/tree-sitter/tree-sitter-cpp/blob/8b5b49eb196bec7040441bee33b2c9a4838d6967/src/scanner.c#L135-L143

If the function is fed a buffer which exceeds the implicit bound of 64 bytes fed currently, the input can overflow onto the heap. This would be exploitable, if not for the fact that serialize only returns a maximum of MAX_DELIMITER_LENGTH * sizeof(wchar_t) == 64 bytes on Linux and MacOS.

Lingua principale
JavaScript
Stelle
463
Fork
190
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di tree-sitter/tree-sitter-cpp

Tutte le issue di tree-sitter/tree-sitter-cpp

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.