node-tar Kwetsbaar voor het willekeurig aanmaken/overschrijven van bestanden via Hardlink Path Traversal
Platform
nodejs
Component
tar
Opgelost in
7.5.7
### Samenvatting node-tar bevat een kwetsbaarheid waarbij de beveiligingscontrole voor hardlink-items andere padresolutie-semantiek gebruikt dan de daadwerkelijke hardlink-creatielogica. Deze mismatch stelt een aanvaller in staat om een kwaadaardig TAR-archief te maken dat path traversal-beveiligingen omzeilt en hardlinks maakt naar willekeurige bestanden buiten de extractiedirectory. ### Details De kwetsbaarheid bestaat in `lib/unpack.js`. Bij het uitpakken van een hardlink behandelen twee functies het linkpad anders: **Beveiligingscontrole in `[STRIPABSOLUTEPATH]`:** ```javascript const entryDir = path.posix.dirname(entry.path); const resolved = path.posix.normalize(path.posix.join(entryDir, linkpath)); if (resolved.startsWith('../')) { /* block */ } ``` **Hardlink creatie in `[HARDLINK]`:** ```javascript const linkpath = path.resolve(this.cwd, entry.linkpath); fs.linkSync(linkpath, dest); ``` **Voorbeeld:** Een applicatie pakt een TAR uit met behulp van `tar.extract({ cwd: '/var/app/uploads/' })`. De TAR bevat item `a/b/c/d/x` als een hardlink naar `../../../../etc/passwd`. - **Beveiligingscontrole** lost het linkpad op ten opzichte van de bovenliggende directory van het item: `a/b/c/d/ + ../../../../etc/passwd` = `etc/passwd`. Geen `../` voorvoegsel, dus
Hoe te verhelpen
Geen officiële patch beschikbaar. Zoek naar tijdelijke oplossingen of monitor updates.
Bewaak uw afhankelijkheden automatisch
Ontvang meldingen wanneer nieuwe kwetsbaarheden uw projecten beïnvloeden.
Gratis beginnen