Is "Time Travel" on Firefox Add-ons Safe to Install?

Christian Pulvermacher · firefox · v2.4.6

Usage: - Open the tab you want to change the time in. - Click the Extensions icon in the toolbar, then click Time Travel. - Choose a date from the calendar and edit the time if necessary, or enter a date and time directly (see examples below). - Confirm with Enter or by clicking the "Change Date" button. - Any JavaScript Date or Intl.DateTimeFormat in the current tab now returns the fake date/time you set. Other tabs and origins are not affected. To restore the system time, click the extension icon and switch off the "Enable Fake Date" toggle. When the fake date is enabled, the clock runs forward from the configured time. You can stop the clock by switching on the "Stop Clock" toggle. The fake date will be reset to the last value you set. To change the time zone, open "Options", enable "Change Time Zone" and select a time zone from the dropdown. When enabled, both Date objects and Intl.DateTimeFormat will use this time zone instead of the system time zone. The fake date in the Time Travel UI is still shown and configured in the system time zone, but a preview of the time in the configured time zone plus the Daylight Saving Time (DST) offset is shown if applicable. Example Dates and Formats: - 2025-04-27 12:40 - Local time - 2025-03-30 00:59:55 - Assuming your system time zone is Europe/London (GMT), 5 seconds before a one-hour jump to 2 a.m. (summer time) - 2025-04-27T12:40Z - Set local equivalent for given UTC time - 2025-04-27T12:40+1130 - Set local equivalent for time with +11:30 time zone offset. Note that actual time zone is not changed - 2025-03-25T12:40:00.120 - Local time with milliseconds - 1731493140025 - UNIX timestamp Features: - Fakes date and time for all methods of Date and Intl.DateTimeFormat objects. - (experimental) Time zone can be changed, with full support for DST transitions. - Time can be stopped and resumed. - Option to automatically reload page after changing date. - Only affects current tab after clicking the extension icon. Limitations: - Only JavaScript is affected by the extension. - Some functionality or animations may behave strangely if the clock is stopped. - The extension does not work in iframes with the sandbox attribute. This extension is open source software licensed under the MIT license. Contributions are welcome! If you have ideas, bug reports, or want to help improve Time Travel, please open an issue or submit a pull request on GitHub .

Risk Assessment

Analyzed
41.1
out of 100
MEDIUM

133 security findings detected across all analyzers

Severity Breakdown

0
Critical
17
High
116
Medium
0
Low
0
Info

Finding Categories

17
Malware
116
IoC Indicators

YARA Rules Matched

8 rules(17 hits)
postinstall obfuscation postinstall file manipulation postinstall network communication postinstall system command postinstall persistence mechanism postinstall environment access postinstall crypto operations LocalStorageShouldNotBeUsed

About This Extension

Usage: - Open the tab you want to change the time in. - Click the Extensions icon in the toolbar, then click Time Travel. - Choose a date from the calendar and edit the time if necessary, or enter a date and time directly (see examples below). - Confirm with <code>Enter</code> or by clicking the "Change Date" button. - Any JavaScript <code>Date</code> or <code>Intl.DateTimeFormat</code> in the current tab now returns the fake date/time you set. Other tabs and origins are not affected. To restore the system time, click the extension icon and switch off the "Enable Fake Date" toggle. When the fake date is enabled, the clock runs forward from the configured time. You can stop the clock by switching on the "Stop Clock" toggle. The fake date will be reset to the last value you set. To change the time zone, open "Options", enable "Change Time Zone" and select a time zone from the dropdown. When enabled, both Date objects and Intl.DateTimeFormat will use this time zone instead of the system time zone. The fake date in the Time Travel UI is still shown and configured in the system time zone, but a preview of the time in the configured time zone plus the Daylight Saving Time (DST) offset is shown if applicable. Example Dates and Formats: - <code>2025-04-27 12:40</code> - Local time - <code>2025-03-30 00:59:55</code> - Assuming your system time zone is Europe/London (GMT), 5 seconds before a one-hour jump to 2 a.m. (summer time) - <code>2025-04-27T12:40Z</code> - Set local equivalent for given UTC time - <code>2025-04-27T12:40+1130</code> - Set local equivalent for time with +11:30 time zone offset. Note that actual time zone is not changed - <code>2025-03-25T12:40:00.120</code> - Local time with milliseconds - <code>1731493140025</code> - UNIX timestamp Features: - Fakes date and time for all methods of <code>Date</code> and <code>Intl.DateTimeFormat</code> objects. - (experimental) Time zone can be changed, with full support for DST transitions. - Time can be stopped and resumed. - Option to automatically reload page after changing date. - Only affects current tab after clicking the extension icon. Limitations: - Only JavaScript is affected by the extension. - Some functionality or animations may behave strangely if the clock is stopped. - The extension does not work in iframes with the <code>sandbox</code> attribute. This extension is open source software licensed under the MIT license. Contributions are welcome! If you have ideas, bug reports, or want to help improve Time Travel, please open an issue or submit a pull request on <a href="https://prod.outgoing.prod.webservices.mozgcp.net/v1/db581fa01c7c330844f82692ba60a51533634ffdf995183b343dad6d528dcf26/https%3A//github.com/cpulvermacher/time-travel" rel="nofollow">GitHub</a>.

