Ang kahinaan sa zlib na nangyayari kapag nag-compress ng espesyal na idinisenyong data

May natukoy na kahinaan (CVE-2018-25032) sa zlib library, na humahantong sa isang buffer overflow kapag sinusubukang i-compress ang isang espesyal na inihandang pagkakasunod-sunod ng mga character sa papasok na data. Sa kasalukuyang anyo nito, ipinakita ng mga mananaliksik ang kakayahang magdulot ng abnormal na pagwawakas ng isang proseso. Kung ang problema ay maaaring magkaroon ng mas malubhang kahihinatnan ay hindi pa napag-aaralan.

Lumilitaw ang kahinaan simula sa bersyong zlib 1.2.2.2 at nakakaapekto rin sa kasalukuyang paglabas ng zlib 1.2.11. Kapansin-pansin na ang isang patch upang itama ang kahinaan ay iminungkahi noong 2018, ngunit hindi ito pinansin ng mga developer at hindi naglabas ng corrective release (huling na-update ang zlib library noong 2017). Ang pag-aayos ay hindi pa kasama sa mga pakete na inaalok ng mga pamamahagi. Maaari mong subaybayan ang paglalathala ng mga pag-aayos sa pamamagitan ng mga pamamahagi sa mga pahinang ito: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. Ang zlib-ng library ay hindi apektado ng problema.

Ang kahinaan ay nangyayari kung ang input stream ay naglalaman ng isang malaking bilang ng mga tugma na iimpake, kung saan inilalapat ang packing batay sa mga nakapirming Huffman code. Sa ilang partikular na sitwasyon, ang mga nilalaman ng intermediate buffer kung saan inilalagay ang naka-compress na resulta ay maaaring mag-overlap sa memorya kung saan naka-imbak ang talahanayan ng dalas ng simbolo. Bilang resulta, nabuo ang hindi tamang naka-compress na data at nag-crash dahil sa pagsusulat sa labas ng hangganan ng buffer.

Magagamit lang ang kahinaan gamit ang diskarte sa compression batay sa mga nakapirming Huffman code. Pinipili ang isang katulad na diskarte kapag ang Z_FIXED na opsyon ay tahasang pinagana sa code (isang halimbawa ng pagkakasunod-sunod na humahantong sa isang pag-crash kapag ginagamit ang Z_FIXED na opsyon). Sa paghusga sa code, ang Z_FIXED na diskarte ay maaari ding awtomatikong mapili kung ang pinakamainam at static na mga puno na kinakalkula para sa data ay may parehong laki.

Hindi pa malinaw kung ang mga kundisyon para sa pagsasamantala sa kahinaan ay maaaring piliin gamit ang default na Z_DEFAULT_STRATEGY na diskarte sa compression. Kung hindi, limitado ang kahinaan sa ilang partikular na system na tahasang gumagamit ng opsyong Z_FIXED. Kung gayon, kung gayon ang pinsala mula sa kahinaan ay maaaring maging napakahalaga, dahil ang zlib library ay isang de facto na pamantayan at ginagamit sa maraming sikat na proyekto, kabilang ang Linux kernel, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg , rpm, Git , PostgreSQL, MySQL, atbp.

Pinagmulan: opennet.ru

Magdagdag ng komento