Súlyos Python hibáról érkezett figyelmeztetés

Python fejlesztők figyelmébe: az urllib.parse könyvtár 3.11 előtti verziói távoli kódfuttatást (RCE) tehetnek lehetővé illetéktelenek számára.

A sérülékenységről a Carnegie Mellon Egyetem CERT-je adott ki biztonsági közleményt.

Az urllib.parse a Python alapcsolmag részét képző, széles körben használt URL parszoló könyvtár. A most felfedezett sebezhetőség az urlsplit() és urlparse() API-k nem megfelelő bemenet ellenőrzéséből fakad, hibaüzenet helyett üres karaktereket vagy akár kódrészeket adhatnak vissza. Ez akkor fordulhat elő, amennyiben olyan URL-t kapnak inputként, ami üres karakterekkel kezdődik.

A sebezhetőség miatt a támadók megkerülhetnek minden blokklistával megvalósított domain vagy protokollszűrési módszert. A protokollszűrési hibák tetszőleges fájlolvasáshoz, tetszőleges parancsvégrehajtáshoz, SSRF támadáshoz és potenciálisan további problémákhoz vezethetnek. A domainnév-szűrés megkerülése a blokkolt veszélyes webhelyek újbóli eléréséhez vagy a CSRF referer-alapú védelem megkerüléséhez vezethet, stb.

A sebezhetőség az alábbi verziókban javításra került, vagy megkerülő megoldásként a strip() függvény is használható.

fixed in >= 3.12
fixed in 3.11.x >= 3.11.4
fixed in 3.10.x >= 3.10.12
fixed in 3.9.x >= 3.9.17
fixed in 3.8.x >= 3.8.17
fixed in 3.7.x >= 3.7.17

A CERT Coordination Center további javaslata, hogy az ilyen API-k esetében a fejlesztők mindig végezzenek némi szűrést a visszaadott értékeken.

Vonatkozó sérülékenység leírás az NBSZ NKI weboldalán:

CVE-2023-24329