Sono stati rilasciati aggiornamenti correttivi per il framework web Django 4.0.6 e 3.2.14, che risolvono una vulnerabilità (CVE-2022-34265) che potrebbe consentire l'inserimento di codice SQL personalizzato. Il problema interessa 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 accettano solo dati verificati nei valori di lookup_name e kind non sono vulnerabili.
Il problema è stato bloccato a causa del divieto di utilizzo di caratteri diversi da lettere, numeri, «-», «_», «(» e «)» come argomenti delle funzioni Extract e Trunc. In precedenza, l'apostrofo non veniva rimosso nei valori forniti, permettendo di eseguire le proprie costruzioni SQL tramite valori come «day’ FROM start_datetime)) OR 1=1;—» e «year’, start_datetime)) OR 1=1;—». Nella prossima versione 4.1 si prevede di rafforzare ulteriormente la protezione dei metodi di estrazione e troncamento delle date, ma le modifiche apportate all'API porteranno a una compromissione della compatibilità con i backend di terze parti per il lavoro con il database.
Fonte: opennet.ru
