Potential out-of-bounds read in cupsdFindBest() with HTTP_STATE_ERROR
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
- 78/100
Direzione di ricerca
Inizia in scheduler/auth.c leggendo cupsdFindBest() e il suo chiamante cupsdAuthorize(), concentrandoti su come httpGetState() fornisce il valore di state. Verifica il percorso HTTP_STATE_ERROR e i limiti dell'array limits. Il lavoro è completato quando gli stati non validi non possono causare un accesso oltre i limiti e la normale ricerca dell'autorizzazione rimane invariata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Potential problem
In scheduler/auth.c, the state parameter is used as an array index in cupsdFindBest():
limit = limits[state];
state is obtained from httpGetState(con->http) and passed to cupsdFindBest() by cupsdAuthorize():
con->best = cupsdFindBest(con->uri, httpGetState(con->http));
httpGetState() can return HTTP_STATE_ERROR, which is defined as -1. However, cupsdFindBest() does not validate state before using it as an array index.
If HTTP_STATE_ERROR reaches cupsdFindBest(), the code accesses limits[-1]. This reads memory before the beginning of the array and results in undefined behavior.
Possible solution
Validate state before accessing limits[state], for example:
if (state < 0 ||
(size_t)state >= sizeof(limits) / sizeof(limits))
return NULL;
This ensures that an invalid HTTP state cannot be used as an array index.
Found by Linux Verification Center (portal.linuxtesting.ru) with SVACE.
Author V. Ostretsov
- Lingua principale
- C
- Stelle
- 1.8k
- Fork
- 352
- Merge medio
- 2g 5h
- PR unite (30g)
- 14
Preparare l'ambiente
- Include un Dockerfile o un 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 OpenPrinting/cups
-
Potential integer overflow when using atoi() In cgi-bin/var.cForse già presa @lynayur l’ha presa 12 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
OpenPrinting/cups#1748 ·
I maintainer di solito rispondono entro 1 giorno
-
Don't use xgettext sort option (-s) when generating POT fileForse già presa @michaelrsweet l’ha presa 4 giorni fa. Apertainvestigating
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
OpenPrinting/cups#1721 · 4 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 1-2 giorni Idoneità per principianti 55/100
OpenPrinting/cups#1778 ·
I maintainer di solito rispondono entro 1 giorno
-
printing is being distortedAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 15/100
OpenPrinting/cups#1763 ·
I maintainer di solito rispondono entro 1 giorno
-
investigating platform issue printer specific issue
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
OpenPrinting/cups#1727 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di OpenPrinting/cups
Issue simili
-
[LOGO] Add Ruxt Linux LogoApertalogo request
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
fastfetch-cli/fastfetch#2661 ·
I maintainer di solito rispondono entro 1 giorno
-
Mark ignored Mac OS partitions RecoveryOSContainer and iBootSystemContainerForse già presa @meven l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
storaged-project/udisks#1559 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 71/100
awslabs/aws-checksums#121 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 3 giorni
-
Bad tag for language cardAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100