Vulnerabilità nel framework web Django che può portare alla sostituzione SQL

Sono state pubblicate le versioni correttive del framework web Django 4.0.6 e 3.2.14, che risolvono una vulnerabilità (CVE-2022-34265) che potenzialmente consente di sostituire il proprio codice SQL. Il problema riguarda le applicazioni che utilizzano dati esterni non verificati nei parametri kind e lookup_name passati alle funzioni Trunc(kind) ed Extract(lookup_name). I programmi che consentono solo dati verificati nei valori lookup_name e kind non sono interessati dalla vulnerabilità.

Il problema è stato bloccato proibendo l'uso di caratteri diversi da lettere, numeri, “-“, “_”, “(” e “)” negli argomenti delle funzioni Extract e Trunc. In precedenza, la virgoletta singola non veniva eliminata nei valori trasmessi, il che rendeva possibile eseguire i costrutti SQL passando valori come "day' FROM start_datetime)) OR 1=1;—" e "year', start_datetime) ) OPPURE 1=1;—“. Nella prossima versione 4.1 si prevede di rafforzare ulteriormente la protezione dei metodi di estrazione e troncamento dei dati, ma le modifiche apportate all'API porteranno a un'interruzione della compatibilità con i backend di database di terze parti.

Fonte: opennet.ru

Aggiungi un commento