Detailed Findings

17 total

YARA Rule Matches

8 rules

Indicators of Compromise

Network indicators, suspicious strings, and potential IoCs extracted during analysis

URLs
20
IP Addresses
8
Domains
92
Strings
116

All Indicators · 116

Domain
detected Domain: 1.prototype.setdate.call

XIOC detected Domain: 1.prototype.setdate.call

extracted_from_files

Domain
detected Domain: this.parent.is

XIOC detected Domain: this.parent.is

extracted_from_files

URL
detected URL: https://svelte.dev/e/state_descriptors_fixed

XIOC detected URL: https://svelte.dev/e/state_descriptors_fixed

extracted_from_files

URL
detected URL: https://svelte.dev/e/state_prototype_fixed

XIOC detected URL: https://svelte.dev/e/state_prototype_fixed

extracted_from_files

URL
detected URL: https://svelte.dev/e/state_unsafe_mutation

XIOC detected URL: https://svelte.dev/e/state_unsafe_mutation

extracted_from_files

URL
detected URL: https://svelte.dev/e/svelte_boundary_reset_onerror

XIOC detected URL: https://svelte.dev/e/svelte_boundary_reset_onerror

extracted_from_files

URL
detected URL: http://www.w3.org/1999/xhtml

XIOC detected URL: http://www.w3.org/1999/xhtml

extracted_from_files

URL
detected URL: https://svelte.dev/e/select_multiple_invalid_value

XIOC detected URL: https://svelte.dev/e/select_multiple_invalid_value

extracted_from_files

URL
detected URL: https://svelte.dev/e/svelte_boundary_reset_noop

XIOC detected URL: https://svelte.dev/e/svelte_boundary_reset_noop

extracted_from_files

URL
detected URL: https://svelte.dev/e/lifecycle_outside_component

XIOC detected URL: https://svelte.dev/e/lifecycle_outside_component

extracted_from_files

URL
detected URL: https://svelte.dev/e/async_derived_orphan

XIOC detected URL: https://svelte.dev/e/async_derived_orphan

extracted_from_files

URL
detected URL: https://svelte.dev/e/effect_in_teardown

XIOC detected URL: https://svelte.dev/e/effect_in_teardown

extracted_from_files

URL
detected URL: https://svelte.dev/e/effect_in_unowned_derived

XIOC detected URL: https://svelte.dev/e/effect_in_unowned_derived

extracted_from_files

URL
detected URL: https://svelte.dev/e/effect_orphan

XIOC detected URL: https://svelte.dev/e/effect_orphan

extracted_from_files

URL
detected URL: https://svelte.dev/e/effect_update_depth_exceeded

XIOC detected URL: https://svelte.dev/e/effect_update_depth_exceeded

extracted_from_files

URL
detected URL: https://svelte.dev/e/props_invalid_value

XIOC detected URL: https://svelte.dev/e/props_invalid_value

extracted_from_files

Domain
detected Domain: fakedate.now

XIOC detected Domain: fakedate.now

extracted_from_files

Domain
detected Domain: sender.tab

XIOC detected Domain: sender.tab

