Momentum
🔍 Security Report Available View on Chrome Web StoreChrome will indicate if you already have this installed.
Overview
⭐ Featured in Tim Ferriss’ Tools of Titans, The Wall Street Journal, Apple Worldwide Developer Conference, Product Hunt, Lifehacker, and so much more ⭐
💙 FREE features
🌊 Feel inspired with a new background, mantra and quote each day
🌊 Focus better with Focus Mode
🌊 Simplify work and life with easy to-do lists
🌊 Create shortcuts to your favorite websites
🌊 Get local weather info
🌊 Google/Bing and other search options on your dashboard
🌊 Customizable (Show/hide features as you like!)
🌊 Private and secure (We don’t share or sell your data!)
⭐ Join over 3 million inspired users ⭐
Note: For the best experience, after installing Momentum click the ‘Keep it’ button on the ‘Change back to Google’ notification. This will show Momentum on each new tab as intended. 🙂
Want more Momentum?
💙 PLUS features (You can try Plus for FREE once you install the extension!)
🌊 Sustain better focus all day with unlimited Focus Mode
🌊 Create one-of-a-kind vision board
🌊 Vacuum your 107 tabs with Tab Stash
🌊 Write better (and quicker) with Notes AI
🌊 Become an idea machine with Ask AI
🌊 Get in the zone with Soundscapes
🌊 Seamless task manager integrations (ClickUp, Todoist, Asana, etc.)
🌊 Track your habits with Metrics
🌊 Unlimited to-do lists
…And Countdowns, World Clocks, premium weather info (and more!)
🛡️ Privacy & Security
The Momentum team is committed to protecting your privacy. The information we gather or process is used solely for core functionality of Momentum and to improve the quality and security of our service. Your information isn’t and has never been sold to third parties.
For more information on privacy and the security of your data, visit https://momentumdash.com/privacy.
🤍 Help & Contact Resources
Help Center: https://momentumdash.help
Suggestions: https://momentum.nolt.io/
Contact us: https://momentumdash.com/contact
👍 Our Social Media
Blog: https://momentumdash.com/blog
Instagram: https://instagram.com/momentumdash
Tags
Privacy Practices
Security Analysis — Momentum
Permissions
Code Patterns Detected
External Connections
Package Contents 770 files · 22.5MB
``
json
{
"summary": "Momentum is a productivity extension that helps users stay focused, organized, and motivated. It provides features such as daily backgrounds, mantras, and quotes, focus mode, to-do lists, shortcuts, and customizable dashboard. With over 2 million users, it's a popular choice for those seeking to boost their productivity.",
"permissions": [
{
"name": "offscreen",
"user_explanation": "Allows the extension to run in the background even when the browser is closed.",
"technical_note": "Provides access to Chrome's off-screen rendering API, enabling the extension to continue running and updating its UI even when the browser is not visible.",
"aligned": true,
"concern": false
},
{
"name": "unlimitedStorage",
"user_explanation": "Allows the extension to store an unlimited amount of data on your device.",
"technical_note": "Provides access to Chrome's storage API, enabling the extension to store and retrieve large amounts of user data, including settings, preferences, and cached content.",
"aligned": false,
"concern": true
},
{
"name": "idle",
"user_explanation": "Allows the extension to detect when you're idle (not actively using your browser).",
"technical_note": "Provides access to Chrome's idle detection API, enabling the extension to monitor and respond to changes in user activity.",
"aligned": true,
"concern": false
},
{
"name": "bookmarks",
"user_explanation": "Allows the extension to read and modify your bookmarks.",
"technical_note": "Provides access to Chrome's bookmark API, enabling the extension to create, update, and delete bookmarks on behalf of the user.",
"aligned": false,
"concern": true
},
{
"name": "tabs",
"user_explanation": "Allows the extension to read and modify your open tabs.",
"technical_note": "Provides access to Chrome's tab API, enabling the extension to create, update, and delete tabs on behalf of the user.",
"aligned": false,
"concern": true
},
{
"name": "sessions",
"user_explanation": "Allows the extension to read and modify your browsing sessions.",
"technical_note": "Provides access to Chrome's session API, enabling the extension to create, update, and delete browsing sessions on behalf of the user.",
"aligned": false,
"concern": true
},
{
"name": "topSites",
"user_explanation": "Allows the extension to read your frequently visited websites.",
"technical_note": "Provides access to Chrome's top sites API, enabling the extension to retrieve and display a list of frequently visited websites on behalf of the user.",
"aligned": true,
"concern": false
},
{
"name": "favicon",
"user_explanation": "Allows the extension to read and modify your website icons (favicons).",
"technical_note": "Provides access to Chrome's favicon API, enabling the extension to create, update, and delete favicons on behalf of the user.",
"aligned": false,
"concern": true
},
{
"name": "scripting",
"user_explanation": "Allows the extension to execute scripts in your browser.",
"technical_note": "Provides access to Chrome's scripting API, enabling the extension to inject and execute JavaScript code on behalf of the user.",
"aligned": false,
"concern": true
},
{
"name": "alarms",
"user_explanation": "Allows the extension to set alarms and notifications.",
"technical_note": "Provides access to Chrome's alarm API, enabling the extension to schedule and display notifications on behalf of the user.",
"aligned": true,
"concern": false
},
{
"name": "notifications",
"user_explanation": "Allows the extension to display notifications in your browser.",
"technical_note": "Provides access to Chrome's notification API, enabling the extension to create and display notifications on behalf of the user.",
"aligned": true,
"concern": false
},
{
"name": "tabGroups",
"user_explanation": "Allows the extension to read and modify your tab groups.",
"technical_note": "Provides access to Chrome's tab group API, enabling the extension to create, update, and delete tab groups on behalf of the user.",
"aligned": false,
"concern": true
},
{
"name": "search",
"user_explanation": "Allows the extension to read your search history and preferences.",
"technical_note": "Provides access to Chrome's search API, enabling the extension to retrieve and display a list of frequently searched websites on behalf of the user.",
"aligned": false,
"concern": true
}
],
"data_exposure": {
"summary": "Momentum accesses various data on your device, including bookmarks, tabs, sessions, top sites, favicons, and search history. It also sends data to its servers at content.momentumdash.com, api.momentumdash.com, momentumdash.com, and other domains.",
"technical": "The extension makes XHR requests to the following domains: www.w3.org, content.momentumdash.com, api.momentumdash.com, momentumdash.com, get.momentumdash.help, www.momentumdash.com, account.momentumdash.com, github.com, pinia.vuejs.org, app.posthog.com, momentumdash.typeform.com, moda.sh. It also uses the Fetch API to make requests to these domains."
},
"findings": [
{
"title": "Function constructor used — dynamic code execution",
"severity": "medium",
"user_explanation": "The extension uses a function constructor to execute dynamic code, which can potentially lead to security vulnerabilities.",
"technical_detail": "The extension injects JavaScript code using the function constructor, enabling it to dynamically create and execute functions. This can be used for legitimate purposes such as injecting custom scripts or updating the extension's functionality.",
"legitimate_use": "Legitimate extensions often use function constructors to inject custom scripts or update their functionality.",
"concern": false
},
{
"title": "Dynamic JS import",
"severity": "medium",
"user_explanation": "The extension dynamically imports JavaScript modules, which can potentially lead to security vulnerabilities.",
"technical_detail": "The extension uses the import() function to dynamically load and execute JavaScript modules. This can be used for legitimate purposes such as loading custom scripts or updating the extension's functionality.",
"legitimate_use": "Legitimate extensions often use dynamic imports to load custom scripts or update their functionality.",
"concern": false
},
{
"title": "innerHTML assignment — potential XSS vector",
"severity": "medium",
"user_explanation": "The extension assigns innerHTML values, which can potentially lead to cross-site scripting (XSS) vulnerabilities.",
"technical_detail": "The extension uses the innerHTML property to assign values to HTML elements. This can be used for legitimate purposes such as updating the extension's UI or injecting custom content.",
"legitimate_use": "Legitimate extensions often use innerHTML assignments to update their UI or inject custom content.",
"concern": false
},
{
"title": "insertAdjacentHTML — potential XSS",
"severity": "medium",
"user_explanation": "The extension uses insertAdjacentHTML, which can potentially lead to cross-site scripting (XSS) vulnerabilities.",
"technical_detail": "The extension uses the insertAdjacentHTML method to inject HTML content into elements. This can be used for legitimate purposes such as updating the extension's UI or injecting custom content.",
"legitimate_use": "Legitimate extensions often use insertAdjacentHTML to update their UI or inject custom content.",
"concern": false
},
{
"title": "String.fromCharCode (obfuscation)",
"severity": "medium",
"user_explanation": "The extension uses String.fromCharCode, which can be used for obfuscation and potentially lead to security vulnerabilities.",
"technical_detail": "The extension uses the String.fromCharCode method to convert character codes into strings. This can be used for legitimate purposes such as encoding data or updating the extension's functionality.",
"legitimate_use": "Legitimate extensions often use String.fromCharCode for encoding data or updating their functionality.",
"concern": false
},
{
"title": "charCodeAt (obfuscation)",
"severity": "medium",
"user_explanation": "The extension uses charCodeAt, which can be used for obfuscation and potentially lead to security vulnerabilities.",
"technical_detail": "The extension uses the String.prototype.charCodeAt method to retrieve character codes from strings. This can be used for legitimate purposes such as encoding data or updating the extension's functionality.",
"legitimate_use": "Legitimate extensions often use charCodeAt for encoding data or updating their functionality.",
"concern": false
},
{
"title": "unescape (deprecated obfuscation)",
"severity": "medium",
"user_explanation": "The extension uses unescape, which is a deprecated method and can potentially lead to security vulnerabilities.",
"technical_detail": "The extension uses the unescape function to decode escaped characters. This method has been deprecated in modern browsers due to potential security risks.",
"legitimate_use": "Legitimate extensions often use unescape for decoding data or updating their functionality, but this should be avoided due to its deprecation and potential security risks.",
"concern": true
},
{
"title": "Captures keystrokes",
"severity": "critical",
"user_explanation": "The extension captures keystrokes, which can potentially lead to significant security vulnerabilities.",
"technical_detail": "The extension uses the document.addEventListener method to capture keyboard events and retrieve keystroke data. This can be used for legitimate purposes such as updating the extension's functionality or injecting custom content.",
"legitimate_use": "Legitimate extensions often use key event listeners to update their functionality or inject custom content, but this should be done with caution due to potential security risks.",
"concern": true
},
{
"title": "Monitors form inputs",
"severity": "medium",
"user_explanation": "The extension monitors form inputs, which can potentially lead to security vulnerabilities.",
"technical_detail": "The extension uses the document.addEventListener method to capture form input events and retrieve data. This can be used for legitimate purposes such as updating the extension's functionality or injecting custom content.",
"legitimate_use": "Legitimate extensions often use form event listeners to update their functionality or inject custom content, but this should be done with caution due to potential security risks.",
"concern": false
},
{
"title": "Potential hardcoded secret",
"severity": "medium",
"user_explanation": "The extension contains a potential hardcoded secret, which can potentially lead to security vulnerabilities.",
"technical_detail": "The extension uses a hardcoded value for a secret key or token. This should be avoided due to potential security risks and replaced with a secure method of storing sensitive data.",
"legitimate_use": "Legitimate extensions often use hardcoded values for testing purposes, but this should be removed in production code due to potential security risks.",
"concern": true
},
{
"title": "Weak cryptographic algorithm",
"severity": "medium",
"user_explanation": "The extension uses a weak cryptographic algorithm, which can potentially lead to security vulnerabilities.",
"technical_detail": "The extension uses a weak encryption method for storing or transmitting sensitive data. This should be replaced with a secure encryption algorithm due to potential security risks.",
"legitimate_use": "Legitimate extensions often use weak encryption methods for testing purposes, but this should be removed in production code due to potential security risks.",
"concern": true
},
{
"title": "Creates iframe elements",
"severity": "medium",
"user_explanation": "The extension creates iframe elements, which can potentially lead to security vulnerabilities.",
"technical_detail": "The extension uses the document.createElement` method to create iframe elements. This can be used for legitimate purposes such as updating the extension's UI or injecting custom content.","legitimate_use": "Legitimate extensions often use iframes for updating their UI or injecting custom content, but this should be done with caution due to potential security risks.",
"concern": false
}
],
"recommendations": [
{
"title": "Use secure encryption methods",
"description": "Replace weak encryption algorithms with secure ones to prevent data breaches and ensure user confidentiality."
},
{
"title": "Avoid hardcoded secrets",
"description": "Remove hardcoded values for secret keys or tokens and use a secure method of storing sensitive data instead."
},
{
"title": "Use secure event listeners",
"description": "Use secure event listeners to capture keyboard events, form inputs, and other user interactions to prevent potential security vulnerabilities."
}
]
}
Note: The above findings are based on the provided code snippet and may not reflect the actual implementation of the extension.