[Security] Bump @sentry/nextjs from 7.55.2 to 7.77.0
Bumps @sentry/nextjs from 7.55.2 to 7.77.0. This update includes a security fix.
Vulnerabilities fixed
Sentry Next.js vulnerable to SSRF via Next.js SDK tunnel endpoint
Impact
An unsanitized input of Next.js SDK tunnel endpoint allows sending HTTP requests to arbitrary URLs and reflecting the response back to the user. This could open door for other attack vectors:
- client-side vulnerabilities: XSS/CSRF in the context of the trusted domain;
- interaction with internal network;
- read cloud metadata endpoints (AWS, Azure, Google Cloud, etc.);
- local/remote port scan.
This issue only affects users who have Next.js SDK tunneling feature enabled.
Patches
The problem has been fixed in sentry/nextjs@7.77.0
Workarounds
Disable tunneling by removing the
tunnelRouteoption from Sentry Next.js SDK config —next.config.jsornext.config.mjs.References
... (truncated)
Patched versions: 7.77.0 Affected versions: >= 7.26.0, < 7.77.0
Release notes
Sourced from @sentry/nextjs's releases.
7.77.0
Security Fixes
- fix(nextjs): Match only numbers as orgid in tunnelRoute (#9416) (CVE-2023-46729)
- fix(nextjs): Strictly validate tunnel target parameters (#9415) (CVE-2023-46729)
Other Changes
- feat: Move LinkedErrors integration to
@sentry/core(#9404)- feat(remix): Update sentry-cli version to ^2.21.2 (#9401)
- feat(replay): Allow to treeshake & configure compression worker URL (#9409)
- fix(angular-ivy): Adjust package entry points to support Angular 17 with SSR config (#9412)
- fix(feedback): Fixing feedback import (#9403)
- fix(utils): Avoid keeping a reference of last used event (#9387)
Bundle size
📦
Path Size @sentry/browser(incl. Tracing, Replay) - Webpack (gzipped)77.46 KB @sentry/browser(incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped)56.69 KB @sentry/browser(incl. Tracing) - Webpack (gzipped)30.97 KB @sentry/browser- Webpack (gzipped)21.29 KB @sentry/browser(incl. Tracing, Replay) - ES6 CDN Bundle (gzipped)67.83 KB @sentry/browser(incl. Tracing) - ES6 CDN Bundle (gzipped)29.09 KB @sentry/browser- ES6 CDN Bundle (gzipped)21.23 KB @sentry/browser(incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed)216.89 KB @sentry/browser(incl. Tracing) - ES6 CDN Bundle (minified & uncompressed)88.28 KB @sentry/browser- ES6 CDN Bundle (minified & uncompressed)63.28 KB @sentry/browser(incl. Tracing) - ES5 CDN Bundle (gzipped)31.8 KB @sentry/react(incl. Tracing, Replay) - Webpack (gzipped)77.84 KB @sentry/react- Webpack (gzipped)21.34 KB @sentry/nextjsClient (incl. Tracing, Replay) - Webpack (gzipped)94.18 KB @sentry/nextjsClient - Webpack (gzipped)47.86 KB 7.76.0
Important Changes
- feat(core): Add cron monitor wrapper helper (#9395)
This release adds
Sentry.withMonitor(), a wrapping function that wraps a callback with a cron monitor that will automatically report completions and failures:import * as Sentry from '@sentry/node'; // withMonitor() will send checkin when callback is started/finished // works with async and sync callbacks. const result = Sentry.withMonitor( 'dailyEmail', () => { </tr></table>
... (truncated)
Changelog
Sourced from @sentry/nextjs's changelog.
7.77.0
Security Fixes
- fix(nextjs): Match only numbers as orgid in tunnelRoute (#9416) (CVE-2023-46729)
- fix(nextjs): Strictly validate tunnel target parameters (#9415) (CVE-2023-46729)
Other Changes
- feat: Move LinkedErrors integration to
@sentry/core(#9404)- feat(remix): Update sentry-cli version to ^2.21.2 (#9401)
- feat(replay): Allow to treeshake & configure compression worker URL (#9409)
- fix(angular-ivy): Adjust package entry points to support Angular 17 with SSR config (#9412)
- fix(feedback): Fixing feedback import (#9403)
- fix(utils): Avoid keeping a reference of last used event (#9387)
7.76.0
Important Changes
- feat(core): Add cron monitor wrapper helper (#9395)
This release adds
Sentry.withMonitor(), a wrapping function that wraps a callback with a cron monitor that will automatically report completions and failures:import * as Sentry from '@sentry/node'; // withMonitor() will send checkin when callback is started/finished // works with async and sync callbacks. const result = Sentry.withMonitor( 'dailyEmail', () => { // withCheckIn return value is same return value here return sendEmail(); }, // Optional upsert options { schedule: { type: 'crontab', value: '0 * * * *', }, // 🇨🇦🫡 timezone: 'Canada/Eastern', }, );Other Changes
- chore(angular-ivy): Allow Angular 17 in peer dependencies (#9386)
... (truncated)
Commits
-
a807adfrelease: 7.77.0 -
cf4df75Merge pull request #9417 from getsentry/prepare-release/7.77.0 -
3e619dcmeta: Update CHANGELOG for 7.77.0 -
8285f54fix(nextjs): Match only numbers as orgid in tunnelRoute (#9416) -
2ec3582feat(replay): Allow to treeshake & configure compression worker URL (#9409) -
1005925fix(angular-ivy): Adjust package entry points to support Angular 17 with SSR ... -
a8cf899ref(replay): Streamline rrweb internal error check (#9391) -
ddbda3cfix(nextjs): Strictly validate tunnel target parameters (#9415) -
4371b2cbuild: Clean ember and deno packages properly (#9411) -
89a4d42feat: Move LinkedErrors integration to@sentry/core(#9404) - Additional commits viewable in compare view