extracted_from_files

Domain
detected Domain: sender.tab.id

XIOC detected Domain: sender.tab.id

extracted_from_files

URL
detected URL: http://addons.mozilla.org/ca/crl.pem0N

XIOC detected URL: http://addons.mozilla.org/ca/crl.pem0N

extracted_from_files

URL
detected URL: https://inlang.com/m/gerre34r/library-inlang-paraglideJs/errors#no-locale-found

XIOC detected URL: https://inlang.com/m/gerre34r/library-inlang-paraglideJs/errors#no-locale-found

extracted_from_files

URL
detected URL: https://chrome.google.com/webstore

XIOC detected URL: https://chrome.google.com/webstore

extracted_from_files

URL
detected URL: https://chromewebstore.google.com

XIOC detected URL: https://chromewebstore.google.com

extracted_from_files

Domain
detected Domain: 1.prototype.getseconds.call

XIOC detected Domain: 1.prototype.getseconds.call

extracted_from_files

Domain
detected Domain: 1.prototype.getmilliseconds.call

XIOC detected Domain: 1.prototype.getmilliseconds.call

extracted_from_files

Domain
detected Domain: parts.ms

XIOC detected Domain: parts.ms

extracted_from_files

Domain
detected Domain: 1.prototype.gettimezoneoffset.call

XIOC detected Domain: 1.prototype.gettimezoneoffset.call

extracted_from_files

IP
detected IP: ::bac

XIOC detected IP: ::bac

extracted_from_files

Domain
detected Domain: 1.prototype.setmilliseconds.call

XIOC detected Domain: 1.prototype.setmilliseconds.call

extracted_from_files

Domain
detected Domain: sync.map

XIOC detected Domain: sync.map

extracted_from_files

Domain
detected Domain: 1.prototype.getfullyear.call

XIOC detected Domain: 1.prototype.getfullyear.call

extracted_from_files

Domain
detected Domain: 1.prototype.getmonth.call

XIOC detected Domain: 1.prototype.getmonth.call

extracted_from_files

Domain
detected Domain: 1.prototype.getdate.call

XIOC detected Domain: 1.prototype.getdate.call

extracted_from_files

Domain
detected Domain: parts.day

XIOC detected Domain: parts.day

extracted_from_files

Domain
detected Domain: 1.prototype.getday.call

XIOC detected Domain: 1.prototype.getday.call

extracted_from_files

Domain
detected Domain: 1.prototype.gethours.call

XIOC detected Domain: 1.prototype.gethours.call

extracted_from_files

Domain
detected Domain: 1.prototype.getminutes.call

XIOC detected Domain: 1.prototype.getminutes.call

extracted_from_files

Domain
detected Domain: 1.prototype.tostring.call

XIOC detected Domain: 1.prototype.tostring.call

extracted_from_files

Domain
detected Domain: 1.prototype.todatestring.call

XIOC detected Domain: 1.prototype.todatestring.call

extracted_from_files

Domain
detected Domain: parts.rawformat.day

XIOC detected Domain: parts.rawformat.day

extracted_from_files

Domain
detected Domain: 1.prototype.totimestring.call

XIOC detected Domain: 1.prototype.totimestring.call

extracted_from_files

Domain
detected Domain: 1.prototype.tolocalestring.call

XIOC detected Domain: 1.prototype.tolocalestring.call

extracted_from_files

Domain
detected Domain: 1.prototype.tolocaledatestring.call

XIOC detected Domain: 1.prototype.tolocaledatestring.call

extracted_from_files

Domain
detected Domain: 1.prototype.tolocaletimestring.call

XIOC detected Domain: 1.prototype.tolocaletimestring.call

extracted_from_files

Domain
detected Domain: partsmap.day

XIOC detected Domain: partsmap.day

extracted_from_files

Domain
detected Domain: a.day

XIOC detected Domain: a.day

extracted_from_files

Domain
detected Domain: b.day

XIOC detected Domain: b.day

extracted_from_files

Domain
detected Domain: a.ms

XIOC detected Domain: a.ms

extracted_from_files

Domain
detected Domain: b.ms

XIOC detected Domain: b.ms

extracted_from_files

