TL; DR
Kundi la vifurushi vya PyPI lilikopa jina la uv, meneja wa kifurushi cha Python chenye kasi na maarufu sana kinachotegemea Rust, kujifanya kama wasaidizi wa UV. Hawasafirishi karibu utendaji wowote halisi. Badala yake wanachobeba ni mzigo wa Windows unaosimama Seva ya JupyterLab ikiwa na uthibitishaji umezimwa na, katika matoleo ya baadaye, huichapisha kwenye mtandao wa umma kupitia handaki la kinyume.
Hiyo ndiyo hadithi nzima katika mstari mmoja: jina la kifaa kinachoaminika kama chambo, na JupyterLab kama injini ya utekelezaji wa msimbo wa mbali. Seva ya Jupyter huendesha msimbo wowote unaoandika kwenye siebook seli; moja iliyozinduliwa na tokeni tupu na kufungwa kwenye kila kiolesura cha mtandao ni kitafsiri kilicho wazi ambacho mtu yeyote anayeweza kufikia mlango anaweza kukiendesha.
Tunafuatilia kundi kama UV bandiaVifurushi viwili vilivyochunguzwa ni moon-uv (0.0.1-0.0.16) na my-magic-uv-helper (0.0.1), iliyochapishwa na opereta huyo huyo na moja kwa moja kwenye PyPI wakati wa uchambuzi.
| mazingira | PyPI |
| Packages | moon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1) |
| Lengo la jukwaa | Windows |
| Tabia kuu | Seva ya JupyterLab isiyothibitishwa, iliyochapishwa kwenye mtandao kupitia handaki ya nyuma |
| Zana halali zilizotumika vibaya | uv, JupyterLab, wingu lililowaka, Pinggy |
Chambo: jina ambalo tayari unaliamini
uv ni mojawapo ya zana za Python zilizosakinishwa zaidi katika miaka miwili iliyopita, kwa hivyo "msaidizi wa uv"ni kifurushi ambacho msanidi programu husakinisha bila kufikiria mara ya pili. FauxUV hutumia uaminifu wake kabisa kwa jina hilo. Vifurushi hivyo hufunika halisi uv Kisakinishi kutoka Astral — URL katika sehemu ya kupakia mzigo katika seva halisi na zenye sifa nzuri — kwa hivyo kutazama kwa haraka huoni chochote ila marejeleo ya kuaminika. Hakuna hata kifurushi kimoja kinachoongeza uv utendaji kazi; jina ndilo ufichaji wote.
JupyterLab kama injini ya RCE
Kitovu cha mzigo ni kizindua kinachoanzisha JupyterLab huku kila reli ya ulinzi ikiondolewa:
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 Kila bendera huondoa ulinzi, na hati iliyosafirishwa hata huielezea (kwa Kichina cha asili): ishara tupu "huzima nenosiri na ukaguzi wa tokeni — mtu yeyote anaweza kuunganisha." maabara ya jupyter ni IDE halali ya sayansi ya data, lakini siebook seli hutekeleza msimbo holela kwa muundo. Imesanidiwa hivi na kufungwa kwa 0.0.0.0, huacha kuwa IDE na kuwa ganda la mbali lisilothibitishwa kwenye seva mwenyeji — hakuna haja ya programu hasidi maalum, ni kifaa kikuu tu kinachoelekeza njia isiyo sahihi.
Vipande viwili vinavyounga mkono hufanya iwezekane kufikiwa na kurudiwa:
- Kichocheo cha kusakinisha kimya kimya. Matoleo ya awali yanaendesha PowerShell na -Kupita kwa Sera ya Utekelezaji moja kwa moja kutoka kuanzisha.py on ufungaji wa bomba, nyuma huku hitilafu zikiwa zimezimwa hivyo pip inaonekana kawaida. Matoleo ya baadaye huhamisha ile ile ya awali kuwa pip-uv zana ya mstari wa amri — na uache muda wa kusakinisha uendeshwaji kiotomatiki kabisa.
- Handaki la umma la kinyume. Seva imewashwa 0.0.0.0 bado inaweza kufikiwa na wenyeji pekee ambao wanaweza kuelekeza kwenye mashine. Moduli iliyounganishwa hufungua [Pinggy](https://pinggy.io/) Handaki ya SSH inayoelekeza mlango wa Jupyter wa eneo lako hadi kwenye anwani ya umma, ikiondoa kikomo hicho. Hati iliyosafirishwa pia hubeba — ilitoa maoni — njia mbadala kwa kutumia Cloudflare's imewaka mawingu na netsh proksi ya bandari kwa IP ya Linode, ikiandika lengo moja kupitia miundombinu tofauti.
Weka pamoja: sakinisha kifurushi, na mwenyeji wa Windows anaishia kuendesha JupyterLab isiyo na nenosiri na kuichapisha kwenye mtandao wazi.
Jinsi FauxUV ilivyobadilika
Matoleo ya FauxUV yalisafirishwa haraka, na sehemu ya kuchochea mzigo ilipita juu yao — ukumbusho kwamba toleo moja lililotiwa alama mara chache husimulia hadithi nzima ya mstari wa kifurushi.
| Hatua | matoleo | Tanga | Inaongeza nini |
|---|---|---|---|
| Usakinishaji wa ndoano | moon-uv 0.0.1-0.0.3, my-magic-uv-helper 0.0.1 | setup.py kwenye usakinishaji wa bomba | usakinishaji wa UV + maandalizi ya PATH |
| Muda wa CLI | moon-uv 0.0.5-0.0.13 | pip-uv amri | kizindua cha JupyterLab kisicho na nenosiri |
| Tunnel | moon-uv 0.0.14-0.0.16 | pip-uv amri | handaki ya Pinggy inayofanya kazi kinyume |
Ikumbukwe kwamba, muda wa kusakinisha uliendeshwa kiotomatiki kuondolewa katika matoleo ya baadaye, yenye uwezo zaidi — kwa hivyo skana ilitumika tu kwenye mzunguko wa maisha hooks ingepata alama ya matoleo mapya kama chini hatari, kinyume kabisa.
Viashiria vya maelewano
Imethibitishwa kwa kusoma chanzo cha kifurushi; sehemu za mwisho zimetiwa alama maoni Viashiria vya mtandao vimebadilishwa rangi kwenye faili lakini havijatekelezwa na toleo lililochanganuliwa.
| aina | Kiashiria |
|---|---|
| Amri ya kusakinisha | powershell -ExecutionPolicy Bypass Kuchukua kisakinishi halisi cha UV, wakati wa kusakinisha bomba |
| Bendera za JupyterLab | --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf |
| Handaki ya nyuma (inayofanya kazi) | free[.]pinggy[.]io:443 usambazaji wa ndani 127.0.0.1:8888 |
| Mwenyeji wa handaki (ametoa maoni) | cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718 |
| IP (imetolewa maoni) | 45[.]79[.]134[.]161 (Linode) kupitia netsh port-proxy |
| Kuendelea | huandaa %USERPROFILE%\.local\bin kwa mtumiaji PATH |
Ishara za kitabia zinazofaa kuonywa, bila kujali masharti haya halisi: a ufungaji wa bomba hiyo huibuka powershell -ExecutionPolicy Bypassyoyote jupiter uzinduzi wa kuchanganya ishara =”” na –ip=0.0.0.0na SSH inayotoka kwenda *.pinggy.io kutoka kwa msanidi programu au mashine ya CI.
Tabia na asili iliyozingatiwa
Vifurushi hivi viwili vina mwandishi na mbinu moja: jina la kifaa kinachoaminika, kizuizi cha Windows pekee, utekelezaji wa mandharinyuma uliokandamizwa na hitilafu, na kutegemea zana zinazoaminika kwa hivyo kwa haraka unaona URL zinazoaminika pekee. Chanzo kina maoni ya lugha ya Kichina yanayoelezea bendera zinazohusiana na usalama waziwazi; tunaripoti hizo kama kauli zinazoonekana katika faili, si kama dai kuhusu nia. ruhusu_asili thamani na colab.bat jina la faili hurejelea mtiririko wa kazi usio rasmi wa "shiriki muda wangu wa utekelezaji wa ndani" unaozunguka kwa Google Colab. Chochote asili yake, matokeo yaliyofungashwa ni sawa.
Athari na mwongozo kwa watetezi
Nani ameathiriwa na FauxUV. Wasanidi programu wa Windows na waendeshaji wa CI ambao ufungaji wa bomba mojawapo ya vifurushi hivi. JupyterLab isiyo na nenosiri imewashwa 0.0.0.0 ni utekelezaji wa msimbo wa mbali kwa mtu yeyote anayeweza kufikia lango; handaki huondoa kikomo cha "nani anayeweza kuifikia". Seva huendesha kama mtumiaji anayesakinisha, ikirithi faili, tokeni, na sifa za wingu za mtumiaji huyo.
Kwa nini ni rahisi kukosa. Kila kamba ya mtandao inaelekeza kwenye seva mwenyeji anayeaminika — Astral, JupyterLab, imewaka mawingu, Pingggy, Colab. Hakuna programu hasidi ya binary kwa hash na hakuna blob iliyofichwa ya kusimbua. Uchanganuzi unaotegemea sifa na sahihi zote mbili zinapunguza uzito wa hili, ndiyo maana swali la kitabia — Kusakinisha kifurushi hiki kunaifanya mashine ifanye nini? — ndiye anayeielewa.
Mwongozo:
- Tibu wakati wowote wa usakinishaji powershell -ExecutionPolicy Bypass kama ishara inayovunja muundo, URL yoyote inayopatikana.
- Tahadhari imewashwa jupiter ilizinduliwa na tokeni tupu na –ip=0.0.0.0; mchanganyiko huo haupaswi kuonekana kamwe kwenye kituo cha kazi au kiendeshaji.
- Kifuatiliaji cha watoa huduma za SSH zinazotoka hadi kwenye handaki (*.pinggy.io, *.trycloudflare.com) kutoka kwa mazingira ya msanidi programu na CI.
- Kufunga uv kutoka [chanzo chake rasmi](https://docs.astral.sh/uv/) na uwe na shaka kuhusu vifurushi vya "msaidizi" vya watu wengine vinavyofunga kifaa ambacho tayari ni kidogo kusakinisha.
- Bandika na uhakiki upya utegemezi kwenye uboreshaji — mstari wa kifurushi unaweza kukuza uwezo mpya wa toleo-juu-ya-toleo.



