Hûrguliyên qelsiya krîtîk li Exim eşkere kirin

weşandin berdana rastker Exim 4.92.2 bi rakirina krîtîk qelsiyên (CVE-2019-15846), ku di veavakirina xwerû de dikare bibe sedema darvekirina kodê ji dûr ve ji hêla êrîşkarek bi mafên root ve. Pirsgirêk tenê dema ku piştgiriya TLS-ê çalak be û bi derbaskirina sertîfîkayek xerîdar a taybetî ya sêwirandî an nirxek guhezbar ji SNI re were bikar anîn xuya dike. Zehfbûn nas kirin ji hêla Qualys.

pirsgirêka amade di destikê de ji bo revîna karakterên taybetî yên di rêzikê de (string_interpret_escape() ji rêzê.c) û ji ber ku karaktera '\' ya li dawiya rêzê li ber tîpa betal ('\0') tê şîrovekirin û jê direve çêdibe. Dema ku direvin, rêzika '\' û koda dawîya rêzê ya jêrîn wekî karakterek yekane têne hesibandin û nîşanker berbi daneya derveyî rêzê ve tê veguheztin, ku wekî berdewamiya rêzê tê hesibandin.

Koda ku gazî string_interpret_escape() dike, li gorî mezinahiya rastîn ji bo drainê tamponek vediqetîne, û nîşankera vekirî li deverek li derveyî sînorên tamponê diqede. Li gorî vê yekê, dema ku meriv hewl dide ku rêzika têketinê were hilanîn, rewşek derdikeve dema xwendina daneyan ji deverek li derveyî sînorên tamponê veqetandî, û hewildanek ji bo nivîsandina rêzek neqewimin dikare bibe sedema nivîsandina derveyî sînorên tamponê.

Di veavakirina xwerû de, dema ku pêwendiyek ewledar bi serverê re were saz kirin, xeternak dikare bi şandina daneyên taybetî yên sêwirandî ji SNI re were bikar anîn. Pirsgirêk di heman demê de dikare bi guheztina nirxên peerdn-ê yên di mîhengên ku ji bo rastkirina sertîfîkaya xerîdar ve hatine mîheng kirin an dema ku sertîfîkayan îthal dikin, were bikar anîn. Êrîşa bi SNI û peerdn ji serbestberdanê ve gengaz e Exim 4.80, ku tê de fonksiyona string_unprinting() ji bo çapkirina naveroka peerdn û SNI hate bikar anîn.

Ji bo êrîşek bi rêya SNI ve, prototîpek îstîsmarê hatiye amadekirin, ku li ser mîmarên i386 û amd64 li ser pergalên Linux bi Glibc dimeşîne. Kêmasî li ser devera heap danûstendina daneyê bikar tîne, di encamê de bîranîna ku navê pelê têketinê tê de tê hilanîn tê nivîsandin. Navê pelê bi "/../../../../../../../../etc/passwd" tê guherandin. Dûv re, guhêrbar bi navnîşana şanderê tê nivîsandin, ku yekem car di têketinê de tê tomar kirin, ku dihêle hûn bikarhênerek nû li pergalê zêde bikin.

Nûvekirinên pakêtê bi rastkirinên qelsbûnê yên ku ji hêla belavkirinan ve têne berdan Debian, Ubuntu, Fedora, SUSE / openSUSE и FreeBSD. Pirsgirêka RHEL û CentOS ne hesas, ji ber ku Exim di depoya pakêta wan a birêkûpêk de tune ye (di EPEL nûjen bikin êdî ava kirin, lê ji bo niha nayê danîn li depoyek giştî). Di koda Exim de pirsgirêk bi yek-xêzikek tê çareser kirin pîne, ku eger ew li dawiya rêzê be, bandora revê ya paşperdeyê asteng dike.

Wekî çareseriyek ji bo astengkirina xizaniyê, hûn dikarin piştgiriya TLS neçalak bikin an lê zêde bikin
Beşa ACL "acl_smtp_mail":

şerta redkirinê = ${eger eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
şertê redkirinê = ${eger eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Source: opennet.ru

Add a comment