Domain
detected Domain: 3.now

XIOC detected Domain: 3.now

extracted_from_files

Domain
detected Domain: new.target

XIOC detected Domain: new.target

extracted_from_files

Domain
detected Domain: props.parseddate.date

XIOC detected Domain: props.parseddate.date

extracted_from_files

Domain
detected Domain: option.group

XIOC detected Domain: option.group

extracted_from_files

Domain
detected Domain: option.tz

XIOC detected Domain: option.tz

extracted_from_files

Domain
detected Domain: fakedate.date

XIOC detected Domain: fakedate.date

extracted_from_files

Domain
detected Domain: calendars-container.show

XIOC detected Domain: calendars-container.show

extracted_from_files

URL
detected URL: http://www.w3.org/2000/svg'

XIOC detected URL: http://www.w3.org/2000/svg'

extracted_from_files

Domain
detected Domain: date.today

XIOC detected Domain: date.today

extracted_from_files

Domain
detected Domain: parseddatetime.date

XIOC detected Domain: parseddatetime.date

extracted_from_files

Domain
detected Domain: details.open

XIOC detected Domain: details.open

extracted_from_files

Domain
detected Domain: props.open

XIOC detected Domain: props.open

extracted_from_files

Domain
detected Domain: event2.target.open

XIOC detected Domain: event2.target.open

extracted_from_files

Domain
detected Domain: date.now

XIOC detected Domain: date.now

extracted_from_files

Domain
detected Domain: e.target

XIOC detected Domain: e.target

extracted_from_files

Domain
detected Domain: dialogrect.top

XIOC detected Domain: dialogrect.top

extracted_from_files

Domain
detected Domain: event2.target

XIOC detected Domain: event2.target

extracted_from_files

Domain
detected Domain: target.host

XIOC detected Domain: target.host

extracted_from_files

Domain
detected Domain: delegated.call

XIOC detected Domain: delegated.call

extracted_from_files

Domain
detected Domain: effect2.prev.next

XIOC detected Domain: effect2.prev.next

extracted_from_files

Domain
detected Domain: b.next

XIOC detected Domain: b.next

extracted_from_files

Domain
detected Domain: current.next

XIOC detected Domain: current.next

extracted_from_files

Domain
detected Domain: callbacks.m.map

XIOC detected Domain: callbacks.m.map

extracted_from_files

Domain
detected Domain: transition.is

XIOC detected Domain: transition.is

extracted_from_files

Domain
detected Domain: child2.next

XIOC detected Domain: child2.next

extracted_from_files

Domain
detected Domain: transition.in

XIOC detected Domain: transition.in

extracted_from_files

Domain
detected Domain: reaction.ac

XIOC detected Domain: reaction.ac

extracted_from_files

Domain
detected Domain: of.call

XIOC detected Domain: of.call

extracted_from_files

Domain
detected Domain: get2.call

XIOC detected Domain: get2.call

extracted_from_files

Domain
detected Domain: propagation.call

XIOC detected Domain: propagation.call

extracted_from_files

Domain
detected Domain: object.is

XIOC detected Domain: object.is

extracted_from_files

Domain
detected Domain: getter.call

XIOC detected Domain: getter.call

extracted_from_files

Domain
detected Domain: first.data

XIOC detected Domain: first.data

extracted_from_files

Domain
detected Domain: last.next

XIOC detected Domain: last.next

extracted_from_files

Domain
detected Domain: values.map

XIOC detected Domain: values.map

extracted_from_files

Domain
detected Domain: teardown2.call

XIOC detected Domain: teardown2.call

extracted_from_files

Domain
detected Domain: prev.next

XIOC detected Domain: prev.next

extracted_from_files

Domain
detected Domain: effect2.ac

XIOC detected Domain: effect2.ac

extracted_from_files

Domain
detected Domain: timepicker.show

XIOC detected Domain: timepicker.show

extracted_from_files

Domain
detected Domain: override.day

XIOC detected Domain: override.day

extracted_from_files

Domain
detected Domain: async.map

XIOC detected Domain: async.map

extracted_from_files

Domain
detected Domain: boundary2.is

XIOC detected Domain: boundary2.is

extracted_from_files

Domain
detected Domain: batch.is

