Tempo Ideas

Welcome to Tempo’s Idea Portal! Your suggestions are valuable to us and help us make our products even better.
Below is a list of ideas for Tempo, so please search, review and vote for those that would help you the most. We encourage you to add an idea if you don’t see it listed. You can stay updated on the work we are doing here at Tempo by contributing to this page.
To learn more and see our Frequently Asked Questions, click here.

Security and product enhancement - CSV Injection

Hi Team,

As mentioned here: TCS-90488, as part of our Penetration Testing result we had observed the below affected component in JIRA

It is possible to inject spreadsheet formulae into certain fields within the application that can be executed as formula when
the CSV files are exported.

CSV injection attacks occurs when an attacker crafts a CSV file with malicious code, typically in the form of formulas, that are executed by a vulnerable application when the file is imported. this can lead to the execution of arbitrary code or the
theft of sensitive data.
In older versions of Microsoft excel or if the user has re-enabled the trust centre setting, a security warning is launched, and the user must manually enable the content within the application. As the data comes from a trusted source, it is possible that users will ignore this security warning and enable all content within the spreadsheet. In this case, there are many potential insertion points in the Jira web application which accept input in the form of formulae, and similarly many other locations where a CSV file can be dynamically generated and exported, which subsequently contain these formulae.

In one example the "full name" of any applicable user will be used, which can be changed at-will in the "profile" page for any user. Below, a screenshot shows that the application accepts a formula as the name, which is a simple proof of concept payload designed to open a calculator upon execution. ( Try checking for the other custom fields with the formula and export may give the same kind of behaviour)

With the payload being set, one of many CSV file export functionalities was utilised, which in this case, was the "Time Tracker Flexible Report" tool. Here, the tool exports various information about time worked on a given project, and in the resulting CSV file, the user's full name (as configured with the payload shown above) is directly incorporated. The screenshot below depicts one example of exporting a CSV File

The resulting downloaded CSV file, when opened in a program such as Microsoft Excel, will cause the user to be prompted with security warnings and/or notifications pertaining to Dynamic Data Exchange (DDE), if it is not already enabled. If the user continues regardless of these warnings, then the command can be executed. The following screenshots depict this process

So the expectation here is,
JIRA to Perform appropriate encoding of special characters such as (=) that are used in formulas. Alternately consider adding (') or a space before cells starting with an equals character (=) to prevent the data contained within the cell from being interpreted as a formula.

  • Guest
  • Jul 2 2025
Tempo Products Tempo Timesheets
Tempo Platform On-Premise
  • Attach files