TL; DR
Benthycodd clwstwr o becynnau PyPI yr enw uv, y rheolwr pecynnau Python cyflym, hynod boblogaidd sy'n seiliedig ar Rust, i esgus bod yn gynorthwywyr UV. Prin y maent yn cludo unrhyw ymarferoldeb go iawn. Yr hyn maen nhw'n ei gario yn lle hynny yw llwyth tâl Windows sy'n sefyll i fyny a Gweinydd JupyterLab gyda dilysu wedi'i ddiffodd ac, mewn fersiynau diweddarach, yn ei gyhoeddi i'r rhyngrwyd cyhoeddus trwy dwnnel gwrthdro.
Dyna'r stori gyfan mewn un llinell: enw offeryn dibynadwy fel yr atyniad, a JupyterLab fel yr injan gweithredu cod o bell. Mae gweinydd Jupyter yn rhedeg unrhyw god rydych chi'n ei deipio i mewn i notebook cell; mae un sy'n cael ei lansio gyda thocyn gwag ac sy'n cael ei rwymo i bob rhyngwyneb rhwydwaith yn ddehonglydd agored y gall unrhyw un sy'n gallu cyrraedd y porthladd ei yrru.
Rydym yn olrhain y clwstwr fel FfugUVY ddau becyn a archwiliwyd yw moon-uv (0.0.1 – 0.0.16) a my-magic-uv-helper (0.0.1), wedi'i gyhoeddi gan yr un gweithredwr ac yn fyw ar PyPI ar adeg y dadansoddiad.
| ecosystem | PyPI |
| Pecynnau | moon-uv (0.0.1 – 0.0.16), my-magic-uv-helper (0.0.1) |
| Platfform wedi'i dargedu | ffenestri |
| Ymddygiad craidd | Gweinydd JupyterLab heb ei ddilysu, wedi'i gyhoeddi i'r rhyngrwyd trwy dwnnel gwrthdro |
| Offer cyfreithlon wedi'u camddefnyddio | uv, JupyterLab, cloudflared, Pinggy |
Yr atyniad: enw rydych chi eisoes yn ymddiried ynddo
uv yw un o'r offer Python sydd wedi'i osod fwyaf yn ystod y ddwy flynedd ddiwethaf, felly "cynorthwyydd i uv” yw pecyn y mae datblygwr yn ei osod heb ail feddwl. Mae FauxUV yn treulio ei hygrededd yn gyfan gwbl ar yr enw hwnnw. Mae'r pecynnau'n lapio'r dilys uv gosodwr o Astral — mae'r URLau yn y llwyth tâl yn pwyntio at westeiwyr go iawn, ag enw da — felly mae cipolwg cyflym yn gweld dim byd ond cyfeiriadau dibynadwy. Nid yw'r un o'r pecynnau mewn gwirionedd yn ychwanegu uv ymarferoldeb; yr enw yw'r cuddwisg gyfan.
JupyterLab fel yr injan RCE
Canolbwynt y llwyth tâl yw lansiwr sy'n cychwyn JupyterLab gyda phob rheilen warchod wedi'i thynnu:
jupyter server --with jupyterlab --ip=0.0.0.0 # listen on every interface --ServerApp.token="" # no password, no token --allow_origin='*' # accept cross-origin connections --disable_check_xsrf # allow a remote browser/WebSocket to drive it Mae pob baner yn tynnu amddiffyniad i ffwrdd, ac mae'r sgript a gludwyd hyd yn oed yn eu hanodi (yn y Tsieinëeg wreiddiol): y tocyn gwag “yn diffodd gwiriadau cyfrinair a thocynnau — gall unrhyw un gysylltu.” labordy jupyter yn IDE gwyddor data cyfreithlon, ond nidebook Mae cell yn gweithredu cod mympwyol trwy ddyluniad. Wedi'i ffurfweddu fel hyn ac wedi'i rwymo i 0.0.0.0, mae'n peidio â bod yn IDE ac yn dod yn gragen bell heb ei dilysu ar y gwesteiwr — nid oes angen deuaidd meddalwedd faleisus personol, dim ond offeryn prif ffrwd sy'n anelu at y cyfeiriad anghywir.
Mae dau ddarn cefnogol yn gwneud hynny'n gyraeddadwy ac yn ailadroddadwy:
- Sbardun gosod tawel. Mae fersiynau cynnar yn rhedeg PowerShell gyda -Osgoi Polisi Gweithredu yn syth o setup.py on gosod pip, yn y cefndir gyda gwallau wedi'u hatal felly pip yn edrych yn normal. Mae fersiynau diweddarach yn symud yr un peth cyntefig i mewn i pip-uv offeryn llinell orchymyn — a gollwng y rhedeg awtomatig amser gosod yn gyfan gwbl.
- Twnnel gwrthdro cyhoeddus. Gweinydd ymlaen 0.0.0.0 dim ond gwesteiwyr sy'n gallu llwybro i'r peiriant sy'n dal i allu cyrraedd y nod. Mae modiwl bwndelu yn agor [Pinggy](https://pinggy.io/) Twnnel gwrthdro SSH sy'n anfon y porthladd Jupyter lleol ymlaen i gyfeiriad cyhoeddus, gan ddileu'r terfyn hwnnw. Mae'r sgript a anfonwyd hefyd yn cario llwybr amgen - wedi'i dynnu allan o sylwadau - gan ddefnyddio Cloudflare cwmwl-fflach a netsh porthladd-dirprwy i IP Linode, gan ddogfennu'r un nod trwy seilwaith gwahanol.
Rhoi at ei gilydd: gosodwch y pecyn, ac mae gwesteiwr Windows yn rhedeg JupyterLab di-gyfrinair ac yn ei gyhoeddi ar y rhyngrwyd agored.
Sut esblygodd FauxUV
Cafodd fersiynau FauxUV eu hanfon yn gyflym ar ôl ei gilydd, a symudodd pwynt sbarduno'r llwyth tâl ar eu traws - atgof nad yw un fersiwn â baner yn aml yn adrodd stori gyfan llinell becyn.
| Cam | fersiynau | sbardun | Beth mae'n ei ychwanegu |
|---|---|---|---|
| Gosod-bachyn | moon-uv 0.0.1-0.0.3, my-magic-uv-helper 0.0.1 | setup.py ar osod pip | gosod uv + rhagosod LLWYBR |
| Amser rhedeg CLI | moon-uv 0.0.5-0.0.13 | pip-uv gorchymyn | lansiwr JupyterLab di-gyfrinair |
| Twnnel | moon-uv 0.0.14-0.0.16 | pip-uv gorchymyn | twnnel gwrthdro Pinggy gweithredol |
Yn nodedig, roedd y rhedeg awtomatig amser gosod yn tynnu yn y fersiynau diweddarach, mwy galluog — felly sganiwr wedi'i allweddu ar gylchred bywyd yn unig hooks byddai'n sgorio'r datganiadau newydd fel llai peryglus, yn union yn ôl.
Dangosyddion cyfaddawd
Cadarnhawyd drwy ddarllen ffynhonnell y pecyn; pwyntiau terfyn wedi'u marcio Dywedodd yn bresennol yn y ffeiliau ond heb eu gweithredu gan y fersiwn a ddadansoddwyd. Mae dangosyddion rhwydwaith wedi'u dad-ffagio.
| math | Dangosydd |
|---|---|
| Gorchymyn gosod | powershell -ExecutionPolicy Bypass yn nôl y gosodwr uv dilys, ar amser gosod pip |
| Baneri JupyterLab | --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf |
| Twnnel gwrthdro (actif) | free[.]pinggy[.]io:443 anfon ymlaen lleol 127.0.0.1:8888 |
| Gwesteiwr twnnel (wedi'i sylwadau) | cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718 |
| IP (wedi'i sylwadau) | 45[.]79[.]134[.]161 (Linode) drwy netsh port-proxy |
| Dyfalbarhad | yn rhagflaenu %USERPROFILE%\.local\bin i'r defnyddiwr PATH |
Signalau ymddygiadol sy'n werth rhybuddio amdanynt, yn annibynnol ar y llinynnau union hyn: a gosod pip sy'n silio powershell - Osgoi Polisi Gweithreduunrhyw Jupiter lansio cyfuno tocyn = "" gyda –ip=0.0.0.0; ac SSH allanol i *.pinggy.io gan ddatblygwr neu beiriant CI.
Ymddygiad a arsylwyd a tharddiad
Mae'r ddau becyn yn rhannu awdur a dull: enw offeryn dibynadwy, gatio Windows yn unig, gweithredu cefndirol sy'n atal gwallau, a dibyniaeth ar offer ag enw da felly dim ond URLau ag enw da y mae cipolwg cyflym yn eu gweld. Mae'r ffynhonnell yn cynnwys sylwadau yn yr iaith Tsieinëeg sy'n disgrifio'r baneri sy'n berthnasol i ddiogelwch yn glir; rydym yn adrodd y rheini fel datganiadau arsylladwy yn y ffeil, nid fel honiad am gymhelliad. Y caniatáu_tarddiad gwerth a colab.bat Mae enw'r ffeil yn adleisio'r llif gwaith anffurfiol "rhannu fy amser rhedeg lleol" sy'n cylchredeg ar gyfer Google Colab. Beth bynnag fo'r tarddiad, mae'r canlyniad wedi'i becynnu yr un peth.
Effaith ac arweiniad i amddiffynwyr
Pwy sy'n agored i FauxUV. Datblygwyr Windows a rhedwyr CI hynny gosod pip un o'r pecynnau hyn. JupyterLab di-gyfrinair ar 0.0.0.0 yn gweithredu cod o bell i unrhyw un sy'n gallu cyrraedd y porthladd; mae'r twnnel yn dileu'r terfyn "pwy all ei gyrraedd". Mae'r gweinydd yn rhedeg fel y defnyddiwr sy'n gosod, gan etifeddu ffeiliau, tocynnau a manylion mewngofnodi cwmwl y defnyddiwr hwnnw.
Pam ei bod hi'n hawdd ei golli. Mae pob llinyn rhwydwaith yn pwyntio at westeiwr ag enw da — Astral, JupyterLab, cwmwl-fflach, Pinggy, Colab. Nid oes deuaidd meddalwedd faleisus i'w hasio a dim blob wedi'i gymysgu i'w ddadgodio. Mae sganio yn seiliedig ar enw da a llofnod yn tanbwyso hyn, a dyna pam y cwestiwn ymddygiadol — beth mae gosod y pecyn hwn yn ei wneud i'r peiriant — yw'r un sy'n ei ddal.
Canllawiau:
- Trin unrhyw amser gosod powershell - Osgoi Polisi Gweithredu fel signal torri adeiladwaith, pa URL bynnag y mae'n ei nôl.
- Rhybudd ymlaen Jupiter wedi'i lansio gyda thocyn gwag a –ip=0.0.0.0ni ddylai'r cyfuniad hwnnw byth ymddangos ar orsaf waith na rhedwr.
- Monitro am SSH allanol i ddarparwyr twneli (*.pinggy.io, *.trycloudflare.com) o amgylcheddau datblygwyr a CI.
- Gosod uv o [ei ffynhonnell swyddogol](https://docs.astral.sh/uv/) a bod yn amheus o becynnau "cynorthwyol" trydydd parti sy'n lapio offeryn sydd eisoes yn ddibwys i'w osod.
- Pinio ac ail-adolygu dibyniaethau wrth uwchraddio — gall llinell becyn dyfu gallu newydd fersiwn dros fersiwn.



