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

Remote DoS via out-of-bounds read in iterator_validate()

Aperta Adatta ai principianti
#13,286 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
76/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
cpp, docker, python
Ambito
database, security

Direzione di ricerca

Inizia con iterator_validate() in src/box/index.cc e riproduci il problema usando i file collegati Dockerfile, poc.py e config. Verifica che un array IPROTO_KEY sovradimensionato che usa ITER_NP o ITER_PP venga gestito senza una lettura oltre i limiti o un arresto anomalo.

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

Descrizione

bug

Bug description

src/box/index.cc, iterator_validate() performs an out-of-bounds read using an attacker-controlled part_count before validating it against key_def->part_count.

	if ((type == ITER_NP || type == ITER_PP) && part_count > 0 &&
	    index_def->key_def->parts[part_count - 1].coll != NULL) {
		if (part_count > index_def->key_def->part_count) {
			diag_set(ClientError, ER_KEY_PART_COUNT,

so unauthenticated guest IPROTO client can trigger this with a single SELECT request using ITER_NP/ITER_PP and an oversized, but valid, MsgPack IPROTO_KEY array

  • Tarantool 3.4.2

Steps to reproduce
Dockerfile: https://gist.github.com/dstesk/ba89b776d468717fe1ac196f7481e8b1
poc.py: https://gist.github.com/dstesk/40a3b5acfea50939bea02a4689e3831a
config: https://gist.github.com/dstesk/22ba588954d9d8e486f34bfc523914ad

docker build -t tarantool-poc .
docker run -d --name tarantool-poc -p 3301:3301 tarantool-poc
python3 poc.py 127.0.0.1 3301

Actual behavior
crash

 Segmentation fault                                                                                                                                                 
 code: SEGV_MAPERR                                                                                                                                                
 addr: 0x36e3a860                                                                                                                                                 
 context: 0x36815b00                                                                                                                                              
 siginfo: 0x36815c30
.....
Lingua principale
Lua
Stelle
3.7k
Fork
422
Merge medio
2g 1h
PR unite (30g)
114

Preparare l'ambiente

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 tarantool/tarantool

Tutte le issue di tarantool/tarantool

Issue simili

Altre issue su Lua

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.