Discontinuing the Burp Suite JAR to improve security and
performance
We'll explore the reasons why we're looking into this and explain why you might not need to use the JAR after all. We'll also share workarounds for common JAR use cases, including how to deploy a private Collaborator server.
Finally, we'd like to give you the opportunity to share your thoughts on whether this will work for you so that we can take steps to mitigate the impact this might have.
Why are we considering this change?
Exposure through missed security updates
In particular, Burp's embedded Chromium browser represents a significant attack surface and frequently needs critical security updates. That's why we aim to include the most recent stable version of Chromium with each release of Burp, and even fast-track releases just to update Chromium when necessary.
While analyzing the versions of Burp Suite in active use, we noticed that the majority of versions with unpatched vulnerabilities were running Burp from a JAR. We suspect that this is largely due to the JAR version lacking the auto-update functionality, meaning you have to manually download a new JAR every time we release.
If you use one of the standard, package-based installations we provide for Linux, macOS, and Windows respectively, you benefit from auto-updates, ensuring that you never miss a security patch.
Use of insecure, outdated runtime environments
If you run Burp from a JAR file, you need to maintain your own environment, which in practice means that many JAR users are relying on older JREs. Not only is this a common source of bugs and performance issues - a topic that we know is close to your heart - it introduces another security weakness as you may be exposed to known vulnerabilities in outdated JRE versions.
Just like Burp Suite itself, if you use one of the platform-specific installers and auto-updates, we keep the JRE up to date on your behalf, ensuring the most stable and secure experience.
Bloated file size
Our platform-specific installers are much leaner by comparison, and only contain what's necessary for your environment.
Customizing JVM settings without the JAR
Some options that were previously only available as command-line arguments, such as being able to specify how much memory is allocated to the JVM, you can now control from the regular settings menu ( Settings > Suite > Startup behavior > Maximum Java memory usage ).
Alternatively, you can pass all of the same arguments to the JVM by creating an options file in the installation directory. To do this:
-
Linux:
/home/<user>/BurpSuite
-
macOS:
/Users/<user>/Applications/Burp Suite
Professional
-
Windows:
C:\Program Files\BurpSuitePro
If you normally run:
java -Xmx4g -Xms128m -Dsun.java2d.uiScale.enable=false -jar /path/to/burp.jar
You can instead just create a user.vmoptions file with the following contents:
- Xmx4g
- Xms128m
- Dsun.java2d.uiScale.enable=false
What if I still need the JAR?
If you do still need to use the JAR, for example, to support custom workflows and automation, to help with developing extensions, or to deploy a private Collaborator server, there is a simple workaround - the installation package also contains a JAR that you can use instead.
Using the JAR from a Burp Suite Professional or
Community Edition installation
-
Linux:
/home/<user>/BurpSuite
-
macOS:
/Users/<user>/Applications/Burp Suite
Professional
-
Windows:
C:\Program Files\BurpSuitePro
Using the JAR from a Burp Suite Enterprise Edition
installation
-
Linux:
/opt/burpsuite_enterprise/burp/burpsuite_pro_<build-number>.jar
-
Windows:
C:\ProgramFiles\burpsuite_enterprise\burp\burpsuite_pro_<build-number>.jar
Deploying a private Collaborator server
Note : This applies to Collaborator servers that you intend to use with either Burp Suite Professional or Burp Suite Enterprise Edition.