XIOC detected Domain: batch.is

extracted_from_files

IP
detected Domain: descriptor.set.call

XIOC detected Domain: descriptor.set.call

extracted_from_files

Domain
detected Domain: b.tz

XIOC detected Domain: b.tz

extracted_from_files

Domain
detected Domain: svelte.dev

XIOC detected Domain: svelte.dev

extracted_from_files

Domain
detected Domain: www.w3.org

XIOC detected Domain: www.w3.org

extracted_from_files

Domain
detected Domain: fonts.googleapis.com

XIOC detected Domain: fonts.googleapis.com

extracted_from_files

Domain
detected Domain: this.is

XIOC detected Domain: this.is

extracted_from_files

Domain
detected Domain: effect2.next

XIOC detected Domain: effect2.next

extracted_from_files

Domain
detected Domain: parent.next

XIOC detected Domain: parent.next

extracted_from_files

Domain
detected Domain: www.inkscape.org

XIOC detected Domain: www.inkscape.org

extracted_from_files

Domain
detected Domain: inlang.com

XIOC detected Domain: inlang.com

extracted_from_files

Domain
detected Domain: chrome.google.com

XIOC detected Domain: chrome.google.com

extracted_from_files

Domain
detected Domain: tab.id

XIOC detected Domain: tab.id

extracted_from_files

Domain
detected Domain: chromewebstore.google.com

XIOC detected Domain: chromewebstore.google.com

extracted_from_files

IP
detected Domain: contentscripts2.map

XIOC detected Domain: contentscripts2.map

extracted_from_files

IP
detected Domain: script.id

XIOC detected Domain: script.id

extracted_from_files

IP
detected IP: d::

XIOC detected IP: d::

extracted_from_files

IP
detected IP: ::

XIOC detected IP: ::

extracted_from_files

Domain
detected Domain: signingca1.addons.mozilla.org

XIOC detected Domain: signingca1.addons.mozilla.org

extracted_from_files

Domain
detected Domain: mozilla.com

XIOC detected Domain: mozilla.com

extracted_from_files

Domain
detected Domain: addons.mozilla.org

XIOC detected Domain: addons.mozilla.org

extracted_from_files

Domain
detected Domain: content-signature.mozilla.org

XIOC detected Domain: content-signature.mozilla.org

extracted_from_files

Domain
detected Domain: te01c7268d860daa4ab30403926babad5.fc708571a3570f43dddc97436fe76157.addons.mozilla.org

XIOC detected Domain: te01c7268d860daa4ab30403926babad5.fc708571a3570f43dddc97436fe76157.addons.mozilla.org

extracted_from_files

URL
detected URL: https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700;800;900&amp;display=swap

XIOC detected URL: https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700;800;900&amp;display=swap

extracted_from_files

Hash
detected MD5 Hash: fc708571a3570f43dddc97436fe76157

XIOC detected MD5 Hash: fc708571a3570f43dddc97436fe76157

extracted_from_files

Security Analysis Summary

Security Analysis Overview

Time Travel is a Firefox Add-ons extension published by Christian Pulvermacher. Version 2.4.6 has been analyzed by the Risky Plugins security platform, receiving a risk score of 41.1/100 (MEDIUM risk) based on 133 security findings.

Risk Assessment

This extension presents moderate security risk. Several findings were detected that may warrant attention. Users should carefully review the permissions and findings before installation.

Findings Breakdown

  • High: 17 finding(s)
  • Medium: 116 finding(s)

What Was Analyzed

The security assessment covers multiple analysis categories:

  • Malware Detection: YARA rule matching against 2,400+ malware signatures
  • Secret Detection: Scanning for exposed API keys, tokens, and credentials
  • Static Analysis: Code-level security analysis for common vulnerability patterns
  • Network Analysis: Detection of suspicious network communications and endpoints
  • Obfuscation Detection: Identification of code obfuscation techniques

Developer Information

Time Travel is published by Christian Pulvermacher on the Firefox Add-ons marketplace. The extension has approximately 714 users.

Recommendation

Exercise caution with this extension. Review the detailed findings and ensure the requested permissions align with the extension's stated functionality before installation.

Frequently Asked Questions